4 位元 ALU 模擬
此外,我們使用基於邏輯控制器的介面,僅用 8085 組合語言編寫彙編程式,從而模擬 4 位元 ALU。算術邏輯單元始終執行加法、減法、AND 運算或 OR 運算,具體取決於要執行所需運算的 4 位元輸入。
對於算術邏輯單元的模擬,所有的終端輸入和輸出均由 8255 的埠提供,如下圖所示。
- 埠 B 中範圍從 7 到 4 的引腳用作 X3-0 的輸入;
- 埠 B 中範圍從 3 到 0 的引腳用作 Y3-0 的輸入;
- 埠 C 中的引腳 7 和 6 用作 S1 和 S0 輸入;
- 埠 A 引腳中的 3-0 用作輸出 Z3-0;
- 埠 A 的引腳 4 用作加法和減法運算中的 Cy 輸出。
- S1 和 S0 輸入確定 ALU 執行的運算,如下表所示。
| S1 | S0 | Z |
|---|---|---|
| 0 | 0 | X + Y |
| 0 | 1 | X – Y |
| 1 | 0 | X AND Y |
| 1 | 1 | X OR Y |
此處 S1 和 S0 是輸入,Z 是輸出。

示例程式程式碼
; FILE NAME ALU_PROG1.ASM ORG C000H PA EQU D8H PB EQU D9H PC EQU DAH CTRL EQU DBH MVI A, 10001010B OUT CTRL ; Configure 8255 ports LOOP: IN PB ; Input X and Y values through Port B MOV B, A ANI 0FH MOV C, A ; C will now have Y input MOV A, B ANI F0H RRC RRC RRC RRC MOV B, A ; B will now have X input IN PC ; Read S1 and S0 values from Port ANI 11000000B RLC RLC ; LS 2 bits of A will now have S1 and S0 CPI 00H JZ ADD ; If S1 = 0 and S0 = 0 do Add operation CPI 01H JZ SUB ; If S1 = 0 and S0 = 1 do Subtract operation CPI 02H JZ AND ; If S1 = 1 and S0 = 0 do AND operation OR: MOV A, B ORA C JMP DISP ADD: MOV A, B ADD C JMP DISP SUB: MOV A, B SUB C JMP DISP AND: MOV A, B ANA C DISP: OUT PA JMP LOOP
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP