通过将8255与8085微处理器接口,减去两个端口的内容
在这个程序中,我们将看到如何使用端口获取数据并将结果发送到端口来执行减法。
问题陈述
编写 8085 汇编语言程序,用于 8085 和 8255 之间的接口。此处端口 A 和端口 B 保存两个值,从端口 A 和 B 获取数字,从 A 中减去 B,并将结果发送到端口 C。
讨论
任务非常简单。首先,我们必须设置 8255 芯片的控制字寄存器。然后,我们将从端口 A 和 B 获取输入,添加内容,并将其发送到端口 C。
控制字寄存器如下所示。它保存 92H。
位位置 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|---|
值 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 |
控制寄存器的位表示如下
我们将 92H 加载到 A 中。然后 D7 为 1,因此它作为 IO 模式工作,(D6 和 D5) 为 00,因此它表示端口 A 处于模式 1。D4 = 1,因此端口 A 接收输入。(D3 和 D0) 为 0 和 0。因此端口 C 不工作。并且 D2 = 0,因为 B 也处于模式 0,D1 = 1,因为它充当输入端口。
在指令中,我们将看到 **OUT 83**。这里 83 是控制寄存器端口的端口号。类似地,**IN 80** 表示从端口 A 获取输入,其端口地址为 80。而 **IN 81** 表示也从端口 B 获取输入。**OUT 82** 表示我们将结果发送到端口 C。
输入
端口 | 数据 |
---|---|
A | 5C |
B | 23 |
程序
地址 | 十六进制代码 | 标签 | 助记符 | 注释 |
---|---|---|---|---|
F000 | 3E, 92 | | MVI A,92 | 将控制字加载到 A 中 |
F002 | D3, 83 | | OUT 83 | 将输出发送到控制寄存器 |
F004 | DB, 80 | | IN 80 | 从端口 A 获取第一个输入 |
F006 | 47 | | MOV B,A | 将 A 存储到 B 中 |
F007 | DB, 81 | | IN 81 | 从 B 获取第二个输入 |
F009 | 90 | | SUB B | 用 A 减去 B |
F00A | D3, 82 | | OUT 82 | 将输出发送到 C |
F00C | C9 | | RET | 返回 |
输出
端口 | 数据 |
---|---|
C | 39 |
广告