匯編(程序查詢方式控制輸入輸出)


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM