逻辑运算指令 1.ANL类指令(6条) ANL类是逻辑与指令,其功能是将源操作数作数内容和目的操作数内容按位相“与”,结果存入目的操作数指定单元中,源操作数不变。 ANL A, Rn ;A∩Rn→A ANL A, direct ;A∩(direct) →A ANL A, @Ri ;A∩(Ri) →A ANL A, #data ;A∩data→A ANL direct, A ;(direct)∩A→(direct) ANL direct, #data ;(direct)∩data→(direct) 例 设A=F6H,(30H)=0FH 执行 ANL A, 30H ;A∩ (30H) →A 操作如下: 11110110 (F6H) ∩ 00001111 (0FH) 注意:按位相“与” 00000110 (06H) 结果:A=06H, 30H地址内容不变,即(30H)=0FH 若执行ANL 30H, A ;(30H)∩ A→(30H) 操作同上,结果放在30H地址中,A中内容不变,即(30H)=06H, A=F6H。 2.ORL类指令(6条) ORL类指令是逻辑或指令,其功能是将源操作数作数内容和目的操作数内容按位逻辑“或”,结果存入目的操作数指定单元中,源操作数不变。 ORL A, Rn ;A∪Rn→A ORL A,direct ;A∪(direct) →A ORL A, @Ri ;A∪(Ri) →A ORL A, #data ;A∪data→A ORL direct, A ;(direct)∪A→(direct) ORL direct, #data ;(direct)∪data→(direct) “或”运算和“与”运算过程类似,这里不再举例。 3.XRL类指令(6条) XRL类是异或指令,其功能是将两个操作数指定内容按位“异或”,结果存于目的操作数指定单元中。“异或”原则是相同为“0”,相异为“1”。 XRL A, Rn ;A⊕Rn→A XRL A, direct ;A⊕(direct) →A XRL A, @Ri ;A⊕(Ri) →A XRL A, #data ;A⊕data→A XRL direct, A ;(direct)⊕A →(direct) XRL direct, #data ;(direct)⊕data→(direct) 例 (50H)=05H 执行 XRL 50H, #06H ;(50H)⊕06H→(50H) 操作如下: 00000101 (05H) ⊕ 00000110 (06H) 00000011 (03H) 结果:(50H)=03H 4.循环移位指令(4条) 循环移位指令的功能是将累加器A中内容循环位移或者和进位位一起移位。 例 A=01H, Cy=1 若执行一次 RRC A后,结果为:A=10000000B Cy=1 若执行一次 RLC A后,结果为:A=00000011B Cy=0 5.取反、清0指令 CPL A ;累加器内容按位取反。如果1就变0,如果0就变1 CLR A ;累加器A清0 |
|
来自: ldjsld > 《电脑手机及电子技术》