汇编语言中
1)DCD(或DCDU)
DCD(或DCDU)伪指令用于分配一片连续的字存储单元并用伪指令中指定的表
达式初始化。其中,表达式可以为程序标号或数字表达式。DCD也可用“&”代替。
用DCD分配的字存储单元是字对齐的,而用DCDU分配的字存储单元并不严格字对齐。
使用示例:
DataTest DCD 4,5,6 ;分配一片连续的字存储单元并初始化。
2)状态寄存器
31 30 29 28 27 26 25 24 …… 8 7 6 5 4 3 2 1 0
N Z C V Q + + + + I F T M4 M3 M2 M1 M0
a)条件码标志
N Z C V均为条件码标志位,它们的内容可以被算术或逻辑运算的结果所改变,并且可 以决定某条指令是否被执行。
标志位 含义
N 正、负标志位,N=1表示运算的结果为负数;N=0表示运算的结果为正数或零
Z 零标志位,Z=1表示运算的结果为零,Z=0表示运算的结果为非零(真)
C 进位标志,加法(包括CMN):产生进位时C=1,否则C=0;借位标志,减法
(包括CMP):产生借位C=0,否则C=1
V 溢出标志,V=1表示有溢出,V=0表示没有溢出
CPSR的低8位(包括I F T和M[0:4])称为控制位,当发生异常时,这些可以呗改变,
如果处理器运行特权模式(非用户模式),这些为也可以改变。
1,中断禁止位:中断禁止位包括I、F,用来禁止或允许IRQ和FIQ两类中断,当I=1时,表示禁止IRQ中断,I=0,表示允许IRQ中断;当F=1时,表示禁止FIQ
中断,F=0时,表示允许FIQ中断;
2,T标志位:T标志位用来标识/设置处理器的工作状态。对于ARM体系结构v4及以上的版本T系列处理器,当该位为1时,程序运行在Thumb状态;当改位为0 时,表示运行在ARM状态。ARM指令集和Thumb指令集均有切换处理器状态的指令。这些指令通过改变T位的值来实现在两种工作状态的切换,但是ARM微处 理器在开始执行代码时,必须处于ARM状态。
10000 用户模式 PC,CPSR,R0-R14
10001 FIQ模式 PC,CPSR,SPSR_fiq,R14_fiq-R8_fiq,R7-R0
10010 IRQ模式 PC,CPSR,SPSR_irq,R14_irq,R13_irq,R12-R0
10011 管理模式 PC,CPSR,SPSR_svr,R14_svr,R13_svr,R12-R0
10111 中止模式 PC,CPSR,SPSR_abt,R14_abt,R13_abt,R12-R0
11011 未定义模式
11111 系统模式 PC,CPSR,R14-R0
1)DCD(或DCDU)
DCD(或DCDU)伪指令用于分配一片连续的字存储单元并用伪指令中指定的表
达式初始化。其中,表达式可以为程序标号或数字表达式。DCD也可用“&”代替。
用DCD分配的字存储单元是字对齐的,而用DCDU分配的字存储单元并不严格字对齐。
使用示例:
DataTest DCD 4,5,6 ;分配一片连续的字存储单元并初始化。
2)状态寄存器
31 30 29 28 27 26 25 24 …… 8 7 6 5 4 3 2 1 0
N Z C V Q + + + + I F T M4 M3 M2 M1 M0
a)条件码标志
N Z C V均为条件码标志位,它们的内容可以被算术或逻辑运算的结果所改变,并且可 以决定某条指令是否被执行。
标志位 含义
N 正、负标志位,N=1表示运算的结果为负数;N=0表示运算的结果为正数或零
Z 零标志位,Z=1表示运算的结果为零,Z=0表示运算的结果为非零(真)
C 进位标志,加法(包括CMN):产生进位时C=1,否则C=0;借位标志,减法
(包括CMP):产生借位C=0,否则C=1
V 溢出标志,V=1表示有溢出,V=0表示没有溢出
Q 在ARMv5及以上版本的E系列处理器中,用Q标志位指示怎强的DSP运算指令是否发生了溢出,其他版本的处理器中,Q是未定义标志
CPSR的低8位(包括I F T和M[0:4])称为控制位,当发生异常时,这些可以呗改变,
如果处理器运行特权模式(非用户模式),这些为也可以改变。
1,中断禁止位:中断禁止位包括I、F,用来禁止或允许IRQ和FIQ两类中断,当I=1时,表示禁止IRQ中断,I=0,表示允许IRQ中断;当F=1时,表示禁止FIQ
中断,F=0时,表示允许FIQ中断;
2,T标志位:T标志位用来标识/设置处理器的工作状态。对于ARM体系结构v4及以上的版本T系列处理器,当该位为1时,程序运行在Thumb状态;当改位为0 时,表示运行在ARM状态。ARM指令集和Thumb指令集均有切换处理器状态的指令。这些指令通过改变T位的值来实现在两种工作状态的切换,但是ARM微处 理器在开始执行代码时,必须处于ARM状态。
3,工模式位:工模式位[4:0]用来标识或设置处理器的工作模式,具体如下
10000 用户模式 PC,CPSR,R0-R14
10001 FIQ模式 PC,CPSR,SPSR_fiq,R14_fiq-R8_fiq,R7-R0
10010 IRQ模式 PC,CPSR,SPSR_irq,R14_irq,R13_irq,R12-R0
10011 管理模式 PC,CPSR,SPSR_svr,R14_svr,R13_svr,R12-R0
10111 中止模式 PC,CPSR,SPSR_abt,R14_abt,R13_abt,R12-R0
11011 未定义模式
11111 系统模式 PC,CPSR,R14-R0