8051程序用于除两个8位数


现在我们将看到另一个算术运算。除法运算,使用8051微控制器除两个8位数。在这个运算中将使用寄存器A和B。除法不能使用其他寄存器。除法的结果有两个部分。商部分和余数部分。寄存器A将保存商,寄存器B将保存余数。

我们在20H和21H位置取两个数字0EH和03H,除法后结果将存储在30H和31H位置。

地址



.
.
.
20H
0EH
21H
03H


.
.
.
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 first operand from source to register A
INC R0; Point to the next location
MOV B, @R0; take the second operand from source to register B

DIV AB ; Divide A by B

MOV @R1, A; Store Quotient to 30H
INC R1; Increase R1 to point to the next location
MOV @R1, B; Store Remainder to 31H
HALT:   SJMP HALT ;Stop the program

8051提供了DIV AB指令。通过使用此指令,可以完成除法。在其他一些微处理器(如8085)中,没有DIV指令。在那个微处理器中,我们需要使用重复减法运算来得到除法的结果。

当分母为00H时,溢出标志OV将为1。否则,除法的溢出标志为0。

输出

地址



.
.
.
20H
0EH
21H
03H


.
.
.
30H
04H
31H
02H


.
.
.

更新于: 2020年6月27日

10K+ 浏览量

开启你的职业生涯

通过完成课程获得认证

立即开始
广告