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
当进位为1时,增加C寄存器
F00C
05
SKIP:
DCR B
减小B寄存器
F00D
C2, 07, F0

JNZ LOOP
当零标志不为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
.
.
.
.
.
.

更新于:2023年10月26日

29K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告