ARM处理器的中断时,是否会执行完当前指令?
在中断处理完毕返回时,pc 指向哪里,发生中断的指令是否会重新执行 ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
在中断处理完毕返回时,pc 指向哪里,发生中断的指令是否会重新执行 ?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
pc 指向lr寄存器啊 响应中断前会保存当前的地址到 lr 寄存器的 处理完中断后会去lr寄存器取响应中断前的地址的啊
发生中断的指令是否会重新执行? 这是不会的 因为响应中断时 会设置禁止其他中断的,这个寄存器名忘了。
答曰:标题问句答案:会执行完当前指令 内容问句答案:不会重新执行
中断信号来临时,必须等待当前指令执行完成才能生效。
中断信号可以是在时间上随机的,但是指令的执行必须以“机器周期”为基本单位,具有“原子性”。
中断前当前指令的下一条指令地址被保存;中断钱中断函数执行完毕,将该保存地址加载到PC执行。
软中断和一般中断不一样,软中断不会不会执行当前指令,即PC值不会更新。LR=PC-4一般中断是执行完当前指令后,PC值更新。更新后的PC值是PC=PC+8,然后LR=PC-4.