x86汇编备忘

LEA: load effective address , 取操作数的地址
STOS: Stores AL/AX/EAX in DS:[(E)DI] and increments (E)DI.

所有x86指令列表

x86 registers
AX: 累加寄存器
BX: 基址寄存器
CX: 计数寄存器
DX: 数据寄存器

CS/DS/ES/SS : 代码、数据、附加、堆栈段基址寄存器

DI:目的寄存器
SI:源寄存器
BP:堆栈基址寄存器
SP:堆栈寄存器

IP : 指令寄存器

维基百科的X86指令集

关于函数的调用,可以参考这里

堆栈是从高地址到低地址的。 因此EBP在ESP的上面。分配函数局部变量是通过修改ESP来达到的。关于函数的参数和局部变量,其内存分布如下:

贴一张堆栈图在这里

stackframe stackframe

16(%ebp) – third function parameter
12(%ebp) – second function parameter
8(%ebp) – first function parameter
4(%ebp) – old %EIP (the function’s “return address”)
0(%ebp) – old %EBP (previous function’s base pointer)
-4(%ebp) – first local variable
-8(%ebp) – second local variable
-12(%ebp) – third local variable


本文地址: http://www.bagualu.net/wordpress/archives/1964 转载请注明




发表评论

电子邮件地址不会被公开。 必填项已用*标注