8051程序来划分两个8位数字

现在我们将看到另一个算术运算。使用该8051微控制器进行除法运算可将两个8位数字相除。寄存器A和B将用于此操作。没有其他寄存器可用于除法。除法的结果分为两个部分。商部分和余数部分。寄存器A将保留商数,寄存器B将保留余数。

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

地址






20小时
0EH
21小时
03H





30小时
00小时
31小时
00小时






程序

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提供了DI VAB指令。通过使用此指令,可以完成除法。在某些其他微处理器(如8085)中,没有DIV指令。在该微处理器中,我们需要使用重复的减法运算来获得除法结果。 

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

输出结果

地址






20小时
0EH
21小时
03H





30小时
04小时
31小时
02小时