双操作数逻辑运算指令
发布时间:2014/6/5 21:01:02 访问次数:2227
上面的指令都是针对累加器A的逻辑运算指令,也就是说对一个寄存器的逻辑运算,ACT4070那么如果两个寄存器之间的逻辑运算又是怎么样的呢?
双操作数逻辑运算指令有以下3种。
1.逻辑与运算
A与Rn中的值按位“与”,结果送入A中
A与direct中的值按位“与”,结果送入A中
A与间址寻址单元@Ri中的值按位“与”,结果送入A中
A与立即数data按位“与”,结果送入A中
direct中的值与A中的值按位“与”,结果送入direct中
direct中的值与立即数data按位“与”,结果送入direct中
后两条指令,若直接地址direct为I/O端口PO~P3,则为端口的“读改写”操作。
指令说明:什么是逻辑“与”?数字电路中已经学过:就是F=A/\B,简记为“全1出l,有O出O”。
例如,71H和56H相“与”,将两数写成二进制形式:
逐位相“与”结果就是O0100000B,即20H。
从上面的例子可以看出,两个参与运算的值只要其中有一个位上是“0”,则这位的结果就是“0”,两个同是“1”,结果才是“1”,是不是符合逻辑“与”的结果?
知道了逻辑“与”指令的功能后,逻辑“或”和逻辑“异或”的功能就很简单了。逻辑“或”是逐位相“或”,即有1出1,全0出0。例如,71H和56H相“或”结果就是77H;而“异或”则是逐位“异或”,即相同出0,相异出l。仍旧71H和56H相“异或”,结果是57H。
上面的指令都是针对累加器A的逻辑运算指令,也就是说对一个寄存器的逻辑运算,ACT4070那么如果两个寄存器之间的逻辑运算又是怎么样的呢?
双操作数逻辑运算指令有以下3种。
1.逻辑与运算
A与Rn中的值按位“与”,结果送入A中
A与direct中的值按位“与”,结果送入A中
A与间址寻址单元@Ri中的值按位“与”,结果送入A中
A与立即数data按位“与”,结果送入A中
direct中的值与A中的值按位“与”,结果送入direct中
direct中的值与立即数data按位“与”,结果送入direct中
后两条指令,若直接地址direct为I/O端口PO~P3,则为端口的“读改写”操作。
指令说明:什么是逻辑“与”?数字电路中已经学过:就是F=A/\B,简记为“全1出l,有O出O”。
例如,71H和56H相“与”,将两数写成二进制形式:
逐位相“与”结果就是O0100000B,即20H。
从上面的例子可以看出,两个参与运算的值只要其中有一个位上是“0”,则这位的结果就是“0”,两个同是“1”,结果才是“1”,是不是符合逻辑“与”的结果?
知道了逻辑“与”指令的功能后,逻辑“或”和逻辑“异或”的功能就很简单了。逻辑“或”是逐位相“或”,即有1出1,全0出0。例如,71H和56H相“或”结果就是77H;而“异或”则是逐位“异或”,即相同出0,相异出l。仍旧71H和56H相“异或”,结果是57H。
上一篇:单操作数逻辑运算指令
上一篇:逻辑或运算
热门点击