1 / 22

§ 3.4 算术运算 类指令

§ 3.4 算术运算 类指令. 一、 加法指令. 1. 不带 CY 加法指令 (4条). ; A  ( A)+(Rn). ADD. A,Rn. ;A  ( A)+(direct). ADD. A,direct. ADD. A,@Ri. ;A  ( A)+((Ri)). ADD. A,#data. ; A  ( A)+ data. 功能:将源操作数所找到的数与累加器 A 中的值相加 ,    其结果存放在累加器 A 中。. 加法运算对标志位的影响:. ( 1 ) CY------- 在加法运算中,如果 D7 位向上有进位, 则 CY=1,

trina
Download Presentation

§ 3.4 算术运算 类指令

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. § 3.4 算术运算类指令 一、 加法指令 1.不带CY加法指令(4条) ;A(A)+(Rn) ADD A,Rn ;A(A)+(direct) ADD A,direct ADD A,@Ri ;A(A)+((Ri)) ADD A,#data ;A(A)+ data 功能:将源操作数所找到的数与累加器A中的值相加,   其结果存放在累加器A中。

  2. 加法运算对标志位的影响: (1)CY-------在加法运算中,如果D7位向上有进位,则CY=1, 否则CY=0。 (2)AC-----在加法运算中,如果D3位向上有进位,则AC=1, 否则 AC=0。 (3)OV-----在加法运算中,如果D7或D6只有一个向上有进位, 则OV=1,否则 OV=0。 (4)P ——奇偶标志;A中1的个数为奇数P = 1;P = 0。

  3. 【例】(A)=85H,(R0)=20H,(20H)=0AFH,执行指令:【例】(A)=85H,(R0)=20H,(20H)=0AFH,执行指令: ADD A,@R0 1 0 0 0 0 1 0 1 + 1 0 1 0 1 1 1 1 1 0 0 1 1 0 1 0 0 结果:(A)=34H;CY=1;AC=1;OV=1。    对于加法,在进行带符号数的加法运算时,溢出标志OV=1,则表示计算结果出错。

  4. 2.带CY加法指令(4条) A,Rn ;A(A)+(Rn)+(Cy) ADDC A,direct ADDC ;A(A)+(direct)+(Cy) ADDC A,@Ri ;A(A)+((Ri))+(Cy) ADDC A,#data ;A(A)+ data+(Cy) 功能:将源操作数所找到的数与累加器A中的值及进位   标志位相加,其结果存放在累加器A中。

  5. 说明: 此处的CY是该指令执行前已经存在的进位标志位值 对标志位的影响同ADD 主要应用在多字节的加法中

  6. 【例】(A)=85H,(20H)=0FFH,CY=1执行指令: ADDC A,20H 10000101 11111111 1 10000100 结果:(A)=84H;CY=1;AC=1;OV=0。

  7. 【例】书上P45页3-10 设有两个无符号16位二进制数,分别放在30H、31H单元和 40H和41H单元中(低八位先存),写出两个16位数的加法程序,将和存入50H、51H单元中(设和不超过16位)。 解: MOV A,30H ADD A,40H MOV 50H,A MOV A,31H MOV A,41H MOV 51H,A

  8. 3.增量指令(加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 功能:将操作数所指定的单元的内容加一。 加1指令涉及 A时,会影响P,但不影响其他标志位。

  9. 【例】(A)=12H,(R3)=0FH,(35H)=4AH, (R0)=56H,(56H)=00H 执行如下指令: INCA   ;执行后(A)=13H INCR3;执行后(R3)=10H INC35H  ;执行后(35H)=4BH INC  @R0;执行后(56H)=01H

  10. 4.十进制调整指令 DA A 应用:执行该指令时,只要将该指令放在加法指令后,其就会自动调整。   具体: 判断A中的低4位是否大于9或CY=1,若满足大于则低4位做加6操作; 同样,A中的高4位大于9,或CY=1,则高4位加6操作。

  11. 例如:有两个BCD数36与45相加,结果应为BCD码81,程序如下:例如:有两个BCD数36与45相加,结果应为BCD码81,程序如下: MOV A,#36H ADD A,#45H ;得结果7BH   DA A  ; 81H   第三条指令对累加器A进行十进制调整,低4位(为0BH)大于9,因此要加6,最后得到调整的BCD码81。

  12. 注意: 该指令只能用在加法指令后    减法没有专用的十进制调整指令,可用加    (减数的补数)该指令 例:求80-20的BCD码运算 1.减数的补数:100-20 2.可以用:80+(100-20)=160 3.去掉进位标志来代替

  13. 二、 减法指令(4条) 1.带进位减法指令 SUBB A,Rn ;A(A)-(Rn)-(CY) SUBB A,direct ;A(A)-(direct)-(CY) SUBB A,@Ri ;A(A)-((Ri))-(CY) SUBB A,#data ;A(A)-data-(CY) 功能:将累加器A中的值减去源操作数和进位位CY,其结果存放在累加器A中。

  14. 注意: CY为该指令执行之前已经存在的标志位; 减法指令只有带进位的减法,不带进位的减法可令CY=0。

  15. 加法运算对标志位的影响: CY-------在减法运算中,如果D7位向上须借位,则CY=1, 否则CY=0。 AC-----在减法运算中,如果D3位向上须借位,则AC=1, 否则 AC=0 。 OV-----在减法运算中,如果D7或D6只有一个向上须借则OV=1,否则D7和D6同时无借位 OV=0 P ——奇偶标志;A中1的个数为奇数 P = 1; 否则 P = 0。

  16. 2.减1指令 DEC A ;A(A)-1 DEC Rn ;Rn(Rn)-1 DEC direct ;direct(direct)-1 DEC @Ri ;(Ri)((Ri))-1 功能:将操作数所指定的单元的内容减一。 减1指令涉及 A时,会影响P,但不影响其他标志位。

  17. 三.乘法指令 乘法指令完成单字节的乘法,只有一条指令: MUL AB; A×B→BA 功能:将累加器A和寄存器B中两个8位的无符号数相乘,所得的16位的积低8位放在A中,高8位放在B中。

  18. 乘法指令影响3个标志位: (1)若乘积小于FFH(B的内容为零),则0V=0,否则OV=1 (2)CY总为零 (3)奇偶标志位P仍按类加器A中1的奇偶性来确定

  19. 【例】(A)=50H,(B)=31H,执行指令: MUL AB 结果:(B)=0FH,(A)=50H(即乘积为3200H) (CY)=0, (OV)=1。

  20. 四、除法指令 除法指令完成单字节的除法,只有一条指令: DIV AB ;功能:(A÷B) 商→A,                 余数→B 这条指令的功能是: 对两个8位无符号数进行除法运算,其中被除数放在累加器A中,除数放在B中。执行指令后,商放在累加器A中,余数放在B中。

  21. 除法指令影响3个标志位: (1)若除数为零(B=0)时,OV=1,表示除法没有意义;若除数不为零,则OV=0 (2)CY总为零 (3)奇偶标志位P仍按类加器A中1的奇偶性来确定

  22. 算术运算类指令包括:ADD、ADDC、SUBB、MUL、DIV、算术运算类指令包括:ADD、ADDC、SUBB、MUL、DIV、 INC、DEC和DA,如图3.9所示。

More Related