汇编 接口简单异步查询方式与cpu通信
有2个输入设备 1号设备数据端口地址为0626H
2号设备数据端口地址为0628H
缓冲区首地址分别为BUFFER1,BUFFER2
状态端口地址为 0624H 状态信息为
当状态位D0=1时 为1号设备输入字符
当状态位D1=1时 为1号设备输入字符
当状态位D3=1时 为1号设备输入结束
当状态位D4=1时 为1号设备输入结束
流程: 检测状态D0为1时 转入循环检测1号设备直到输入结束送入1号缓冲buffer1 重新开始检测状态
检测状态D1为1时 转入循环检测2号设备直到输入结束送入2号缓冲buffer2 重新开始检测状态
LEA DI,BUFFER1
LEA SI,BUFFER2
START: MOV DX,0624H //检测初始状态 决定流程
IN AL,DX
TEST 01H
JZ TEST2
LOOP1: IN AL,DX //检测1号设备
TEST 08H
JZ LOOP1
MOV DX,0626H
IN AL,DX
MOV [DI],AL //送入一号缓冲区
INC DI
JMP START
TEST2: TEST 02H //检测2号设备
JZ START
LOOP2: IN AL,DX
TEST 10H
JZ LOOP2
MOV DX,0628H
IN AL,DX
MOV [SI],AL //送入二号缓冲区
INC SI
JMP START