ebp:栈底指针寄存器
esp:栈顶指针寄存器
eax:累加寄存器
ebx:基地址寄存器:在内存寻址时 存放基地址
esi/edi:源/目标索引寄存器
ecx:计数器
1、返回:返回值是怎么带出来的?
答:eax寄存器(四个字节)
(8个字节)2个寄存器带出 eax ebx
2、函数调用后怎么知道回到调用方?
答:在被调用一开始压入调用方的栈底该指针寄存器ebp
3、函数调用后怎么知道从调用点的下一行开始?
答:call压入下一行指令地址
ret返回给下一行指令寄存器
4、实参怎么传给形参?
答:调用方开辟空间
5、怎么释放?
答:调用方释放
反汇编指令:
objdump:查看ELF文件的段
-S反汇编
readelf:查看ELF文件
-h头
-S段的大小
call:近址相对位移偏移指令
(1)压入下一行指令地址
(2)pop()
ld -e:手动编译
ld -e main sum.o main.o run