ddr*_*er1 7 x86 assembly intel
关于如何从汇编语言中的方法返回值,我有点困惑.据我所知,eax寄存器用于保存要返回的结果.
举个例子,假设我的结果是4,我使用:
mov eax, 4
Run Code Online (Sandbox Code Playgroud)
我现在有4个eax,我想要返回这个方法.有什么我需要做的或指令会ret自动返回结果吗?
问题是我不知道寄存器有什么特别之处,eax因为当我使用时ret我会回到调用者,并且调用者可以自由访问我存储结果的任何寄存器,所以为什么我不能只有使用ebx或ecx与结果存储而不是?
Jas*_*ers 10
结果存储的原因eax是约定; 您可以决定将其存储在您喜欢的任何寄存器中.但是,函数的调用者可能会假设存储返回值的内容eax.这也意味着你在打电话时不必做任何额外的工作ret.
| 归档时间: |
|
| 查看次数: |
8473 次 |
| 最近记录: |