8085程序用于加两个8位数
在这个程序中,我们将看到如何使用8085微处理器来加两个8位数。
问题陈述
编写8085汇编语言程序,将两个8位数相加,并将结果存储在8050H和8051H位置。
讨论
为了执行此任务,我们使用了8085微处理器的ADD操作。当加法的结果是1字节结果时,进位标志将不会被启用。当结果超出1字节范围时,进位标志将为1。
我们使用8000H和8001H位置的两个数字。当数字为6CH和24H时,结果将为(6C + 24 = 90),当数字为FCH和2FH时,结果将为(FC + 2F = 12B)。这里结果超出了1字节的范围。
输入
第一个输入
| 地址 | 数据 |
|---|---|
| . . . | . . . |
| 8000 | 6C |
| 8001 | 24 |
| . . . | . . . |
第二个输入
| 地址 | 数据 |
|---|---|
| . . . | . . . |
| 8000 | FC |
| 8001 | 2F |
| . . . | . . . |
流程图

程序
| 地址 | 十六进制代码 | 标签 | 助记符 | 注释 |
|---|---|---|---|---|
| F000 | 0E,00 | MVIC,00H | 清零C寄存器 | |
| F002 | 21,00, 80 | LXIH,8000H | 加载初始地址以获取操作数 | |
| F005 | 7E | MOVA, M | 将Acc加载到内存单元 | |
| F006 | 23 | INX H | 指向下一个位置 | |
| F007 | 46 | MOVB, M | 将B加载到第二个操作数 | |
| F008 | 80 | SUB B | 将B与A相加 | |
| F009 | D2,0D, F0 | JNC STORE | 当CY = 0时,跳转到STORE | |
| F00C | 0C | INR C | 将C加1 | |
| F00D | 21,50, 80 | STORE | LXIH,8050H | 加载目标地址 |
| F010 | 77 | MOVM, A | 存储结果 | |
| F011 | 23 | INX H | 指向下一个位置 | |
| F012 | 71 | MOVM, C | 存储进位 | |
| F013 | 76 | HLT | 终止程序 |
输出
第一个输出
| 地址 | 数据 |
|---|---|
| . . . | . . . |
| 8050 | 90 |
| 8051 | 00 |
| . . . | . . . |
第二个输出
| 地址 | 数据 |
|---|---|
| . . . | . . . |
| 8050 | 2B |
| 8051 | 01 |
| . . . | . . . |
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP