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


更新於:2019 年 7 月 30 日

1K+ 檢視次數

開啟你的職業生涯

完成該課程,獲得認證

開始學習
廣告
© . All rights reserved.