我对如何从汇编语言中的方法返回值感到有些困惑。据我所知,eax 寄存器用于保存要返回的结果。
例如,假设我的结果是 4,我使用:
mov eax, 4
我现在在 eax 中有 4 个,我想返回这个方法。有什么我需要做的吗?或者会指示
ret
自动返回结果?问题是我不知道寄存器
eax
有什么特别之处。从我使用 ret
开始我回到调用者那里,调用者可以自由访问我将结果存储到的任何寄存器,所以为什么我不能只使用 ebx
或 ecx
而是存储结果?
最佳答案
结果存储在eax
的原因是约定;您可以决定将其存储在您喜欢的任何寄存器中。但是,您的函数的调用者可能会假设返回值的内容存储在 eax
中。 .这也意味着您在调用 ret
时不必做任何额外的工作。 .
关于assembly - 返回结果到 eax(IA-32 汇编语言),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5897771/