BIOS(Basic Input/Output System)稱為基本輸入輸出系統(tǒng)。BIOS是一組底層的基礎軟件程序,通常用于執(zhí)行設備驅(qū)動模塊和字符級I/O操作。BIOS固化在ROM中,用戶可用軟中斷指令INT n進行調(diào)用。
4.5.1 DOS功能調(diào)用
為了給程序員編寫匯編語言源程序提供方便,MSDOS系統(tǒng)中設置了幾十個內(nèi)部子程序(見附錄B),可供用戶調(diào)用。調(diào)用時需要使用軟中斷指令:INT n,其中n為軟中斷調(diào)用的類型號。通過INT20H~27H指令,用戶可實現(xiàn)對DOS中斷的調(diào)用。下面對幾個常用的中斷調(diào)用做簡要說明。
1)20H類中斷
程序正常退出。使用前必須保證CS中含有程序段的段基址,將段基址傳給DOS中的程序,以保證恢復時進入原有的結束出口。
2)21H類中斷
DOS功能子程序的調(diào)用使用中斷指令“INT 21H”,它共有80多個功能子程序,可以完成磁盤讀寫控制、文件管理、存儲管理、基本輸入輸出管理等功能。
3)25H類中斷
按扇區(qū)讀盤。25H功能子程序控制DOS系統(tǒng)按扇區(qū)進行讀盤、扇區(qū)數(shù)送CX、起始邏輯扇區(qū)號送DX,傳送地址由DS:BX決定。
4)26H類中斷
按扇區(qū)寫盤。與25H類功能相同,只是將讀改為寫。
5)27H類中斷
駐存結束。終止程序但保留駐存,駐存的內(nèi)存最大區(qū)域為64KB。
在DOS功能子程序中,系統(tǒng)功能子程序調(diào)用(21類中斷)是匯編語言編寫的重要工具。調(diào)用系統(tǒng)功能子程序時,不必了解所使用設備的物理特性、接口方式及內(nèi)存分配等,也不必編寫煩瑣的控制程序,給應用者帶來了很大的方便。調(diào)用系統(tǒng)功能子程序時,需要用以下方式。
(1)傳送入口參數(shù)到指定寄存器中
。2)調(diào)用的功能號送入AH寄存器中
(3)INT 21H
若子程序無入口參數(shù),則只需要安排后兩個語句。調(diào)用結束后,系統(tǒng)將出口參數(shù)送到指定寄存器,或從屏幕顯示出來。下面選擇部分常用的系統(tǒng)功能調(diào)用做簡要說明。
1.帶顯示的鍵盤輸入單字符(1號功能)
格式:MOV AH,01H
INT 21H
功能:按下任何一個鍵,將其字符的ASCII碼送入AL中,并在屏幕上顯示該字符。如果按下的是Ctrl+Break鍵,則中止程序執(zhí)行。1號功能調(diào)用無入口參數(shù)、出口參數(shù)在AL中。
2.不帶顯示的鍵盤輸入單字符(8號功能)
格式:MOV AH,08H
INT 21H
功能:同1號功能,但字符不在屏幕上顯示。
3.鍵盤輸入字符串(0AH號功能)
格式:MOV DX,緩沖區(qū)偏移量
MOV AH,0AH
INT 21H
功能:將字符串寫入內(nèi)存緩沖區(qū)中。
在使用0AH號功能調(diào)用時,應當注意以下幾點。
(1)應當先在內(nèi)存中建立一個緩沖區(qū);緩沖區(qū)的第一個字節(jié)給定該緩沖區(qū)能存放的字節(jié)數(shù),第二個字節(jié)留給系統(tǒng)填寫實際鍵入的字符個數(shù),從第三個字節(jié)開始存放鍵入的字符串,最后鍵入回車鍵表示字符串結束。
。2)設置的緩沖器容量應當多于希望鍵入的字符數(shù),若字符數(shù)超過緩沖器容量,則后面輸入的字符被略去。
。3)調(diào)用時,用DS:DX指向緩沖區(qū)的段基值:偏移量。