通过将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 |
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C编程
C++
C#
MongoDB
MySQL
Javascript
PHP