在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 R0MOV 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 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。
输出结果
地址 | 值 |
---|---|
| … |
20小时 | 0EH |
21小时 | 03H |
| … |
30小时 | 04小时 |
31小时 | 02小时 |
| … |
以上是 在8051微处理器中将两个8位数字相除的程序 的全部内容, 来源链接: utcz.com/z/326838.html