4.2指令集介绍 ·ARM指令集一第2个操作数 LSL移位操作: LSR移位操作: ASR移位操作: ROR移位操作: RRX移位操作: -c-
4.2 指令集介绍 • ARM指令集——第2个操作数 LSL移位操作: 0 LSR移位操作: 0 ASR移位操作: ROR移位操作: RRX移位操作: C
4.2指令集介绍 ·ARM指令集一第2个操作数 Rm,shift-一寄存器移位方式 例如: ADD R1,R1,R1,LSL #3 :R1=R1+R1*8=9R1 SUB R1,R1,R2,LSR R3 ;R1=R1-(R2/2R3)
4.2 指令集介绍 • ARM指令集——第2个操作数 ▪Rm,shift——寄存器移位方式 例如: ADD R1,R1,R1,LSL #3 ;R1=R1+R1*8=9R1 SUB R1,R1,R2,LSR R3 ;R1=R1-(R2/2R3)
ARM指令小节目录 1.指令格式 2.条件码 3.存储器访问指令 4.数据处理指令 5.乘法指令 6.ARM分支指令 7.协处理器指令 8.杂项指令 9.伪指令
ARM指令小节目录 1.指令格式 2.条件码 3.存储器访问指令 4.数据处理指令 5.乘法指令 6.ARM分支指令 7.协处理器指令 8.杂项指令 9.伪指令
4.2指令集介绍 ·ARM指令集一条件码 ARM指令的基本格式如下: <opcode>{<cond>}{S} <Rd>,<Rn>{,<operand2>} 使用条件码“cond”可以实现高效的逻辑操作,提 高代码效率。 所有的ARM指令都可以条件执行,而Thumb指令 只有B(跳转)指令具有条件执行功能。如果指令不标 明条件代码,将默认为无条件(AL)执行
ARM指令的基本格式如下: 4.2 指令集介绍 • ARM指令集——条件码 <opcode> {<cond>} {S} <Rd> ,<Rn>{,<operand2>} 使用条件码“ cond”可以实现高效的逻辑操作,提 高代码效率。 所有的ARM指令都可以条件执行,而Thumb指令 只有B(跳转)指令具有条件执行 功能。如果指令不标 明条件代码,将默认为无条件(AL)执行
·指令条件码表 操作码 条件助记符 标志 含义 0000 EQ Z=1 相等 0001 NE Z=0 不相等 0010 CS/HS C=1 无符号数大于或等于 0011 CC/LO C=0 无符号数小于 0100 MI N=1 负数 0101 PL N=0 正数或零 0110 Vs V=1 溢出 0111 VC V=0 没有溢出 1000 HI C=1.Z=0 无符号数大于 1001 LS C=0,Z=1 无符号数小于或等于 1010 GE N=V 有符号数大于或等于 1011 LT N!=V 有符号数小于 1100 GT Z=0.N=V 有符号数大于 1101 LE Z=1.NI=V 有符号数小于或等于 1110 AL 任何 无条件执行(指令默认条件) 1111 NV 任何 从不执行(不要使用)
操作码 条件助记符 标志 含义 0000 EQ Z=1 相等 0001 NE Z=0 不相等 0010 CS/HS C=1 无符号数大于或等于 0011 CC/LO C=0 无符号数小于 0100 MI N=1 负数 0101 PL N=0 正数或零 0110 VS V=1 溢出 0111 VC V=0 没有溢出 1000 HI C=1,Z=0 无符号数大于 1001 LS C=0,Z=1 无符号数小于或等于 1010 GE N=V 有符号数大于或等于 1011 LT N!=V 有符号数小于 1100 GT Z=0,N=V 有符号数大于 1101 LE Z=1,N!=V 有符号数小于或等于 1110 AL 任何 无条件执行 (指令默认条件) 1111 NV 任何 从不执行(不要使用) • 指令条件码表