透過將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