8255与8085微处理器接口实现加法
在这个程序中,我们将学习如何使用端口接收数据并将结果发送到端口来执行加法。
问题陈述
编写8085汇编语言程序,实现8085和8255之间的接口。端口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**表示从端口地址为80的端口A获取输入。**IN 81**表示也从端口B获取输入。**OUT 82**表示我们将结果发送到端口C。
输入
| 端口 | 数据 |
|---|---|
| A | 23 |
| B | 5C |
程序
| 地址 | 十六进制代码 | 标签 | 助记符 | 注释 |
|---|---|---|---|---|
| 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 | 80 | | ADD B | 将B与A相加 |
| F00A | D3, 82 | | OUT 82 | 将输出发送到C |
| F00C | C9 | | RET | 返回 |
输出
| 端口 | 数据 |
|---|---|
| C | 7F |
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP