i386 System V ABI规范规定,寄存器EBX,ESI,EDI是
时间: 2023-12-18 19:27:08 浏览: 31
在i386 System V ABI规范中,寄存器EBX、ESI和EDI被称为"调用者保存寄存器",用于存储临时变量或函数调用中需要保留的寄存器值。在函数调用时,调用者需要保存这些寄存器的值,因为被调用函数可能会修改这些寄存器的值。因此,调用者在调用函数之前需要将这些寄存器的值保存到栈中或其他地方,等到函数返回后再将其恢复。被调用函数对于这些寄存器的值的修改必须在函数返回之前恢复原来的值,否则可能会影响调用者的代码。
相关问题
i386 System V ABI规范规定寄存器EAX,ECX,EDX是
i386 System V ABI规范规定寄存器EAX、ECX和EDX都是32位寄存器,其中:
- EAX:用于保存函数调用的返回值,同时也可用于存储一些临时变量。
- ECX:作为callee-saved寄存器,用于保存函数调用时的第三个参数,同时也可用于存储一些临时变量。
- EDX:作为callee-saved寄存器,用于保存函数调用时的第四个参数,同时也可用于存储一些临时变量。
这些寄存器在函数调用时需要被调用者保存,并在函数返回时恢复原值。
i386 system V ABI规范规定,寄存器EAX ECX EDX是
i386 System V ABI规范规定,寄存器EAX、ECX、EDX被称为caller-saved寄存器,因为它们的值在函数调用期间可能会被调用者(caller)保存,而不会被被调用者(callee)保存。在一个函数调用结束后,EAX、ECX、EDX中的值可能会被调用者修改,因此调用者在使用它们之前需要先将它们的值保存下来。同时,i386 System V ABI规范还规定了一些callee-saved寄存器,如EBX、EBP、ESI、EDI等,这些寄存器的值在函数调用期间必须由被调用者保存,并在函数调用结束时恢复到原始值。这样可以避免在函数调用期间对调用者代码造成不必要的影响。