第3章ARM体系结构及编程模式.ppt
文本预览下载声明
程序状态寄存器CPSR 寄存器类别 寄存器在汇编中的名称 各模式下实际访问的寄存器 用户 系统 管理 中止 未定义 中断 快中断 通用寄存器和程序计数器 R0(a1) R0 R1(a2) R1 R2(a3) R2 R3(a4) R3 R4(v1) R4 R5(v2) R5 R6(v3) R6 R7(v4) R7 R8(v5) R8 R8_fiq R9(SB,v6) R9 R9_fiq R10(SL,v7) R10 R10_fiq R11(FP,v8) R11 R11_fiq R12(IP) R12 R12_fiq R13(SP) R13 R13_svc R13_abt R13_und R13_irq R13_fiq R14(LR) R14 R14_svc R14_abt R14_und R14_irq R14_fiq R15(PC) R15 状态寄存器 CPSR CPSR SPSR 无 SPSR_abt SPSR_abt SPSR_und SPSR_irq SPSR_fiq 寄存器CPSR为当前程序状态寄存器,在异常模式中,另外一个寄存器“保存程序状态寄存器(SPSR)”可以被访问。 每种异常都有自己的SPSR,在进入异常时它保存CPSR的当前值,异常退出时可通过它恢复CPSR。 Thumb寄存器在ARM寄存器上的映射 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R0 堆栈指针 (R13) 连接寄存器 (R14) 程序计数器 (R15) 低寄存器 高寄存器 在Thumb中,高寄存器不是标准寄存器。汇编语言程序员对它们的访问受到限制。可以使用MOV、CMP和ADD指令对高寄存器操作。 程序状态寄存器 N Z C V — — I M0 M1 M2 M3 M4 T F — . . . 31 30 29 28 27 26 8 7 6 5 4 3 2 1 0 条件代码标志 保留 控制位 溢出标志 进位或借位扩展 零 负或小于 IRQ禁止 FIQ禁止 状态位 模式位 N Z C V I T F CPSR寄存器的格式 大多数“数值处理指令”可以选择是否影响条件代码标志位(指令带S后缀);但有些指令执行总是影响条件代码标志。 所有ARM指令都可按条件来执行,而Thumb指令中只有分支指令可按条件执行。 运算结果的最高位反映在该标志位。对于有符号二进制补码,结果为负数时N=1,结果为正数或零时N=0; 指令结果为0时Z=1(表示比较结果“相等”),否则Z=0; 当进行加法运算,并且最高位产生进位时C=1,否则C=0。 当进行减法运算,并且最高位产生借位时C=0,否则C=1。 对于移位操作指令,C为从最高位最后移出的值,其它指令C通常不变; 当进行加法/减法运算,并且发生有符号溢出时V=1,否则V=0,其它指令V通常不变。 最低8位为控制位,当发生异常时,这些位被硬件改变。当处理器处于一个特权模式时,可用软件操作这些位。 保留位被保留将来使用。为了提高程序的可移植性,当改变CPSR标志和控制位时,请不要改变这些保留位。另外,请确保您程序的运行不受保留位的值影响,因为将来的处理器可能会将这些位设置为1或者0。 SecurCore微处理器系列 专为安全需要而设计,提供了完善的32位RISC技术的安全解决方案。 灵活的保护单元,以确保操作系统和应用数据的安全。 采用软内核技术,防止外部对其进行扫描探测。 可集成用户自己的安全特性和其他协处理器。 主要应用:对安全性要求较高的应用产品及应用系统,如电子商务、电子政务、电子银行业务、网络和认证系统等领域。 4种类型:SecurCore SC100、SecurCore SC110、SecurCore SC200和SecurCore SC210。 Xscale处理器 基于ARMv5TE体系结构的解决方案,是一款全性能、高性价比、低功耗的处理器。 支持16位的Thumb指令和DSP指令集。 已使用在数字移动电话、个人数字助理和网络产品等场合。 Xscale处理器是Intel目前主要推广的一款ARM微处理器。 ARM系列流水线比较 预取 (Fetch) 译码 (Decode) 执行 (Execute) 预取 (Fetch) 译码 (Decode) 执行 (Execute) 访存 (Memory) 写入 (Write) 预取 (Fetch) 译码 (Decode) 发送 (Issue
显示全部