8085程序用于乘以两个8位数
在本程序中,我们将了解如何使用 8085 微处理器乘以两个 8 位数。
问题陈述
编写 8085 汇编语言程序,将存储在内存位置的两个 8 位数相乘,并将 16 位结果存储到内存中。
讨论
8085 没有乘法运算。要获得乘法的结果,我们应该使用重复加法的方法。
两个 8 位数相乘后,可能会生成 1 字节或 2 字节的数字,因此我们使用两个寄存器来保存结果。
我们将数据保存在 8000H 和 8001H 位置。结果存储在 8050H 和 8051H 位置。
输入
| 地址 | 数据 |
|---|---|
| . . . | . . . |
| 8000 | DC |
| 8001 | AC |
| . . . | . . . |
流程图

程序
| 地址 | 十六进制代码 | 标签 | 助记符 | 注释 | |
|---|---|---|---|---|---|
| F000 | 21, 00, 80 | LXI H,8000H | 加载第一个操作数地址 | ||
| F003 | 46 | MOV B, M | 将第一个操作数存储到 B | ||
| F004 | 23 | INX H | 增加 HL 对 | ||
| F005 | AF | XRA A | 清除累加器 | ||
| F006 | 4F | MOV C, A | 将 00H 存储在寄存器 C 中 | ||
| F007 | 86 | LOOP | ADD M | 将内存元素与累加器相加 | |
| F008 | D2, 0C, F0 | JNC SKIP | 当进位标志为 0 时,跳过下一个任务 | ||
| F00B | 0C | INR C | 增加 C,当进位为 1 时 | ||
| F00C | 05 | SKIP | DCR B | 减少 B 寄存器 | |
| F00D | C2,07, F0 | JNZ LOOP | 当 Z 标志不为 1 时跳转到循环 | ||
| F010 | 21,50, 80 | LXI H,8050H | 加载目标地址 | ||
| F013 | 71 | MOV M, C | 将 C 寄存器内容存储到内存中 | ||
| F014 | 23 | INX H | 增加 HL 对 | ||
| F015 | 77 | MOV M, A | 将累加器内容存储到内存中 | ||
| F016 | 76 | HLT | 终止程序 | ||
输出
| 地址 | 数据 |
|---|---|
| . . . | . . . |
| 8050 | 93 |
| 8051 | D0 |
| . . . | . . . |
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP