首页
社区
课程
招聘
[求助]遇到一个ARM汇编的玄学 希望大佬们看看
2022-12-5 22:35 7764

[求助]遇到一个ARM汇编的玄学 希望大佬们看看

2022-12-5 22:35
7764

很简单的两句代码

 

CMP X1;X2
CSET X3;LE

 

X1 = 0x630c6c1e ,X2 =0xd77181eb >>> X3 = 0
X1 = 0xa02d02aa ,X2 =0x630c6c1e >>> X3 = 1
X1 = 0x5994467 ,X2 =0xa02d02aa >>> X3 = 0
X1 = 0xa11de8a9 ,X2 =0x5994467 >>> X3 = 1
X1 = 0xd9fa5cf9 ,X2 =0xa11de8a9 >>> X3 = 0

 

为什么我调试的软件和百度到的不太一样

 

上面代码翻译过来不应该是
if (x1<=x2)
x3 = 1
else
x3 = 0

 

而且上面的第4组数据和第5组数据 X1都比X2大 但是返回的X3却不一样 实在搞不懂 希望有大佬解答


[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞0
打赏
分享
最新回复 (3)
雪    币: 9728
活跃值: (6707)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
bluefish蓝鱼 2022-12-6 00:09
2
0
感觉是负数的原因
最高位为1时的数应该是负数,这样就能解释得通。
但是X1和X2是64比特寄存器,我不清楚你这里是不是漏了高32比特
雪    币: 2563
活跃值: (3913)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
2beNo2 2022-12-6 13:58
3
0
le 是有符号的小于等于
雪    币: 2113
活跃值: (4156)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
默NJ 2022-12-6 20:57
4
0
问问chatGpt
游客
登录 | 注册 方可回帖
返回