我正在查看ARM32处理器的各种指令,并且对处理器如何区分对寄存器进行操作的指令和对立即数进行操作的指令感到困惑。例如,在ARM32中,对于我来说,对于MOV指令,即时版和寄存器版,似乎可以拥有与机器代码完全相同的指令。如果是这种情况,处理器如何“知道差异”?
查看ARM文档中Move (immediate),Move (register)和Move (register-shifted register)的实际编码应回答您的问题。
Arm Exploration Tools WEB页面是有关指令集的绝佳信息来源。