程序查询方式控制输入输出

谁说胖子不能爱 提交于 2019-12-26 14:16:42

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
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!