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 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 |
| | … |
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP