第2章思考与练习

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

思考与练习
• 2存储器格式 定义R0=0x12345678,假设使用存储指令将R0的值存放在 0x4000单元中。如果存储器格式为大端格式,请写出在执行加 载指令将存储器0x4000单元中的内容取出存放到R2寄存器操作来自百度文库后所得R2的值。如果存储器格式改为小端格式,所得的R2值又 为多少?低地址0x4000单元的字节内容分别是多少? 答:
思考与练习
3处理器异常 请描述一下ARM7TDMI产生异常的条件是什么? ARM7TDMI产生异常的条件是什么 请描述一下ARM7TDMI产生异常的条件是什么?各种异常会使处 理器进入哪种模式?进入异常时内核有何操作? 理器进入哪种模式?进入异常时内核有何操作?各种异常的返回指 令又是什么? 令又是什么? 只要正常的程序流被暂时中止,处理器就进入异常模式。 答:只要正常的程序流被暂时中止,处理器就进入异常模式。例如 在用户模式下执行程序时, 在用户模式下执行程序时,当外设向处理器内核发出中断请求导致 内核从用户模式切换到异常中断模式。 内核从用户模式切换到异常中断模式。 各种异常会使处理器进入哪种模式? 各种异常会使处理器进入哪种模式? 软件中断异常(SWI)、 未定义的指令、中止 中止[预取中止、数据中止] 中止 快速中断(FIQ) 、中断(IRQ)、复位 进入异常时内核有何操作? 进入异常时内核有何操作? 将异常处理程序的返回地址(加固定的偏移量) 1、将异常处理程序的返回地址(加固定的偏移量)保存到相应异常 模式下的LR LR; 模式下的LR; CPSR的当前值保存到相应异常模式下的SPSR; 的当前值保存到相应异常模式下的SPSR 2、将CPSR的当前值保存到相应异常模式下的SPSR; 设置CPSR为相应的异常模式; CPSR为相应的异常模式 3、设置CPSR为相应的异常模式;
PC,R14_abt,#4 PC,R14_abt,#8 PC,R14_svc
PC PC-4 PC-8
取指
译码
执行
处理指令并将结果写回寄存器 识别将要被执行的指令 从寄存器装载一条指令
存储器编址方式:半字对齐、 存储器编址方式:半字对齐、字对齐
思考与练习
(3)ARM处理器模式和ARM处理器状态有何区别? 答:ARM7TDMI处理器内核包含2套指令系统,分别为ARM指令集和Thumb 指令,并且各自对应1种处理器的状态: ARM状态:32位,处理器执行字方式的ARM指令,处理器默认为 此状态; Thumb状态:16位,处理器执行半字方式的Thumb指令。 ARM体系结构支持7种处理器模式,分别为:用户模式、快中断 模式、中断模式、管理模式、中止模式、未定义模式和系统模式。 (4)分别列举ARM的处理器模式和状态? 答:
思考与练习
• 1基础知识 (1)ARM7TDMI中的T、D、M、I的含义是什么? (1)ARM7TDMI中的T 的含义是什么? 中的 支持高密度16位的Thumb指令集; 16位的Thumb指令集 T支持高密度16位的Thumb指令集; 支持片上调试; 支持64位乘法; 64位乘法 D支持片上调试; M支持64位乘法; 支持EmbededICE观察硬件; EmbededICE观察硬件 I支持EmbededICE观察硬件; ARM7TDMI采用几级流水 使用何种存储器编址方式? 采用几级流水? (2) ARM7TDMI采用几级流水?使用何种存储器编址方式? 答:三级流水线
思考与练习
(7)CPSR寄存器中哪些位用来定义处理器状态? (7)CPSR寄存器中哪些位用来定义处理器状态? 寄存器中哪些位用来定义处理器状态 寄存器CPSR为当前程序状态寄存器,当控制位T置位时, 寄存器CPSR为当前程序状态寄存器,当控制位T置位时,处理器 CPSR 正在Thumb状态下运行;当控制位T清零时,处理器正在ARM状态 正在Thumb状态下运行;当控制位T清零时,处理器正在ARM状态 Thumb状态下运行 ARM 下运行。 下运行。 警告:绝对不要强制改变CPSR寄存器中的控制位T 如果这样做, 警告:绝对不要强制改变CPSR寄存器中的控制位T。如果这样做, CPSR寄存器中的控制位 处理器将进入一个无法预测的状态。 处理器将进入一个无法预测的状态。 (8)描述一下如何禁止IRQ和FIQ的中断 描述一下如何禁止IRQ 的中断? (8)描述一下如何禁止IRQ和FIQ的中断? 当控制位I置位时,IRQ中断被禁止; 当控制位I置位时,IRQ中断被禁止; 中断被禁止 当控制位F置位时,FIQ中断被禁止。 当控制位F置位时,FIQ中断被禁止。 中断被禁止
4、设置PC为相应异常处理程序的中断入口向量地址,跳转到相应 的异常中断处理程序执行; 各种异常的返回指令又是什么? 各种异常的返回指令又是什么? 退出IRQ异常模式 退出IRQ异常模式 SUBS IRQ 快速中断请求(FIQ) 快速中断请求(FIQ) SUBS 未定义的指令异常 MOVS 预取指中止 SUBS 数据中止 SUBS 软件中断异常 MOVS PC,R14_irq,#4 PC,R14_fiq,#4 PC,R14_und
思考与练习
(5)PC和LR分别使用哪个寄存器? (5)PC和LR分别使用哪个寄存器? 分别使用哪个寄存器 寄存器R15称为程序计数器(PC),它指向正在“取指”的指令。 寄存器R15称为程序计数器(PC),它指向正在“取指”的指令。 R15称为程序计数器 ),它指向正在 寄存器R14称为链接寄存器(LR),在结构上有两个特殊功能: 寄存器R14称为链接寄存器(LR),在结构上有两个特殊功能: R14称为链接寄存器 ),在结构上有两个特殊功能 当使用BL指令调用子程序时,返回地址将自动存入R14中 当使用BL指令调用子程序时,返回地址将自动存入R14中; BL指令调用子程序时 R14 当发生异常时,将R14对应的异常模式版本设置为异常返回地址 当发生异常时, R14对应的异常模式版本设置为异常返回地址 (有些异常有一个小的固定偏移量)。 有些异常有一个小的固定偏移量)。 (6)R13寄存器的通用功能是什么? (6)R13寄存器的通用功能是什么? 寄存器的通用功能是什么 寄存器R13通常作为堆栈指针(SP),用于保存待使用的寄存器的 寄存器R13通常作为堆栈指针(SP),用于保存待使用的寄存器的 R13通常作为堆栈指针 ), 内容。 内容。
相关文档
最新文档