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和矢量寄存器)都可以由被调用方自由修改;如果调用者希望在函数调用之前和之后保留一个值,则它必须将该值保存在其他位置(例如在保存的寄存器之一或堆栈中)。
热门推荐
10 祝孙辈生日祝福语简短
11 恋人跨年祝福语大全简短
12 考大学敬酒简短祝福语
13 开工投产大吉祝福语 简短
14 偶然结婚祝福语朋友简短
15 感谢学长学姐祝福语简短
16 戏精的祝福语简短
17 我要结婚祝福语简短
18 婚前女儿生日祝福语简短