TIP
相关链接|
¶使用Jmp

¶使用 loop

只有ecx具有循环计数器功能,故这里只能使用ecx
理论上,能使用loop指令实现的功能一定能用条件转移指令实现
使用loop指令可能会使代码更清晰简洁

¶如何切换帧

就是先存一下上一个函数的栈帧基地址,然后当前函数栈帧就是存放上个函数栈帧基地址的位置的下一个地址。
在还原上一层函数栈帧时,只需要取出先前存放的上一层函数基址就可以完成,栈底就是存放基址地址位置的上一位



¶如何传递参数和返回值

[ebp+8] 是第一个传入参数
[ebp+12]是第二个传入参数


这里箭头位置使用了两行代码
为什么不直接写:
mov [esp+4] , [esp-8] ?
因为x86 指令系统中,指令中的数据不允许两个都同时来自内存,会影响执行效率
TIP
函数调用的返回值,一般都存放在eax寄存器中


¶总结

(完)
