码迷,mamicode.com
首页 > 其他好文 > 详细

mov-[地址值]-call

时间:2020-02-04 18:45:22      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:内存   为什么   一个   选择   目标   cpu   double   end   pre   

mov dest, src

  • src:来源 dest:目标 类似 dest=src

[地址值]

  • []里面放的一定是地址值
int a = 3;      //使用4个字节存储一个3
mov    dword ptr [ebp-8],3    //3放入内存需要指定大小
dword ptr    //ptr是语法,用于指定大小,左边是单位
word是字,表示2字节,dword是4字节(double word),qword是8字节(quad word)

call函数地址

call 00112233    //会跳转到函数地址
jmp  44556677    //会跳转到函数的真正地址

为什么不直接用a的地址,而是ebp-8

int a = 3;     //函数调用,开辟局部空间,每次ebp都是一个全新的值
cout << &a << endl;

全局变量a的地址值是写死的地址

CPU的大小端模式 大部分都是小端模式(00000011先放到内存低地址处)

mov    dword ptr [ebp-8],3    //存
00000000 00000000 00000000 00000011    //00000011先放到内存4个字节空间的哪里呢

mov    eax,dword ptr [ebp-8]    //读,从内存低到高吞并4字节
00000000 00000000 00000000 00000011    //00000011读出来放到最后,小端模式
  • 调试-窗口-内存-选择一个

mov-[地址值]-call

标签:内存   为什么   一个   选择   目标   cpu   double   end   pre   

原文地址:https://www.cnblogs.com/sec875/p/12260301.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!