小编MrB*_*ins的帖子

汇编语言为C等价物

我试图找到与下面的汇编块相当的C语言:

        .section .text
        .globl mystery
        .type mystery, @function
    mystery:
        pushl %ebp
        movl %esp, %ebp
        xorl %eax, %eax
        xorl %exc, %ecx
        movl 8(%ebp), %edx

    begin:
        cmpl 12(%ebp), %ecx
        jge  done
        addl (%edx, %ecx, 4), %eax
        incl %ecx
        jump begin

    done:
        movl %ebp, %esp
        popl %ebp
        ret
Run Code Online (Sandbox Code Playgroud)

我得到了"开始"部分.它似乎是一个循环,从函数中获取参数并将其与%ecx中的任何内容进行比较.如果满足jge条件,则函数返回,否则它将%edx添加4%ecx,将其移至%eax,递增%ecx,并再次循环.

我真的不明白"神秘"的一部分.特别是xorls和movl语句.如果%eax或%ecx中没有任何内容可以启动,那么xorl正在做什么.我猜测的movl是从函数中取一个参数并将其移动到%edx?

任何见解都是有帮助和赞赏的.

c assembly low-level

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

标签 统计

assembly ×1

c ×1

low-level ×1