算术运算类指令主要内容:1、PSW寄存器功能说明2、加、减、乘、除算术运算指令(8位无符号二进制数的算术运算)3、算术运算指令对PSW寄存器的影响一、PSW程序状态寄存器反映程序执行时的状态信息,随着程序的执行而发生变化。D7D7D5D4D3D2D1D0CYAC———OV——PSW寄存器1、CY()——进位标志,简记C在加法运算时,有进位,CY=1;无进位,CY=0在减法运算时,有借位,CY=1;无借位,CY=0在乘除运算时,CY=02、AC()——半进位标志在加法运算时,低4位向高4位有进位,AC=1;否则AC=0在减法运算时,低4位向高4位有借位,AC=1;否则AC=0注意:8位无符号二进制数范围0-2558位有符号二进制数范围-128-+1273、OV()——溢出标志在乘法运算时,乘积超过255,OV=1;否则OV=0在除法运算时,除数为零,OV=1;否则OV=0在有符号数加减运算时,数值超出有符号数的范围,OV=1二、算术运算类指令(6种/24条)加法运算:(ADD——4条)带进位加法运算:(ADDC——4条)带借位减法运算:(SUBB——4条)加1/减1操作:(INC,DEC——9条)单字节乘/除法运算:(MUL,DIV——2条)十进制调整:(DAA——1条)(1)加法运算指令(8条)1、不带进位加法指令(4条)指令格式:ADDA,源操作数指令功能:目的操作数为累加器A。将累加器A中的数据与源操作数中数据相加,结果存入累加器A中,源操作数保持不变。PSW的影响:CY、AC、OV等标志。例如:78H+94H=?0000H;程序开始MOVA,#78H;(A)=78HADDA,#94H;(A)=(A)+94HNOPEND;结束程序结果:(A)=0CHCY=1AC=0OV=078H01111000+94H+1001010010CH1000011002、带进位加法指令(4条)指令格式:ADDCA,源操作数指令功能:目的操作数为累加器A。将累加器A中的数据与源操作数中的数据与相加,再加上进位标志CY,结果存入累加器A中,源操作数保持不变。PSW的影响:CY、AC、OV等标志。注意:ADD指令和ADDC指令的区别。例如:5678H+2394H=?0000H;程序开始MOVA,#78H;(A)=78HADDA,#94H;(A)=(A)+94HMOVR0,A;低8位结果存入R0MOVA,#56H;(A)=56HADDCA,#23H;(A)=(A)+23H+CYMOVR1,A;高8位结果存入R1NOPEND;结束5678H01010**********+2394H+001000**********A0CH0111101000001100程序结果:(A)=7AH(R1)=7AH(R0)=0CHCY=0AC=0OV=0(2)带借位减法运算指令(4条)指令格式:SUBBA,源操作数指令功能:目的操作数为累加器A。累加器A中的数据减去源操作数中的数据,再减去进位标志CY,结果存入累加器A中,源操作数保持不变。PSW的影响:CY、AC、OV等标志。例如:34H-56H=?0000H;程序开始MOVPSW,#00H;CY=0MOVA,#34H;(A)=34HSUBBA,#56H;(A)=(A)-56H-CYNOPEND;结束34H0011010056H01010110-CY-01DEH111011110程序结果:(A)=DEHCY=1AC=1OV=0
33 算术运算类指令 来自淘豆网m.daumloan.com转载请标明出处.