8085程序:16位数除以8位数
在这个程序中,我们将学习如何用8位数除一个16位数。
问题陈述
编写8085汇编语言程序,将16位数除以8位数。
讨论
在这个程序中,我们从8000H和8001H读取16位数。8000H存储低位字节,8001H存储高位字节。8002H存储8位除数。除法运算后,16位商存储在8050H和8051H,余数存储在8052H。
输入
| 地址 | 数据 |
|---|---|
| . . . | . . . |
| 8000 | 2B |
| 8001 | CA |
| 8002 | 53 |
| . . . | . . . |
流程图

程序
| 地址 | 十六进制代码 | 标签 | 助记符 | 注释 |
|---|---|---|---|---|
| F000 | 21, 00, 80 | LXI H,8000H | 指向8000H地址 | |
| F003 | 7E | MOV A, M | 存储低位字节 | |
| F004 | 23 | INX H | 增加HL对指向下一个位置 | |
| F005 | 46 | MOV B, M | 存储高位字节 | |
| F006 | 23 | INX H | 增加HL对指向下一个位置 | |
| F007 | 4E | MOV C, M | 加载除数 | |
| F008 | 04 | INR B | 增加B寄存器 | |
| F009 | 21, 00, 00 | LXI H,0000H | 将0000H存储到HL对 | |
| F00C | 91 | LOOP | SUB C | 从累加器中减去C |
| F00D | DA, 14, F0 | JC SKIP | 当CY=1时跳转到SKIP | |
| F010 | 23 | INCR | INX H | 增加商部分 |
| F011 | C3, 0C, F0 | JMP LOOP | 跳转到LOOP | |
| F014 | 05 | SKIP | DCR B | 减小B |
| F015 | CA, 1B, F0 | JZ STORE | 当Z=1时跳转到STORE | |
| F018 | C3, 10, F0 | JMP INCR | 跳转到INCR | |
| F01B | 81 | STORE | ADD C | 将C与累加器相加 |
| F01C | EB | XCHG | 交换DE和HL对的内容 | |
| F01D | 21, 50, 80 | LXI H,8050H | 加载目标地址 | |
| F020 | 73 | MOV M,E | 存储低位商 | |
| F021 | 23 | INX H | 增加HL对 | |
| F022 | 72 | MOV M,D | 存储高位商 | |
| F023 | 23 | INX H | 增加HL对 | |
| F024 | 77 | MOV M,A | 存储余数 | |
| F025 | 76 | HLT | 终止程序 |
输出
| 地址 | 数据 |
|---|---|
| . . . | . . . |
| 8050 | 6F |
| 8051 | 02 |
| 8052 | 2E |
| . . . | . . . |
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP