hazard
V2EX  ›  问与答

关于 arm 汇编的小问题

By hazard at 2015 年 5 月 15 日 · 2673 次点击
今天查资料时发现这里: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0497a/BABEFHAE.html 在说明B, BL, BX, and BLX指令时在Operation一节写道:
The BX and BLX instructions result in a HardFault exception if bit[0] of Rm is 0.
表示对这句不是很理解,那个位是0不应该是正常情况吗?求解
5 条回复  •  2015-05-16 10:52:00 +08:00
Hyperion
   1
Hyperion  
   2015 年 5 月 15 日
bit[0] 好像是区分arm 和thumb 指令集的位吧? 看意思,似乎是在arm 指令模式下才会引发Hard Fault?

擦汗,从来没注意过这个…
hazard
   2
hazard  
OP
   2015 年 5 月 15 日
@Hyperion
BX and BLX 这两个指令不是可以根据目标地址来切换指令集么?
Hyperion
   3
Hyperion  
   2015 年 5 月 15 日
@hazard …不是自动的,他要判断Rm 的bit[0] 才会切换状态。

我应该没记错。
hazard
   4
hazard  
OP
   2015 年 5 月 16 日
@Hyperion 对啊 我也是这么认为的,根据bit[0]来自动切换啊。。。
Hyperion
   5
Hyperion  
   2015 年 5 月 16 日
@hazard 然后这个问题就变成了一个英语理解问题了…
© 2026 V2EX · 27ms · 3.9.8.5