8085程序:在数据字段中交替显示00和FF
现在让我们来看一个Intel 8085微处理器的程序。在这个程序中,我们将交替生成00H和FFH。
问题陈述:
编写8085汇编语言程序,交替生成00H和FFH。
讨论:
00H和FFH每秒交替变化。所以我们需要一秒钟的延迟。我们创建了一个延迟子程序来生成1秒的延迟。
注意:这里为了简单起见,我们将数字存储到内存中。为了显示数字,我们可以使用7段显示器和其他显示功能将其显示在显示器上。
输入:
这里我们没有提供任何输入。
流程图:
程序:
地址 | 十六进制代码 | 标签 | 助记符 | 注释 |
---|---|---|---|---|
F000 | AF | LOOP | XRA A | 清零A寄存器 |
F001 | 32, 50, 80 | STA 8050H | 将00H存储到8050H | |
F004 | CD, 11, F0 | CALL DELAY | 等待1秒 | |
F007 | 3D | DCR A | 递减A以获得FFH | |
F008 | 32, 50, 80 | STA 8050H | 将FFH存储到8050H | |
F00B | CD, 11, F0 | CALL DELAY | 等待1秒 | |
F00E | C3, 00, F0 | JMP LOOP | 跳转到LOOP | |
F011 | 0E, 02 | DELAY | MVI C,02H | 将计数器初始化为02H |
F014 | 11, FF, FF | L1 | LXI D,FFFFH | 将FFFFH加载到DE |
F016 | 1B | L2 | DCX D | 递减DE |
F017 | 7A | MOV A,D | 将D移动到A | |
F018 | B3 | ORA E | A和E进行或运算 | |
F019 | C2, 16, F0 | JNZ L2 | 如果Z=0,跳转到L2 | |
F01C | 0D | DCR C | C减1 | |
F01D | C2, 13, F0 | JNZ L1 | 如果Z=0,跳转到L1 | |
F020 | C9 | RET | 子程序返回 |
输出:
数字存储在内存位置8000H中。
广告