zoukankan      html  css  js  c++  java
  • arm异常中断处理中pc指向何处

    《arm体系结构与编程》第九章 异常中断处理/9.2.2 从异常中断处理程序中返回

    SWI和未定义指令异常中断是由当前执行的指令自身产生的。当SWI和未定义指令异常中断产生时,程序计数器PC的值还未更新,它指向当前指令后面第2条指令(???)(对于ARM指令来说+8字节;对于Thumb指令来说+4字节的位置)。

    数据访问异常中断由当前执行的指令自身产生,当数据访问异常中断发生时,程序计数器pc的值已经更新,它指向当前指令后面第3条指令(???)(对于ARM指令,它指向当前指令地址加12字节的位置;对于Thumb指令,它指向当前指令地址加6字节的位置)。

     经多方查证得到如下可以解释上述疑问(???)的答案:

      1、arm为三级流水线(取指、译码、执行)结构,PC指向正在取指的地址,那么cpu正在译指的指令地址是PC-4(假设在ARM状态下,一个指令占4个字节),cpu正在执行的指令地址是PC-8.

      2、中断返回后执行的是原执行语句的下一条语句,返回之后重建流水线

      3、虽然ARM9与ARM7的流水线级数不同,但ARM9使用了与ARM7相同的流水线执行机制,以提高兼容性(即第4条指令取指时,第1条指令执行完成),方便ARM7的代码也可以在ARM9上运行。

     

  • 相关阅读:
    JavaScrip 数组/字典/循环
    初识javaScript
    css内容补充之其它
    position
    css的存在形式
    CSS选择器
    Html的Head内标签
    Linux设置FQDN
    saltstack 全面介绍
    jQuery文档处理
  • 原文地址:https://www.cnblogs.com/nufangrensheng/p/3017108.html
Copyright © 2011-2022 走看看