·A和B中各存放一个8位无符号数,指令执行后,16位乘积的高8位在B中,低8位存A 例如,A=3OH,B=60H,执行 MUL AB后,A=0OH,B=12H 除法指令 DIV AB;A÷B→商在A中,余数在B中 A和B中各存放一个8位无符号数,A放被除数,B放除数。指令执行后,A中存放 商,B中存入余数。若B=00H,则指令执行后0V=1,A与B不变 例如,A=3OH,B=07H,执行 DIV AB后,A=06H,B=06H。 6.加1指令 INC Rn;Rn←Rn+1 inc direct INC @Ri (Ri)←(Ri)+1 INC DPTR;DPTR←DPTR+1 例如,(30H)=22H,执行INC30H后,(30H)=23H。 7.减1指令 DECA;A←A-1 DEC Rn dec direct direct direct) DEC@Ri;(Ri)←(Ri)-1 例如,RO=30H,(30H)=22H,执行 DEC GRO后,(3OH)=21H 8.十进制调整指令 DAA;把A中按二进制相加的结果调整成按BCD码相加的结果 例如,A=650,B=78m,C=0,执行下列语句 AddA, B DA A 后,A=43B,C=1。 【例3.2】试把存放在R1R2和R3R4中的两个16位数相加,结果存于R5R6中。 解:参考程序如下 MOVA,R2;取第一个数的低8位 ADA,R4;两数的低8位相加 MOVR6,A:保存和的低8位 MOVA,R1;取第一个数的高8位 ADDC A,R3;两数的高8位相加,并把低8位相加时的进位位加进来 MOVR5,A;把相加的高8位存入R5寄存器中• A和B中各存放一个8位无符号数,指令执行后,16位乘积的高8位在B中,低8位存A 中。 例如,A=30H,B=60H,执行 MUL AB 后,A=00H,B=12H。 5.除法指令 DIV AB ;A÷B→商在A中,余数在B中 A和B中各存放一个8位无符号数,A放被除数,B放除数。指令执行后,A中存放 商,B中存入余数。若B=00H,则指令执行后OV=1,A与B不变。 例如,A=30H,B=07H,执行 DIV AB 后,A=06H,B=06H。 6.加1指令 INC A ;A← A + 1 INC Rn ;Rn← Rn + 1 INC direct ;(direct)← (direct)+ 1 INC @Ri ;(Ri)←(Ri)+ 1 INC DPTR ;DPTR← DPTR + 1 例如,(30H)=22H,执行 INC 30H 后,(30H)=23H。 7.减1指令 DEC A ;A← A - 1 DEC Rn ;Rn← Rn - 1 DEC direct ;direct← (direct)- 1 DEC @Ri ;(Ri)←(Ri)- 1 例如,R0=30H,(30H)=22H,执行 DEC @R0 后,(30H)=21H。 8.十进制调整指令 DA A ;把A中按二进制相加的结果调整成按BCD码相加的结果 例如,A=65BCD,B=78BCD,C=0,执行下列语句 ADD A,B DA A 后,A=43 BCD,C=1。 【例3.2】 试把存放在R1R2和R3R4中的两个16位数相加,结果存于R5R6中。 解:参考程序如下: MOV A,R2 ;取第一个数的低8位 ADD A,R4 ;两数的低8位相加 MOV R6,A ;保存和的低8位 MOV A,R1 ;取第一个数的高8位 ADDC A,R3 ;两数的高8位相加,并把低8位相加时的进位位加进来 MOV R5,A ;把相加的高8位存入R5寄存器中