刚开始学ARM,用的周公EaayARM2200的板子,这几天在研究启动代码,有很多问题不能理解,到版上问问前辈。
问题1:地址0X0-0x
问题2:一开始的向量表中放置了7条LDR指令和一条DCD指令,如下:
LDR PC, ResetAddr
LDR PC, UndefinedAddr
LDR PC, SWI_Addr
LDR PC, PrefetchAddr
LDR PC, DataAbortAddr
DCD 0xb
LDR PC, [PC, #-0xff0]
LDR PC, FIQ_Addr
问题是:其他LDR指令的机器码都是[0xE59FF018],指令各不相同,为什么却有相同的机器码,而倒数第二跳指令的机器码却是[0XE51FFFF0],又当如何解释。我看过了ARM的手册,上面讲LDR指令机器吗的最后12位是 addressing_mode_specfic,但是我没找到关于addressing_mode的更详细的资料,谁能告诉我有哪些addressing_mode,上面的机器码又如何去解释?
菜鸟一个,请高手指教!