数据处理指令之:AND逻辑与指令
3.指令操作的伪代码
指令操作的伪代码如下面程序段所示。
If ConditionPassed{cond} then
Rd=Rn AND 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=R1R3
AND R2,R1,R3 ;
(4)R0=R00x01,取出最低位数据
ANDS R0,R0,#0x01 ;
[1] op2即为指令中的第二个操作数。ARM数据处理指令使用3地址格式,这就意味着分别指定两个源操作数和一个目的寄存器。第一个源操作数总是目的寄存器,第二个源操作数又叫移位操作数(a shifter operand),它可能是寄存器、移位后的寄存器或立即数。第二个操作数如果是寄存器,则应用于它的移位可能是逻辑或算术移位,或是循环移位。移位的位数可以由立即数指定,也可以由第4个寄存器指定。
1
2

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码