gpt4 book ai didi

c - ATT 中从汇编代码恢复 C 代码的不同答案

转载 作者:行者123 更新时间:2023-11-30 20:53:46 26 4
gpt4 key购买 nike

CSAPP练习3.18需要用汇编代码恢复C代码,书上给出的答案填在空白处;评论里的答案就是我的答案。C代码如下:

int test(int x ,int y)
{
int val=_x^y__; //x-y
if(_x<-3__){
if(_x>y_) val=_x*y_;
else val=_x+y;
}
else if(_x>2_) //x<=2
val=__x-y__; //x^y
return val;
}

汇编代码如下: enter image description here

根据之前书上讲述的技巧,我认为我的答案是正确的。

最佳答案

代码中的注释(您的答案)将产生与实际代码完全相同的结果,因此它们都是正确的。

如果我们忽略x < -3部分,两个版本是:

图书版本:

int val=x^y;
if (x>2)
val=x-y;

您的版本:

int val=x-y;
if (x<=2)
val=x^y;

if条件被切换以及对 val 的分配,很容易看出在这两种情况下,val值为 x^y如果x<=2 ,和x-y如果x>2 .

关于c - ATT 中从汇编代码恢复 C 代码的不同答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45652477/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com