1、流程图:
条件传送方式又称为查询方式,即CPU传送数据之前(输入和输出),需要先查询外设是否准备好,没有准备好的话继续读取状态信息,直到外设准备好了以后开始数据传送。
2、汇编语言程序设计:
(1)用程序查询的方式将输入设备的一个数据读入CPU的BL中:
MOV DX,0001H ;状态口地址 NEXT:IN AL,DX ;表示从外部设备输入数据给累加器(这里是状态 ),如果从外设端口中输入一个字节则给8位累加器 AL,若输入一个字则给16位累加器 AX AND AL,80H ;按位与操作,保留最高位 JZ NEXT ;JZ(Jump if Zero)是此前的运算结果为0时跳转;D7=0,不可以输入,需要继续监测状态 MOV DX,0000H ;数据口地址 IN AL,DX ;输入 MOV BL,AL ;CPU读入数据 RET
(2)用汇编语言实现以查询方式的数据传送:将内存中首地址为BUF的存储区内的128字节数据向CRT终端输出。假设CRT终端数据口地址为0008H,状态口地址为0010,D7为状态位,D7=0表示输出缓冲器空,允许输出数据。
MOV BX, OFFSET BUF MOV CX, 128 LOP:MOV DX, 0010H ;状态口地址 IN AL, DX ;输入状态 AND AL, 10000000B ;保留 D7 JNZ LOP ;非零转移 MOV AL, [BX] ;取出数据 MOV DX, 0008H ;数据口地址 OUT DX, AL ;输出 LOOP LOP ;循环128次 HLT
来源:https://www.cnblogs.com/zhai1997/p/12101697.html