第十一讲
乘法指令
MUL A B
.功能:将A和B两个无符号8位二进制数相乘,所得的16位积的低8位存于A中,高8位存于B中。
.如果乘积大于255,即高位B不为0时,ov置位;否则ov置0。
.CY总是清0。
.例:设(A)=50H(80D),(B)=A0H(160D).
执行指令:MUL A B
即80*160=12800=3200H
执行结果:乘积3200H(12800),(A)=00H
(B)=32H, (ov)=1,(CY)=0.
除法指令
DIU A B
.功能:将A中无符号8位二进制数除以B中的无符号8位二进位数,所得的商(整数)存于A,余数存于B.
.CY和OV置0
.当除数(B)=0时,结果不定,则OV置1。
例:设(A)=0DH(商113),(B)=11H
(余数17),(OV)=0,(CY)=0.
3.3.3逻辑运算指令
.包括:与、或、异或、清除、求反、移位等操作。
助记符有ANL ORL RL RLC RR RRC CPL CLR 等。
.只按位进行逻辑运算。
.除以A为目的的寄存器外,结果不影响PS中标志位。
累加器A的逻辑操作指令
CLR A ; 清零 (A)<—00H
CPL A; 取反(A)<—/(A)
RL A; 左环移
RLC A; 带进位左环移
RR A; 右环移
RRC A; 带进位右环移
SWAP A; (A)<——>(A)4.7,高低串字节交换
.操作不影响标志位(与CY有关的操作只影响CY)。
例:利用位循环指令将累加器A的内部乘以10
MOV A, #01H
RL A ;把累加器的内容乘2。
MOV R2, A
RL A ;把累加器的内容乘4。
RL A ;把累加器的内容乘8。
ADD A, R2
逻辑“与”运算指令
ANL A, Rn ;(A)<—(A ^ (Rn)
ANL A, direct ;(A)<—(A ^ (direct)
ANL A, @Ri ;(A)<—(A ^ ((Ri))
ANL A, #data ;(A)<—(A ^ #data
ANL direct, #A ;(direct)<—(direct) ^ (A)
ANL direct,#data ;(direct)<—(direct)^ #data