汇编基础-通用寄存器
通用寄存器
ESP(Extended Stack Pointer)拓展栈寄存器,用于存放栈顶指针。
EBP(Extended Base Pointer)拓展基址指针寄存器,用于存放栈底指针。
MOV指令
ADD指令
ADD 目标操作数,源操作数
将源操作数加到
目标操作数中,结果放到目的操作数中
SUB指令
SUB 目标操作数,源操作数
从目的操作数中减去
源操作数,结果放到目的操作数中
AND指令
AND 目标操作数,源操作数
源操作数和目标操作数做与
运算,结果放到目的操作数中
OR指令
OR 目标操作数,源操作数
源操作数和目标操作数做或
运算,结果放到目的操作数中
XOR指令
XOR 目标操作数,源操作数
源操作数和目标操作数做异或
运算,结果放到目的操作数中
NOT指令
NOT 目标操作数
目标操作数做非
运算,结果放到目的操作数中
LEA 指令
LEA是"load effective address"的缩写,简单地说,lea指令可以将一个内存地址直接赋给目标操作数。
例如:lea eax,[ebx+8]就是将ebx+8这个值赋给了eax。
内存读写
计算机几个常用的计量单位
CPU位数,内存编号,寻址范围
内存格式
这里第2点中提到的[]同时也起到了区分地址和立即数的作用,如:
mov dword ptr ds:[0x0012FF34],0x12345678
内存寻址方式
- 寻址方式一:[立即数]
- 寻址方式二:[reg]
- 寻址方式三:[reg+立即数]
- 寻址方式四:[reg+reg*{1,2,4,8}]
- 寻址方式五:[reg+reg*{1,2,4,8}+立即数]
堆栈
什么是堆栈
使用任意通用寄存器模拟堆栈操作
效果同push
效果同pop