ARM 7 在冯诺依曼 结构的。
是三级流水线技术
分别是
取址 译码 执行
当有BL 的指令 执行时 流水线 也会被阻断 。 在分支指令执行的时候 其后第一条指令 被 解码 第二条 指令 被 取址 ,当前的PC指针是 指在取址这的,(PC的指针值会保存到LR中)但是这两个指令 并不被执行,因为 分支 指令 执行完了之后 久直接 跳转到 0X0018 那去执行了 ,因此流水线上需要丢弃这两个指令,同时PC指针 也会转移到新到位置 接着 进行取址 ,译码,执行。
同时在执行BL 指令的时候 要同时 进行 写链接寄存器 PC指针 也会 进行 - 4 ,(这个两操作仍然占用执行单元,这时的 译码 取址 被阻断了)。
SUBS PC ,LR,#4
ARM处理器异常处理
1,保存处理器的状态,中断屏蔽位以及各条件的标志位。
2,设置当前程序状态寄存器CPSR中相应的位。
3,将寄存器IL——mode设置成返回地址。
4,将程序计数器(PC)值设置成该异常中断的中断向量地址,然后转到相应到异常中断处理程序处执行。