X86 程序集中的 SAR 命令,具有一个参数



在我正在分析的一个反汇编程序中,我找到了命令

sar %eax

这是做什么的?我知道有两个参数的sar执行右移,但我找不到只有一个参数的含义。

该程序是为英特尔 x86 处理器编译的。

看起来像是伪装者对操作码为 0xD1F8SAR EAX,1 使用的简写。 当立即不是 1(又名 SAR EAX,xx )时,操作码为 0xC1F8 xx ,请参阅英特尔指令参考,第 2B 卷,4-353。

当只有一个操作数时,隐含的偏移为 1。

所以。。。。

SAR %EAX表示已签名%EAX >> 1

因此,

SAR %eax = SAR $1, %eax

我已经成功地证明了这一点,分析GDB中的一些代码。

相关内容

最新更新