免责声明:我是asm新手。我可能需要复习一下我的2补语或其他东西来完全理解:(
我对以下内容的目的感到困惑:
....
BL some_func
MOV R3, R0,LSL#16
MOVS R3, R3,LSR#16
....为什么要倒班呢?那搬运工呢?
发布于 2010-08-16 20:28:30
在左移位中,溢出的位将丢失。因此,右移位后,32-16 =16位以上的所有位都将被置零。
r0 = aaaabbbbccccdddd eeeeffffgggghhhh
lsl, 16 -> aaaabbbbccccdddd eeeeffffgggghhhh 0000000000000000
(overflowed)
-> eeeeffffgggghhhh 0000000000000000
lsr, 16 -> eeeeffffgggghhhh该指令等同于
r3 = r0 & 0xffff;https://stackoverflow.com/questions/3490320
复制相似问题