zoukankan      html  css  js  c++  java
  • 汇编(程序查询方式控制输入输出)

    1、流程图:

    条件传送方式又称为查询方式,即CPU传送数据之前(输入和输出),需要先查询外设是否准备好,没有准备好的话继续读取状态信息,直到外设准备好了以后开始数据传送。

    2、汇编语言程序设计:

    (1)用程序查询的方式将输入设备的一个数据读入CPU的BL中:

    先读取状态,相与之后判断设备的状态(0代表忙,1是不忙),最高位为状态位;再从数据口读取数据。

         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
    每个人都会有一段异常艰难的时光 。 生活的压力 , 工作的失意 , 学业的压力。 爱的惶惶不可终日。 挺过来的 ,人生就会豁然开朗。 挺不过来的 ,时间也会教你 ,怎么与它们握手言和 ,所以不必害怕的。 ——杨绛
  • 相关阅读:
    T4 assembly
    HtmlPrefixScopeExtensions
    PetaPoco修改
    类属性赋值
    Microsoft Office 2007的ContentType
    年月日-正则
    Unity shader学习之逐顶点漫反射光照模型
    Unity3d之表情动画--眨眼
    shader之法线变换
    Unity之fragment shader中如何获得视口空间中的坐标
  • 原文地址:https://www.cnblogs.com/zhai1997/p/12101697.html
Copyright © 2011-2022 走看看