8085模拟十进制减计数器程序
现在让我们来看一个Intel 8085微处理器的程序。在这个程序中,我们将看到如何模拟十进制减计数器。
问题陈述:
编写8085汇编语言程序来模拟十进制减计数器。
讨论:
在本节中,我们模拟十进制减计数器。这里计数器将从99到0计算100个十进制数字。所有值将在每0.5秒更新一次。对于十进制计数,我们使用DAA指令。
注意:为了简单起见,我们将数字存储到内存中。要像计数器一样模拟它,我们可以使用7段显示器来显示数字
输入:
这里我们不提供任何输入。
流程图:
程序:
地址 | 十六进制代码 | 标签 | 指令 | 注释 |
---|---|---|---|---|
F000 | 3E, 99 | MVI A,99H | 初始化A为99H | |
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 |
F015 | 78 | MOV A,B | 将B移到A | |
F016 | B1 | ORA C | C与E进行或运算 | |
F017 | C2, 13, F0 | JNZ L1 | 如果Z=0,跳转到L1 | |
F01A | C9 | RET | 子程序返回 |
输出:
数字存储在内存位置8000H中。
广告