数据处理指令之:AND逻辑与指令
ND shifter_operand
If S==1 and Rd==r15 then
CPSR=SPSR
Else if S==1 then
N flag=Rd[31]
Z flag=if Rd==0 then 1 else 0
C flag=shifter_carry_out
V flag=unaggected
4.指令举例
【例6.1】AND指令举例。
(1)AND的真值表(二者都是1则结果为1)如表6.2所示。
表6.2 AND指令真值表
Op_1 | Op_2 | 结 果 |
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
(2)保留R0中的0位和1位,丢弃其余的位。
AND R0, R0, #3 ;
(3)R2=R1&R3
AND R2,R1,R3 ;
(4)R0=R0&0x01,取出最低位数据
ANDS R0,R0,#0x01 ;
[1] op2即为指令中的第二个操作数。ARM数据处理指令使用3地址格式,这就意味着分别指定两个源操作数和一个目的寄存器。第一个源操作数总是目的寄存器,第二个源操作数又叫移位操作数(a shifter operand),它可能是寄存器、移位后的寄存器或立即数。第二个操作数如果是寄存器,则应用于它的移位可能是逻辑或算术移位,或是循环移位。移位的位数可以由立即数指定,也可以由第4个寄存器指定。
数据处理指令 AND逻辑 伪代码 ARM 操作系统 相关文章:
- ARM指令寻址方式之: 数据处理指令的寻址方式(08-13)
- 数据处理指令之:SUB减操作指令(08-13)
- 数据处理指令之: RSB减翻转指令(08-13)
- 数据处理指令之: ADD加操作指令(08-13)
- 数据处理指令之: TST测试指令(08-13)
- 数据处理指令之: CMP比较指令(08-13)