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