小编Edo*_*zen的帖子

ASM转C:4(%esp)指的是什么

我正在尝试将以下汇编代码转换为 C 代码:

fct:
    movl 4(%esp), %eax
    cmpl $0,%eax
    jg n
    movl $-1,%eax
    ret
n:  movl $0,%ebx
    movl %eax, %ecx
    movl $0, %eax
    movl $0, %edx
l:  addl $2, %ebx
    addl %ebx, %eax
    addl $1, %edx
    cmpl %ecx, %edx
    jl l
    ret
Run Code Online (Sandbox Code Playgroud)

因为我认为我可以很容易地翻译其中的大部分内容,所以我似乎找不到第一行(movl 4(%esp), %eax)的作用。4(%esp) 在这种情况下指什么?我知道 %esp 寄存器指的是堆中的最后一条指令,而 4(%esp) 指的是第二条指令。

c assembly

1
推荐指数
1
解决办法
3738
查看次数

标签 统计

assembly ×1

c ×1