购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.9 逻辑操作指令

本节介绍逻辑操作指令,下面对这些指令进行详细说明。

1.ANDS<Rd>,<Rm>

该指令将寄存器Rd和寄存器Rm中的内容做“逻辑与”运算,将结果保存在寄存器Rd中,同时更新寄存器APSR中的N、Z和C标志,但不更新V标志,该汇编助记符指令的机器码格式如图4.50所示。从该指令的机器码格式可知,寄存器Rm和Rd的范围为R0~R7。

图4.50 ANDS<Rd>,<Rm>指令的机器码格式

指令ANDS R0,R1,其机器码为(4008) 16 。该指令将寄存器R0和寄存器R1中的内容做“逻辑与”运算,将结果保存在寄存器R0中,同时更新寄存器APSR中的标志。

2.ORRS<Rd>,<Rm>

该指令将寄存器Rd和寄存器Rm中的内容做“逻辑或”运算,将结果保存在寄存器Rd中,同时更新寄存器APSR中的N、Z和C标志,但不更新V标志,该汇编助记符指令的机器码格式如图4.51所示。从该指令的机器码格式可知,寄存器Rm和Rd的范围为R0~R7。

图4.51 ORRS<Rd>,<Rm>指令的机器码格式

指令ORRS R0,R1,其机器码为(4308) 16 。该指令将寄存器R0和寄存器R1中的内容做“逻辑或”运算,将结果保存在寄存器R0中,同时更新寄存器APSR中的标志。

3.EORS<Rd>,<Rm>

该指令将寄存器Rd和寄存器Rm中的内容做“逻辑异或”运算,将结果保存在寄存器Rd中,同时更新寄存器APSR中的N、Z和C标志,但不更新V标志,该汇编助记符指令的机器码格式如图4.52所示。从该指令的机器码格式可知,寄存器Rm和Rd的范围为R0~R7。

图4.52 EORS<Rd>,<Rm>指令的机器码格式

指令EORS R0,R1,其机器码为(4048) 16 。该指令将寄存器R0和寄存器R1中的内容做“逻辑异或”运算,将结果保存在寄存器R0中,同时更新寄存器APSR中的标志。

4.MVNS<Rd>,<Rm>

该指令将寄存器Rm的[31:0]位按位做“逻辑取反”运算,将结果保存在寄存器Rd中,同时更新寄存器APSR中的N、Z和C标志,但不更新V标志,该汇编助记符指令的机器码格式如图4.53所示。从该指令的机器码格式可知,寄存器Rm和Rd的范围为R0~R7。

图4.53 MVNS<Rd>,<Rm>指令的机器码格式

指令MVNS R0,R1,其机器码为(43C8) 16 。该指令将寄存器R1的[31:0]位按位做“逻辑取反”运算,将结果保存在寄存器R0中,同时更新寄存器APSR中的标志。

5.BICS<Rd>,<Rm>

该指令将寄存器Rm的[31:0]位按位做“逻辑取反”运算,然后与寄存器Rd中的[31:0]位做“逻辑与”运算,将结果保存在寄存器Rd中,同时更新寄存器APSR中的N、Z和C标志,但不更新V标志。该汇编助记符指令的机器码格式如图4.54所示。从该指令的机器码格式可知,寄存器Rm和Rd的范围为R0~R7。

图4.54 BICS<Rd>,<Rm>指令的机器码格式

指令BICS R0,R1,其机器码为(4388) 16 。该指令将寄存器R1的[31:0]位按位做“逻辑取反”运算,然后与寄存器R0中的[31:0]位做“逻辑与”运算,将结果保存在寄存器R0中,同时更新寄存器APSR中的标志。

6.TST<Rd>,<Rm>

该指令将寄存器Rd和寄存器Rm中的内容做“逻辑与”运算,但是不保存结果,同时更新寄存器APSR中的N、Z和C标志,但不更新V标志,该汇编助记符指令的机器码格式如图4.55所示。从该指令的机器码格式可知,寄存器Rm和Rd的范围为R0~R7。

图4.55 TST<Rd>,<Rm>指令的机器码格式

指令TST R0,R1,其机器码为(4208) 16 。该指令将寄存器R0和寄存器R1中的内容做“逻辑与”运算,但是不保存结果,并且更新寄存器APSR中的标志。

思考与练习4.10:说明以下指令实现的功能。

(1)ANDS R2,R2,R1______________________________

(2)ORRS R2,R2,R5______________________________

(3)ANDS R5,R5,R8______________________________

(4)EORS R7,R7,R6______________________________

(5)BICS R0,R0,R1______________________________ TtXlx/VsCMekDbHnbC+iCcBaRDyzfJMHrr/MQKKuBGhG+iUhapU4oosz2xTMs7Wo

点击中间区域
呼出菜单
上一章
目录
下一章
×