3.54(难度:1星)

将一段汇编代码转换为C代码

首先了解一些简单指令的意思:

subl:减

sall:左移(算术左移,但是与逻辑左移无区别)

sarl:算术右移

xorl:异或

imull:乘

接下来一行一行的翻译,根据题意,将代码返回值存放在寄存器%eax中,那么我们将返回值定义为a,代码如下:

int decode2(int x, int y, int z)
{
    int a; //返回值
    z=z-y;
    a=z;
    a=a<<15;
    a=a>>15;
    z=z^x //异或
    a=a*z;
    return a;
}
posted on 2015-10-27 13:21  20135211李行之  阅读(141)  评论(0编辑  收藏  举报