8085程序:两个BCD数的加法
在这个程序中,我们将学习如何添加两个8位BCD数。
问题陈述
编写8085汇编语言程序,将存储在内存位置8000H-8001H中的两个8位BCD数相加。
讨论
这项任务非常简单。我们从内存中获取数字,然后添加DAA指令以将累加器内容调整为十进制形式。DAA将检查AC和CY标志以将数字调整为其十进制形式。
输入
| 地址 | 数据 |
|---|---|
| ... | ... |
| 8000 | 99 |
| 8001 | 25 |
| ... | ... |
流程图

程序
| 地址 | 十六进制代码 | 标签 | 助记符 | 注释 |
|---|---|---|---|---|
| F000 | 21, 00, 80 | LXI H,8000H | 指向第一个操作数 | |
| F003 | 7E | MOV A, M | 将第一个操作数加载到A寄存器 | |
| F004 | 23 | INX H | 指向下一个操作数 | |
| F005 | 86 | ADD M | 将累加器和内存元素相加 | |
| F006 | 27 | DAA | 调整为十进制 | |
| F007 | 21, 50, 80 | LXI H,8050H | 定位目标地址 | |
| F00A | 77 | MOV M, A | 将结果存储到内存中 | |
| F00B | D2, 12, F0 | JNC DONE | 如果CY=0,则跳转到DONE | |
| F00E | 3E, 01 | MVI A, 01H | 将01H加载到A寄存器 | |
| F010 | 23 | INX H | 指向下一个位置 | |
| F011 | 77 | MOV M,A | 存储进位 | |
| F012 | 76 | DONE | HLT | 终止程序 |
输出
| 地址 | 数据 |
|---|---|
| ... | ... |
| 8050 | 25 |
| 8051 | 01 |
| ... | ... |
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP