8085 微处理器中两个 8 位数的减法程序
在这里我们将看到一个 8085 程序。在这个程序中,我们将看到如何减去两个 8 位数。
问题陈述 -
编写一个 8085 汇编语言程序,以减去两个 8 位数并将结果存储在位置 8050H 和 8051H。
讨论 -
在 8085 中,SUB 指令使用 2 的补码方法进行减法。当第一个操作数较大时,结果将为正数。完成减法后,它不会启用进位标志。当结果为负数时,结果将以 2 的补码形式表示,并且进位标志将被启用。
我们正在使用位置 8000H 和 8001H 处的两个数字。当数字为 78H 和 5DH 时,结果将为 (78 – 5D = 1B),当数字为 23H 和 CFH 时,结果将为 (23 – CF = 154)。这里的 1 表示数字为负数。实际结果是 54H。它是 2 的补码形式。
输入
第一个输入
| 地址 | 数据 |
|---|---|
| … | … |
| 8000 | 78 |
| 8001 | 5D |
| … | … |
第二个输入
| 地址 | 数据 |
|---|---|
| … | … |
| 8000 | 23 |
| 8001 | CF |
| … | … |
流程图

程序
| 地址 | 十六进制代码 | 标签 | 助记符 | 注释 |
|---|---|---|---|---|
| F000 | 0E, 00 | MVI C,00H | 清除 C 寄存器 | |
| F002 | 21, 00, 80 | LXI H,8000H | 加载初始地址以获取操作数 | |
| F005 | 7E | MOV A,M | 将 Acc 加载到内存元素 | |
| F006 | 23 | INX H | 指向下一个位置 | |
| F007 | 46 | MOV B,M | 将 B 加载到第二个操作数 | |
| F008 | 90 | SUB B | 从 A 中减去 B | |
| F009 | D2, 0D, F0 | JNC STORE | 当 CY = 0 时,转到 STORE | |
| F00C | 0C | INR C | 将 C 增加 1 | |
| F00D | 21, 50, 80 | STORE | LXI H,8050H | 加载目标地址 |
| F010 | 77 | MOV M,A | 存储结果 | |
| F011 | 23 | INX H | 指向下一个位置 | |
| F012 | 71 | MOV M,C | 存储借位 | |
| F013 | 76 | HLT | 终止程序 |
输出
第一个输出
| 地址 | 数据 |
|---|---|
| … | … |
| 8050 | 1B |
| 8051 | 00 |
| … | … |
第二个输出
| 地址 | 数据 |
|---|---|
| … | … |
| 8050 | 54 |
| 8051 | 01 |
| … | … |
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP