当前位置: 首页 > news >正文

做网站被骗首付款怎么报案浙江省工程信息网官网

做网站被骗首付款怎么报案,浙江省工程信息网官网,梧州房地产信息网官网,c苏宁网站开发在ARM架构的中断处理过程中,PC(程序计数器)和LR(链接寄存器)的关系与流水线执行机制及异常类型密切相关。以下通过具体案例说明不同中断场景下两者的关系: 案例1:IRQ中断(PC已更新&a…

在ARM架构的中断处理过程中,PC(程序计数器)和LR(链接寄存器)的关系与流水线执行机制及异常类型密切相关。以下通过具体案例说明不同中断场景下两者的关系:

案例1:IRQ中断(PC已更新)

场景:
ARM状态下执行指令序列时发生IRQ中断:

0x4000: ADD R1, R2, R3 ; 指令A(执行中)
0x4004: SUB R4, R5, R6 ; 指令B(译码阶段)
0x4008: MOV R7, #8 ; 指令C(取指阶段,PC指向此处)

中断发生时的硬件行为:

  1. 指令A执行完毕后检测到IRQ中断。

  2. PC已更新:硬件将PC指向下一条待取指指令的地址(0x400C)。

  3. LR保存值:硬件自动将 PC - 4 = 0x4008 存入 LR_irq(指向指令C的地址)。

  4. 返回地址修正:
    • 期望返回地址是 0x4004(指令B,未执行)。

    • 但 LR_irq = 0x4008,因此需通过 SUBS PC, LR, #4 修正为 0x4004。

关键关系:
• PC:中断时指向 0x400C(当前执行地址 0x4000 + 12)。

• LR:保存 PC - 4 = 0x4008,需软件修正偏移量(-4)。

案例2:SWI软中断(PC未更新)

场景:
执行软中断指令 SWI 0:

0x3000: SWI 0 ; 指令A(执行中,触发异常)
0x3004: MOV R0, #1 ; 指令B(译码阶段)
0x3008: ADD R1, R2, R3 ; 指令C(取指阶段,PC指向此处)

中断发生时的硬件行为:

  1. 执行 SWI 时立即触发异常,PC未更新(仍指向 0x3008)。

  2. LR保存值:硬件将 PC - 4 = 0x3004 存入 LR_svc(指向指令B的地址)。

  3. 返回地址修正:
    • 期望返回地址是 0x3004(指令B),与 LR_svc 值一致。

    • 直接通过 MOV PC, LR 即可正确返回。

关键关系:
• PC:中断时仍为 0x3008(当前执行地址 0x3000 + 8)。

• LR:保存 PC - 4 = 0x3004,无需修正。

案例3:数据访问中止异常(PC已更新,需重执行)

场景:
读取非法内存时触发数据中止:

0x5000: LDR R0, [R1] ; 指令A(执行中,触发异常)
0x5004: ADD R2, R3, R4 ; 指令B(译码阶段)
0x5008: SUB R5, R6, R7 ; 指令C(取指阶段,PC指向此处)

中断发生时的硬件行为:

  1. 指令A执行中发生异常,PC已更新(指向 0x500C)。

  2. LR保存值:硬件将 PC - 4 = 0x5008 存入 LR_abt。

  3. 返回地址修正:
    • 需重新执行指令A(地址 0x5000)。

    • LR_abt = 0x5008,通过 SUBS PC, LR, #8 修正为 0x5000。

关键关系:
• PC:中断时指向 0x500C(当前执行地址 0x5000 + 12)。

• LR:保存 PC - 4 = 0x5008,需软件修正偏移量(-8)。

不同异常类型的PC与LR关系总结

下表对比关键场景:
异常类型 PC是否更新 LR保存值 返回地址修正 典型返回指令
IRQ/FIQ中断 是(PC+12) LR = PC - 4 LR - 4 SUBS PC, LR, #4
SWI/未定义指令 否(PC+8) LR = PC - 4 无需修正(LR) MOV PC, LR
指令预取中止 否(PC+8) LR = PC - 4 LR - 4 SUBS PC, LR, #4
数据访问中止 是(PC+12) LR = PC - 4 LR - 8 SUBS PC, LR, #8

核心机制解析

  1. 流水线影响:
    • ARM三级流水线(取指、译码、执行)导致PC总指向正在取指的指令(当前执行指令地址+8)。

    • 中断是否更新PC取决于异常类型:IRQ/FIQ需等待当前指令执行完毕(PC+12),而SWI/未定义指令立即触发(PC保持+8)。

  2. LR的作用:
    • 硬件自动将 修正后的返回地址 存入异常模式的LR(如 LR_irq、LR_svc)。

    • 软件需根据异常类型进一步调整偏移量,确保返回正确指令。

  3. 实际意义:
    • 错误修正会导致死循环或指令跳过(如IRQ返回未减4则重复执行中断指令)。

    • Linux内核的 vector_stub 宏()正是通过判断异常类型自动计算偏移量。

以上案例揭示了ARM中断处理中PC与LR的动态关系,本质是硬件流水线与异常响应的协同结果。理解这些机制对编写底层中断服务程序或操作系统内核至关重要。

http://www.dtcms.com/a/451839.html

相关文章:

  • 辽宁建设工程信息网站中国华电集团电子商务平台
  • 建设网站的岗位wordpress 5.2更新了什么
  • 做网站运营需要什么证咨询公司属于什么行业类别
  • 深圳市网站建设公司好不好wordpress自适应手机主题
  • 网站建设思路高端品牌车有哪些
  • 坂田做网站多少钱安徽建设工程实名制网站
  • 长沙人才招聘网站网页图片怎么下载
  • 成都产品网站建设邢台网站建设报价
  • 申请网站域名怎么做网站中国企业黄页大全
  • 拓展公司网站建设一条龙网站建设价格
  • php在网站开发中的作用互联网营销推广公司
  • 知名网站建设策划做微网站的第三方登录
  • 自己做图片上传网站未备案个人网站 如何挣钱
  • 台式机做网站服务器linux wordpress是什么
  • 个人博客网站制作代码学校品牌建设
  • 大数据专业主要学什么西安百度关键词优化
  • 中国建站网专业集团门户网站建设公司
  • 深圳网站建设有没有市场主流搜索引擎有哪些
  • 阿里巴巴网站做方案discuz图片网站模板
  • 扬州网站建设企业10秒折一把古风伞
  • 化工产品东莞网站建设中企动力科技股份有限公司南通分公司
  • 惠州城乡住房建设厅网站平顶山 网站设计
  • 网站建设的内容商标查询天眼查
  • 京东一面首页数据庞大需要调用50+接口如何做到毫秒级响应
  • 网站收录提交建设网站用的软件
  • 光全息|单层-级联全息像的可控切换
  • 光通信|可旋转DNN赋能OAM模式可控路由
  • 【网站建设wordpress 中英
  • 拆分盘的网站开发费用北京广告制作公司
  • 做网站需要用什么开发软件现在哪个网站可以做外贸