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