8085微处理器中两个8位数的除法程序
这里我们将看到一个8085程序。这个程序将使用8085微处理器将两个8位数相除。
问题陈述 −
编写一个8085汇编语言程序,将两个8位数相除,并将结果存储在8020H和8021H位置。
讨论 −
8085没有除法运算。要得到除法的结果,我们应该使用重复减法的方法。
使用此程序,我们将得到商和余数。8020H将保存商,8021H将保存余数。
我们将数据保存在8000H和8001H位置。结果保存在8050H和8051H位置。
输入
被除数:0EH
除数:04H
商将为3,余数将为2
流程图
程序
地址 | 十六进制代码 | 标签 | 指令 | 注释 |
---|---|---|---|---|
F000 | 21, 0E, 00 | START | LXI H,0CH | 将8位被除数加载到HL寄存器对中 |
F003 | 06, 04 | MVI B,04H | 将除数加载到B中以执行num1 / num2 | |
F005 | 0E, 08 | MVI C, 08 | 初始化计数器 | |
F007 | 29 | UP | DAD H | 左移1位 HL = HL + HL |
F008 | 7C | MOV A, H | 将H加载到A中 | |
F009 | 90 | SUB B | 执行 A = A – B | |
F00A | DA, 0F, F0 | JC DOWN | 如果MSB<除数,则左移 | |
F00D | 67 | MOV H,A | 如果MSB>除数,则将A的当前值存储到H中 | |
F00E | 2C | INR L | 跟踪商 | |
F00F | 0D | DOWN | DCR C | 递减计数器 |
F010 | C2, 07, F0 | JNZ UP | 如果未耗尽,则再次执行 | |
F013 | 22, 20, 80 | SHLD 8020 | 将结果存储在8020 H中 | |
F016 | 76 | HLT | 停止 |
输出
地址 | 数据 |
---|---|
… | … |
8020 | 03 |
8021 | 02 |
… | … |
广告