一个神秘函数sar

出自hopper
搜了一大圈,没找到只言片语
求高手赐教:sob:

应该是算数右移

1 个赞

的确是移位操作,不理解的是那个SAR函数:flushed:

相当于hopper帮你模拟了一个函数帮助理解,就当作算数位移看待就好了

好吧,只能去猜了:confused:
谢谢!

函数结构不是太复杂没啥外部引用的话可以试试直接用unicorn模拟

好的 :ok_hand:

sar是一条指令, 你倒是看看汇编啊

2 个赞

汇编一直在看
这段伪代码没想到还有汇编指令:sob:,还以为是某个c函数呢

查了一下sar是算数右移,那一行的结果相当于r4 / 2(but why?:sob:)

谢过大虾!

你可以那么想,十进制右移一位等于除10;二进制右移一位也对应等于除二。算数右移前面移出的补符号位,这个你可以先不用管的

1 个赞

理解起来还是有点奇怪

10进制里面:

110 / 10 = 011

二进制里面:

101 / 2 = 010 1

吗?

要实现10 / 2
似乎只要逻辑右移一位就行吧

多谢!

恩是的