X86寄存器
rax作为函数返回值使用
rsp栈顶指针寄存器
ebp指向栈的开始
esp指向栈顶
X86指令(部分)
MOV 目的地址 源地址
MOVSX 先符号扩展,再传送
MOVZX 先零扩展,再传送
PUSH 把字压入堆栈
POP 把字弹出堆栈
XCHG 交换字或字
IN I/O端口输入
OUT I/O端口输出
INC 加一
DEC 减一
LEA 取有效地址指令 (Load Effective Address )
指令格式:LEA 目的地址 源地址
LEA指令和MOV指令一样是移动数据,但是与MOV不同的是,它移动的是“[ ]”里面的内容,例如:LEA EAX,[ECX]中,执行这条指令相当于MOV EAX,ECX。而MOV EAX,[ECX]是把“[ ]”里面的数据当成是内存地址编号,取地址里面的内容。
注意LEA指令与MOV指令的区别,比较下面两条指令:
LEA BX, BUFFER
MOV BX, BUFFER
前者将存储器变量BUFFER的偏移地址送到BX,而后者将存储器变量BUFFER的内容(两个字节)传送到BX。