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读出来放到最后,小端模式
lea dest, [地址值];直接把地址值赋给dest
- lea,load effect address装载一个有效的地址值
lea eax, [1122H]
eax == 1122H
ret函数返回
xor op1, op2 异或结果赋值给op1
add 加法
sub 减法
inc 自增
dec 自减
jmp 内存地址
cmp 比较
jne:jump not equal不相等时跳转
其他语言查手册
- intel白皮书-非常大,最后再来这里找
- https:software.intel.com/en-us/articles/intel-sdm