1、程序解析:
(1)MOV AL,0A0H ;初始化工作方式字
1,有效;01選擇方式1,即把PA口設置為方式1,輸出;PB口選擇方式0,輸出;
(2)MOV AL,0DH ;允許中斷請求,需要置INTEA=1,即置PC6=1
將PC6置為高,置位信號為1
(3)AND AL,08H ;查發送中斷PC3
2、匯編程序:
甲機發送數據:
方式1,PA口輸出。
PC6:聯絡線OBF,緩沖器滿信號,低電平有效,代表CPU已經將數據寫到了8259A的輸出端口
PC7:聯絡線ACK,低電平有效,代表外設已經從8259A的端口接收到了數據,是對OBF的應答
MOV DX,303H ;8255A的控制口地址,這里設8255A的控制口地址為303H MOV AL,0A0H ;初始化工作方式字 OUT DX,AL MOV AL,0DH ;允許中斷請求,需要置INTEA=1,即置PC6=1 OUT DX,Al MOV SI,OFFSET BUFS ;發送數據區的指針 MOV CX,3FFH ;發送字節數 MOV DX,300H ;向PA口寫數據 MOV AL,[SI] ;發送給乙方 OUT DX,AL INC SI ;內存地址加1 DEC CX ;傳送字節數減1 L:MOV DX,302H ;8255A的控制口地址,這里設8255A的控制口地址為302H IN AL,DX ;查詢發送中斷 AND AL,08H ;查發送中斷PC3 JZ L ;無中斷請求則等待 MOV DX 300H ;若有中斷請求,則向PA口寫入數據(PA口地址) MOV AL,[SI] ;從內存取數字 OUT DX,AL ;送數到 PA口 ,向乙機發送數據 INC SI DEC CX JNZ L MOV AL,4CH INT 21H BUF DB