第七章习题答案7.1ARM处理器有几种运行模式,处理器如何区别各种不同的运行模式?ARM处理器有7中运行模式:用户模式(user):ARM处理器正常的程序执行状态快速中断模式(fiq):处理高速中断,用于高速数据传输或通道处理外部中断模式(irq):用于普通的中断处理管理模式(supervisor):操作系统使用的保护模式,系统复位后的默认模式中止模式(abort):数据或指令预取中止时进入该模式未定义模式(undefined):处理未定义指令,用于支持硬件协处理器的软件仿真系统模式(system):运行特权级的操作系统任务处理器使用CPSR寄存器中的M4~M0位来指示不同的运行模式。7.2通用寄存器中PC、CPSR和SPSR的作用各是什么?PC:程序计数器,用于保存处理器要取的下一条指令的地址。CPSR:当前程序状态寄存器,CPSR保存条件标志位、中断禁止位、当前处理器模式标志,以及其他一些相关的控制和状态位。SPSR:备份程序状态寄存器,当异常发生时,SPSR用于保存CPSR的当前值,当从异常退出时,可用SPSR来恢复CPSR。7.3从编程的角度讲,ARM处理器的工作状态有哪两种?这两种状态之间如何转换?从编程角度讲,ARM处理器的两种工作状态为:ARM状态(复位状态):处理器执行32位的字对齐的ARM指令Thumb状态:处理器执行16位的半字对齐的Thumb指令ARM指令集和Thumb指令集均有切换处理器状态的指令,并可在两种工作状态之间切换:进入Thumb状态:当操作数寄存器的状态位(最低位)为1时,执行BX指令就可以进入Thumb状态。如果处理器在Thumb状态时发生异常(异常处理要在ARM状态下执行),则当异常处理返回时自动切换到Thumb状态进入ARM状态:当操作数寄存器的状态位(最低位)位0时,执行BX指令就可以进入ARM状态。处理器进行异常处理时,把PC的值放入异常模式链接寄存器中,从异常向量地址开始执行程序,系统自动进入ARM状态7.5哪些特征是ARM和其他RISC体系结构所共有的?ARM和其他RISC体系结构共有的三个相同特征:Load/Store体系结构:也称为寄存器/寄存器体系结构或RR系统结构。在这类机器中,操作数和运算结果不能直接从主寄存器中存取,而是必须借用大量的标量或矢量寄存器来进行中转。采用这一结构的处理器必然要使用更多的通用寄存器存储操作数和运算结果,由于寄存器与运算器之间的数据传输速度远高于主存与运算器之间的数据传输速度,采用这一结构有助于提高计算机整体的运行速度采用固定长度精简指令集:这样使得机器译码变得容易,可以通过硬件直接译码的方式完成对指令的解析。虽然由于与复杂指令集相比,采用精简指令集需要更多指令来完成相同的任务,但采用硬件直接译码的速度却高于采用微码方式译码。通过采用高速缓存等提高寄存器存储速度的技术,采用固定长度精简指令集的机器可以获得更高性能三地址指令格式:除了除法指令外,ARM的大部分数据处理指令采用三地址指令。即在指令中包含了目的操作数、源操作数和第二源操作数