BIOS中斷

http://course.cug.edu.cn/21cn/%CE%A2%D0%CD%BC%C6%CB%E3%BB%FA%BC%BC%CA%F5/content/masm/chapter4/4-4/4-4-2.htm#

1、INT 17H(打印機I/O調用) 
  INT 17H中斷處理程序有三個功能: 
  當AH=0時,把AL中的字符在打印機上打印出來。 
  當AH=1時,把AL中的初始化控制命令送給打印機。 
  當AH=2時,把打印機的狀態讀至AL寄存器。

D7
D6
D5
D4
D3
D2
D1
D0
確認
有紙
聯機
錯誤
/
/
超時
  寄存器AH中的值決定一箇中斷處理程序的功能,稱其爲"功能號"。當AH=0時調用INT 17H中斷,稱爲"INT 17H的0號功能",可以簡記爲"INT 17H/0
例1
用打印機打印一串字符。 
    MOV BX,OFFSET STRING 
    MOV CX,count 
  L1:MOV DX,0 
    MOV AL,[BX] 
    MOV AH,0 ;調用INT 17H/0, 
    INT 17H ;把AL中的字符在打印機上打印出來 
    INC BX 
    LOOP L1
    STRING DB 'abcduxyz' 
    count EQU $-STRING
2、INT 16H(鍵盤I/O中斷) 
  AH=0:從鍵盤讀入ASCII字符,放在AL中。 
  AH=1:測試有無鍵被按下。ZF=0,表示按過任意鍵,並在AL中獲 得該鍵的ASCII碼。ZF=1,未按過鍵。 
  AH=2:讀取特殊功能鍵的狀態至AL中。
D7
D6
D5
D4
D3
D2
D1
D0
Ins
CapsLock
NumLock
ScrollLock
Alt
Ctrl
左Shift
右Shift

  例2

      MOV AH,0 
  INT 16H
3、 INT 1AH (BIOS日期、時間中斷) 
  AH=0:讀當前時鐘值到CX、DX中。CX爲高位,DX爲低位。時鐘單位是54.9ms(1/18.2秒)(65536000/1193180)。 
  AH=1:設置當前時鐘值。

例3

計算子程序PROCESS執行的時間。 
    STI 
    MOV CX,0 
    MOV DX,0 
    MOV AH,1;設置當前時鐘爲0。 
    INT 1AH 
    CALL PROCESS 
    MOV AH,0;讀當前時鐘到CX、DX中。 
    INT 1AH 
  將CX、DX中的四字節數除以18.2,得PROCESS執行的時間秒數。

發佈了29 篇原創文章 · 獲贊 2 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章