數(shù)據(jù)處理指令之: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則結(jié)果為1)如表6.2所示。
表6.2 AND指令真值表
Op_1 | Op_2 | 結(jié) 果 |
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,取出最低位數(shù)據(jù)
ANDS R0,R0,#0x01 ;
[1] op2即為指令中的第二個操作數(shù)。ARM數(shù)據(jù)處理指令使用3地址格式,這就意味著分別指定兩個源操作數(shù)和一個目的寄存器。第一個源操作數(shù)總是目的寄存器,第二個源操作數(shù)又叫移位操作數(shù)(a shifter operand),它可能是寄存器、移位后的寄存器或立即數(shù)。第二個操作數(shù)如果是寄存器,則應(yīng)用于它的移位可能是邏輯或算術(shù)移位,或是循環(huán)移位。移位的位數(shù)可以由立即數(shù)指定,也可以由第4個寄存器指定。
評論