8051 微处理器中两个 8 位数的减法程序


现在,在本节中,我们将了解如何使用 8051 微控制器减去两个 8 位数。寄存器 A(累加器)用作运算中的一个操作数。在不同的寄存器组中,有七个寄存器 R0 – R7。我们可以使用其中任何一个作为第二个操作数。

我们将两个数字 73H 和 BDH 分别放在 20H 和 21H 位置,减法运算结果将存储在 30H 和 31H 位置。

地址

 

20H
73H
21H
BDH
 

30H
00H
31H
00H
 


程序

      MOV R0, #20H ; set source address 20H to R0
      MOV R1, #30H ; set destination address 30H to R1
      MOV A, @R0 ; take the value from source to register A
      MOV R5, A ; Move the value from A to R5
      MOV R4, #00H ; Clear register R4 to store borrow
      INC R0 ; Point to the next location
      MOV A, @R0 ; take the value from source to register A
      MOV R3, A ; store second byte
      MOV A, R5 ;get back the first operand
      SUBB A, R3 ; Subtract R3 from A
      JNC SAVE
      INC R4 ; Increment R4 to get borrow
      MOV B, R4 ; Get borrow to register B
      MOV @R1, B ; Store the borrow first
      INC R1 ; Increase R1 to point to the next address
SAVE: MOV @R1, A ; Store the result
HALT: SJMP HALT ; Stop the program

因此,通过减去 73H – BDH,结果将为 B6H。在 30H 位置,我们将得到 01H。这表明结果为负数。要从结果 B6H 中获取实际值,我们必须执行 2 的补码运算。执行 2 的补码后,结果将为 -4AH。

输出

地址
 
20H73H
21HBDH
 
30H01H
31HB6H
 

更新于: 2019 年 10 月 9 日

2K+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告