首先,我們需要確定主片和從片的端口地址。這是基於系統的具體設計和布局,通常,這些地址是由硬件設計師決定的。在PC中,通常,主8259A的命令端口地址為20H,數據端口地址為21H;從8259A的命令端口地址為A0H,數據端口地址為A1H。
下面是基於這些地址的8259A的初始化代碼,這些代碼用匯編語言編寫:
; 初始化主8259A
mov al, 11h ; ICW1: 邊沿觸發, 級聯8259, 需要ICW4
out 20h, al
mov al, 20h ; ICW2: 中斷向量表開始地址為20H
out 21h, al
mov al, 04h ; ICW3: IR2接從片
out 21h, al
mov al, 01h ; ICW4: 80x86模式
out 21h, al
; 初始化從8259A
mov al, 11h ; ICW1: 邊沿觸發, 級聯8259, 需要ICW4
out a0h, al
mov al, 28h ; ICW2: 中斷向量表開始地址為28H
out a1h, al
mov al, 02h ; ICW3: 從片連接到主片的IR2引腳
out a1h, al
mov al, 01h ; ICW4: 80x86模式
out a1h, al
; OCW1, OCW2這裏略過,具體需根據妳的中斷開啟/屏蔽需求和中斷優先級設定
請註意這只是壹個示例代碼,妳需要根據妳的具體硬件設定和軟件需求來修改這個代碼。
此外,妳也需要考慮初始化時禁用中斷,以及在初始化結束後重新啟用中斷,這可以通過CLI(禁用中斷)和STI(啟用中斷)匯編指令來實現。
在妳的例子中,需要註意的是中斷類型號(30H, 34H, 41H, 42H),這可能涉及到在初始化中斷向量表時設定的中斷處理程序地址,這是妳需要進壹步處理的部分。