汇编指令
- mov dest, src
- mov move的简称
- 将src的内容赋值给dest,类似于dest = src
- [地址值]
- 中扩号 [ ]里面放的都是内存地址
- 一个变量的地址值,是它所有字节地址中的最小值
- word是2字节,dword是4字节(double word),qword是8字节(quad word)
注意地址取值是向高位扩展,如 mov qword ptr [1128h], 3 ,实际上3被存储到[1128h][1129h][112Ah][112Bh]四个个字节中。
四个字节如何存放3(CPU大小端模式,大部分是小端模式:高高低低,高地址放高字节,低地址放低字节):
1128h | 00000011 |
1129h | 00000000 |
112Ah | 00000000 |
112Bh | 00000000 |
- call 函数地址
- 调用函数
- lea dest, [地址值]
- load effect address 的简称
- 直接将中括号中的地址值赋值给dest
- lea eax , [1122h] 相当于 eax = 1122h
- ret
- 函数返回
- xor op1, op2
- 将op1和op2异或的结果赋值给op1,类似于op1 = op1 ^ op2
- add op1, op2
- 加法,op1 = op1 + op2
- sub op1, op2
- 减法,op1 = op1 - op2
- inc op
- 自增, op = op + 1
- dec op
- 自减, op = op - 1
- jmp 内存地址
- cpu跳转到该内存地址所在的汇编代码执行
- j开头指令的一般都是跳转,大多是带条件的跳转