8085微处理器模拟十进制减计数器程序
这里我们将看到一个8085微处理器程序。在这个程序中,我们将看到如何模拟十进制减计数器。
问题陈述−
编写一个8085汇编语言程序来模拟十进制减计数器。它将从9递减到0,然后再次回到9。
讨论−
在本节中,我们正在模拟十进制减计数器。这里计数器将从99到0计数100个十进制数。所有值都将在每0.5秒更新一次。对于十进制计数,我们使用DAA指令。
注意:为了简化起见,我们将数字存储到内存中。为了将其模拟为计数器,我们可以使用7段显示器来显示数字
输入
这里我们没有提供任何输入。
流程图
程序
地址 | 十六进制代码 | 标签 | 助记符 | 注释 |
---|---|---|---|---|
F000 | 3E, 99 | | MVI A,99H | 将99H初始化到A寄存器 |
F002 | 32, 00, 80 | LOOP | STA 8000H | 将A寄存器中的数据存储到8000H内存地址 |
F005 | CD, 11, F0 | | CALL DELAY | 等待0.5秒 |
F008 | 3A, 00, 80 | | LDA 8000H | 从8000H内存地址取回数据 |
F00B | C6, 99 | | ADI 99H | 将99H加到数字上 |
F00D | 27 | | DAA | 十进制调整 |
F00E | C3, 02, F0 | | JMP LOOP | 跳转到LOOP |
F011 | 01, FF, FF | DELAY | LXI B,FFFFH | 将BC寄存器对初始化为FFFFH |
F014 | 0B | L1 | DCX B | BC寄存器减1 |
F015 | 78 | | MOV A,B | 将B寄存器的内容移到A寄存器 |
F016 | B1 | | ORA C | C寄存器和A寄存器进行或运算 |
F017 | C2, 13, F0 | | JNZ L1 | 如果Z=0,则跳转到L1 |
F01A | C9 | | RET | 子程序返回 |
输出
数字存储在8000H内存位置。
广告