Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
广州周立功单片机发展有限公司 Tel (020)38730976 38730916 Fax 38730925 http //www.zlgmcu.com<br />
2.7.4 在 Thumb 状态中访问高寄存器<br />
状态中访问高寄存器<br />
在 Thumb 状态中 高寄存器 r8 r15 不是标准寄存器集的一部分 汇编语言程序员对它们的访问受<br />
到限制 但可以将它们用于快速暂存<br />
可以使用 MOV 指令的特殊变量将一个值从低寄存器 r0 r7 转移到高寄存器 或者从高寄存器到低<br />
寄存器 CMP 指令可用于比较高寄存器和低寄存器的值 ADD 指令可用于将高寄存器的值与低寄存器的<br />
值相加 详细信息请参考 ARM 体系结构参考手册<br />
2.8 程序状态寄存器<br />
程序状态寄存器<br />
<strong>ARM7TDMI</strong>-S 内核包含 1 个 CPSR 和 5 个 SPSR 供异常处理程序使用 程序状态寄存器<br />
保持条件代码标志<br />
控制中断的使能和禁止<br />
设置处理器操作模式<br />
位的分配如图 2-6 所示<br />
条件代码标志 保留 控制位<br />
31 30 29 28 27 26 25 24 23 8 7 6 5 4 3 2 1 0<br />
N Z C V<br />
溢出<br />
进位或借位或扩展<br />
零<br />
负或小于<br />
- 13 -<br />
I F T M4 M3 M2 M1 M0<br />
模式位<br />
状态位<br />
FIQ禁止<br />
IRQ禁止<br />
图 2-6 程序状态寄存器格式<br />
注 为了保持与将来的 ARM 处理器兼容 并且作为一种良好的习惯 在更改 CPSR 时 我们强烈建<br />
议您使用读 写 修改的方法<br />
2.8.1 条件代码标志<br />
件代码标志<br />
N, Z, C 和 V 位都是条件代码标志 可以通过算术和逻辑操作来设置这些位 这些标志还可通过 MSR<br />
和 LDM 指令进行设置 <strong>ARM7TDMI</strong>-S 处理器对这些位进行测试以决定是否执行一条指令<br />
在 ARM 状态中 所有指令都可按条件来执行 在 Thumb 状态中 只有分支指令可条件执行 更详细<br />
的信息请参考 ARM 体系结构参考手册<br />
2.8.2 控制位<br />
控制位<br />
PSR 的最低 8 位为控制位<br />
中断禁止位<br />
T 位<br />
模式位<br />
它们分别是<br />
当发生异常时 控制位改变 当处理器在一个特权模式下操作时 可用软件操作这些位<br />
中断禁止位<br />
中断禁止位<br />
中断禁止位<br />
I 和 F 位都是中断禁止位<br />
当 I 位置位时 IRQ 中断被禁止<br />
当 F 位置位时 FIQ 中断被禁止