8085程序用于除两个16位数


在这里,我们将了解如何使用 8085 除两个 16 位数。

问题陈述

编写 8085 汇编语言程序来除两个 16 位数。

讨论

8085 没有除法运算。要执行除法,我们必须使用重复减法。要执行 16 位除法,我们必须对寄存器对执行相同的操作。因为寄存器对用于保存 16 位数据。

除数存储在 FC00 和 FC01 位置,被除数存储在 FC02 和 FC03。除法后,商将存储在 FC04 和 FC05,余数将存储在 FC06 和 FC07。

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

输入

地址
数据
FC00
8A
FC01
5C
FC02
5A
FC03
1D

 

流程图

 

程序

地址
十六进制代码
标签
助记符
注释
F000
01, 00, 00
 
LXI B,0000H
清除 BC 寄存器对
F003
2A, 02, FC
 
LHLD FC02H
首先将除数放入 HL
F006
EB
 
XCHG
交换 DE 和 HL
F007
2A, 00, FC
 
LHLD FC00H
获取被除数
F00A
7D
LOOP
MOV A,L
将 L 加载到 A
F00B
93
 
SUB E
从 A 中减去 E
F00C
6F
 
MOV L,A
将 A 存储到 L
F00D
7C
 
MOV A,H
将 H 加载到 A
F00E
9A
 
SBB D
从 A 中减去 B 并带借位
F00F
67
 
MOV H,A
再次将 A 存储到 H
F010
DA, 17, F0
 
JC SKIP
如果 CY 为 1,则跳过
F013
03
 
INX B
将 B 增加 1
F014
C3, 0A, F0
 
JMP LOOP
跳转到循环
F017
19
SKIP
DAD D
将 HL 和 DE 相加
F018
22, 06, F0
 
SHLD FC06H
将余数存储到 FC06 和 FC07
F01B
69
 
MOV L,C
将 C 加载到 L
F01C
60
 
MOV H,B
将 B 加载到 H
F01D
22, 04, FC
 
SHLD FC04H
将商存储到 FC04 和 FC05
F020
76
 
HLT
终止程序

 

输出

地址
数据
FC04
03
FC05
00
FC06
7C
FC07
04

 

 

 

 

 

 

 

 

 

更新于: 2019-07-30

3K+ 次查看

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告