Intel x86 Assembly& Microarchitecture 32位cdecl
示例
cdecl是Windows32位函数调用约定,与许多POSIX操作系统(在i386SystemVABI中记录)上使用的调用约定非常相似。区别之一是返回小结构。
参数
参数在堆栈上传递,第一个参数在调用时位于堆栈的最低地址(最后按一次,因此它刚好在函数输入的返回地址上方)。调用者负责在调用之后从堆栈弹出参数。
返回值
对于标量返回类型,对于64位整数,返回值放在EAX或EDX:EAX中。浮点类型在st0(x87)中返回。返回较大的类型(如结构)是通过引用完成的,并且将指针作为隐式的第一个参数传递。(此指针以EAX返回,因此调用者不必记住它传递的内容)。
保存和破坏的寄存器
被调用者必须保留EBX,EDI,ESI,EBP和ESP(以及FP/SSE舍入模式设置),以便调用者可以依赖那些未被调用更改的寄存器。
所有其他寄存器(EAX,ECX,EDX,FLAGS(DF除外),x87和矢量寄存器)都可以由被调用方自由修改;如果调用者希望在函数调用之前和之后保留一个值,则它必须将该值保存在其他位置(例如在保存的寄存器之一或堆栈中)。
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下