8085程序:两个8位数的乘法


在这个程序中,我们将学习如何使用8085微处理器将两个8位数相乘。

问题陈述

编写8085汇编语言程序,将存储在内存位置中的两个8位数相乘,并将16位结果存储到内存中。

讨论

8085没有乘法运算。为了得到乘法的结果,我们应该使用重复加法的方法。

两个8位数相乘后,可能会生成1字节或2字节的数字,因此我们使用两个寄存器来保存结果。

我们将数据保存在8000H和8001H位置。结果存储在8050H和8051H位置。

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

输入

地址
数据
.
.
.
.
.
.
8000
DC
8001
AC
.
.
.
.
.
.

流程图

程序

地址
十六进制代码
标签
助记符
注释
F000
21,00, 80

LXIH,8000H
加载第一个操作数地址
F003
46

MOVB, M
将第一个操作数存储到B寄存器
F004
23

INX H
增加HL寄存器对
F005
AF

XRA A
清零累加器
F006
4F

MOVC, A
将00H存储到C寄存器
F007
86
LOOP:
ADD M
将内存单元与累加器相加
F008
D2,0C, F0

JNC SKIP
当进位标志为0时,跳过下一任务
F00B
0C

INR C
当进位为1时,增加C寄存器
F00C
05
SKIP:
DCR B
减少B寄存器
F00D
C2,07, F0

JNZ LOOP
当零标志不为1时,跳转到循环
F010
21,50, 80

LXIH,8050H
加载目标地址
F013
71

MOVM, C
将C寄存器的內容存储到内存
F014
23

INX H
增加HL寄存器对
F015
77

MOVM, A
将累加器的內容存储到内存
F016
76

HLT
终止程序

输出

地址
数据
.
.
.
.
.
.
8050
93
8051
D0
.
.
.
.
.
.

更新于:2020年6月26日

浏览量:1K+

启动您的职业生涯

完成课程获得认证

开始学习
广告