汇编语言为C等价物

 常依sunrise 发布于 2023-02-11 14:59

我试图找到与下面的汇编块相当的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

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

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

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

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有