版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
匯編語言程序設(shè)計第七周大課1本周主要內(nèi)容DOS和BIOS中斷鍵盤I/O
顯示器I/O2第9章DOS與BIOS中斷
DOS和BIOS中斷
鍵盤I/O
顯示器I/O
打印機I/O*
串行通信口I/O*主要內(nèi)容3DOS、BIOS與硬件的關(guān)系在用戶程序中,若直接通過端口來操作硬件或外設(shè),其處理速度顯然是最快的,但這樣做使用戶程序具有了很大的局限性。硬件環(huán)境的改變將直接影響程序的正常運行。若用戶程序通過調(diào)用DOS功能來實現(xiàn)其所需功能,那么,應(yīng)用程序與低層硬件相距較遠,操作最終的對象需要經(jīng)過中間環(huán)節(jié),處理速度受到一定的損失;但這種應(yīng)用程序適應(yīng)性強,應(yīng)用范圍廣,對硬件的依賴性最小。4由于BIOS介于DOS和具體硬件之間,所以調(diào)用BIOS的功能是一個很好的折中方案??稍谝韵氯N情況下考慮使用BIOS的功能:BIOS提供的功能,而DOS沒有提供該功能的情況;因為某些具體應(yīng)用的限制不能利用DOS功能調(diào)用的情況;基于處理速度的考慮,需要繞過DOS層的情況。DOS、BIOS與硬件的關(guān)系結(jié)論:使用中斷的層次越高,它與硬件設(shè)備相關(guān)程度就越低,處理速度也就越低,但用戶程序的適用范圍較廣。反之亦然。5調(diào)用DOS或BIOS功能的基本步驟將調(diào)用參數(shù)裝入指定寄存器中如需要功能號,把它裝入AH如需要子功能號,把它裝入AL中斷按中斷號調(diào)用DOS或BIOS中斷檢查返回參數(shù)是否正確DOS中斷類型和BIOS中斷類型參見p.316表格。6常用DOS與BIOS中斷調(diào)用1.DOS系統(tǒng)功能調(diào)用:INT21H
與鍵盤相關(guān)的功能號(AH=1、6、7、8、A、B、C) 與顯示器相關(guān)的功能號(AH=2、6、9)
與打印機相關(guān)的功能號(AH=5)
與串行接口通信相關(guān)的功能號(AH=3、4)
2.BIOS功能調(diào)用
INT16H:鍵盤輸入
INT10H:顯示器輸出(功能號參見p.328表格)
INT12H:內(nèi)存檢驗 INT17H:打印機輸出
INT13H:磁盤 INT1AH:時鐘
INT14H:串行通信 INT40H:軟盤01H——帶回顯的鍵盤輸入06H——控制臺的輸入/輸出:當(dāng)DL=0FFH,表示鍵盤輸入07H——不回顯、不過濾的鍵盤輸入08H——不回顯的鍵盤輸入0AH——鍵盤輸入字符串0BH——檢查鍵盤輸入狀態(tài)0CH——清除輸入緩沖區(qū)的輸入功能02H——顯示一個字符DL=字符,光標(biāo)隨字符移動06H——控制臺的輸入/輸出當(dāng)DL≠0FFH,表示顯示字符DL=字符,光標(biāo)隨字符移動09H——在屏幕上顯示一個字符串DS:DS=串地址,必須以$結(jié)束,光標(biāo)隨字符移動00H——從鍵盤讀一個字符AL=字符碼,AH=掃描碼01H——判斷鍵盤緩沖區(qū)內(nèi)是否有字符可讀IfZF=0,則AL=字符碼,AH=掃描碼IfZF=1,緩沖區(qū)空02H——取當(dāng)前鍵盤狀態(tài)字節(jié)AL=鍵盤狀態(tài)字節(jié)7第9章DOS與BIOS中斷
DOS和BIOS中斷
鍵盤I/O
顯示器I/O
打印機I/O*
串行通信口I/O*主要內(nèi)容8PC機的鍵盤構(gòu)成鍵盤是計算機最基本的輸入設(shè)備,通過五芯電纜與主機相連;PC鍵盤的觸點電路按16x8矩陣排列,用Intel8048芯片來控制對鍵盤的掃描;按鍵的識別用行列掃描法,確定按下鍵的位置,將掃描碼送主機。9DBPB6PB7PAIRQ1T1P10P21P11P22P204GND1CLOCK2DATA5+5V3RESETPC機鍵盤系統(tǒng)板80488255A8259ALS322串并轉(zhuǎn)換器鍵盤陣列按鍵選通PC機鍵盤的工作原理10鍵盤中斷的處理過程
當(dāng)用戶按鍵時,鍵盤接口會得到一個代表該按鍵的鍵盤掃描碼,同時產(chǎn)生一個中斷請求。鍵盤中斷服務(wù)程序先從鍵盤接口取得按鍵的掃描碼,然后根據(jù)其掃描碼判斷用戶所按的鍵并作相應(yīng)的處理,最后通知中斷控制器本次中斷結(jié)束并實現(xiàn)中斷返回。字符碼與掃描碼(見p.317)
當(dāng)按下和放開一個鍵時,若中斷允許(IMR的D1=0),就會產(chǎn)生一個類型9的8259中斷,并轉(zhuǎn)入鍵盤BIOS中斷處理程序,它從8255鍵盤接口芯片的60h端口讀入單字節(jié)掃描碼,根據(jù)按下和放開狀態(tài),使掃描碼的最高位為0或1,對應(yīng)的字節(jié)稱為通碼和斷碼;BIOS鍵盤處理程序根據(jù)掃描碼再來轉(zhuǎn)換成相應(yīng)字符碼(一般是ASCII碼),一起存放在鍵盤緩沖區(qū)的KBBuff中。字符碼與掃描碼11按鍵操作后的系統(tǒng)處理12在計算機鍵盤上除了可輸入各種字符(字母、數(shù)字和符號等)的按鍵之外,還有一些功能鍵、控制鍵、雙態(tài)鍵和特殊請求鍵。鍵盤中的控制鍵和雙態(tài)鍵是非打印按鍵,它們是起控制或轉(zhuǎn)換作用的。當(dāng)使用者按下控制鍵或雙態(tài)鍵時,系統(tǒng)要記住其所按下的按鍵。為此,在計算機系統(tǒng)中,特意安排的一個字來標(biāo)志這些按鍵的狀態(tài),我們稱該字為鍵盤狀態(tài)字。鍵盤狀態(tài)字13鍵盤緩沖區(qū)鍵盤緩沖區(qū)是一個先進先出的環(huán)形隊列,其所占內(nèi)存區(qū)域如下:雖然緩沖區(qū)的本身長度為16個字,但出于判斷“隊列滿”的考慮,它最多只能保存15個鍵盤信息。當(dāng)緩沖區(qū)滿時,系統(tǒng)將不再接受按鍵信息,而會發(fā)出“嘟”的聲音,表示要暫緩按鍵。當(dāng)KBHead與KBTail指針值相等時,表示無鍵盤輸入14隊列空kbheadkbtail隊列中無字符,隊列頭指針等于隊列尾指針隊列始端隊列末端15進隊列kbhead數(shù)據(jù)進入由隊列尾指針指示的單元同時尾指針增量,指向下一個單元隊列始端隊列末端kbtail16出隊列kbhead數(shù)據(jù)從隊列頭指針指示的單元取出同時頭指針增量,指向下一個單元隊列始端隊列末端kbtail17隊列滿kbheadkbtail尾指針與頭指針再次相等表明隊列已滿隊列始端隊列末端尾指針指向隊列末端時,需要循環(huán)重新繞回隊列始端。18BIOS中的鍵盤輸入在BIOS系統(tǒng)中,提供了中斷16H來實現(xiàn)鍵盤輸入功能。其具體的功能如下:00H從鍵盤讀一個字符,輸入字符不回顯AL=字符ASCII碼,AH=鍵盤掃描碼01H判斷鍵盤緩沖區(qū)內(nèi)是否有字符可讀IfZF=0則AL=字符碼,AH=掃描碼;IfZF=1,緩沖區(qū)空02H讀取當(dāng)前鍵盤狀態(tài)字節(jié)AL=鍵盤狀態(tài)字節(jié)19鍵盤輸入例:例1:從鍵盤讀入一個字符,顯示其掃描碼和字符碼MOV
AH,0H
INT
16H MOV
BX,AX CALLbinihex ;參見p.201例2:讀鍵盤狀態(tài),并以十六進制形式顯示again:
movah,02h int16h mov
bx,ax callbinihex movdl,0dh movah,2 int21h jmpagainbinihex procnear movch,4
;循環(huán)次數(shù)rotate: movcl,4
;一次移位數(shù)
rolbx,cl moval,bl addal,0fh addal,30h cmpal,3ah jlprintit addal,7hprintit: movdl,al;顯示一個數(shù)字
movah,2 int21h decch;循環(huán)控制
jnzrotateretbinihex endp20例3、用鍵盤最多輸入10個字符,并存入內(nèi)存變量Buff中,若按“Enter”鍵,則表示輸入結(jié)束。21DOS功能中的鍵盤輸入在DOS操作系統(tǒng)中,提供了能實現(xiàn)各種鍵盤輸入的功能(Windows操作系統(tǒng)中仍然能用)。INT21H中的相關(guān)功能如下:22INT21H的功能01H、07H和08H23INT21H的功能0AH24INT21H的功能0BHINT21H的功能0CH25.MODEL
SMALL.DATA
Buff
DB
11,?,11DUP(?);注意緩沖區(qū)的定義方式.CODE
.STARTUP
LEA
DX,Buff
MOV
AH,0AH
INT
21H;用DOS中的功能調(diào)用
.EXIT
0
END例3、用鍵盤最多輸入10個字符,并存入內(nèi)存變量Buff中,若按“Enter”鍵,則表示輸入結(jié)束。
——用DOS中的功能調(diào)用結(jié)論:用DOS中斷的鍵盤處理比用BIOS中斷的鍵盤處理要簡單些。26 .code movax,3509h int21h pushes pushbx ;保存原中斷向量內(nèi)容
cli ;關(guān)中斷
pushds ;設(shè)置新中斷向量內(nèi)容
movax,2509h movdx,segscancode movds,dx movdx,offsetscancode int21h popds鍵盤中斷主程序127 inal,21h ;讀出IMR pushax ;保存原IMR內(nèi)容
andal,0fdh ;允許鍵盤中斷(D1)
out21h,al ;設(shè)置新IMR內(nèi)容
movbyteptresccode,0 sti ;開中斷waiting: cmpbyteptresccode,81h
;循環(huán)等待按下并釋放ESC鍵
jnewaiting ;中斷服務(wù)程序設(shè)置esccode單元內(nèi)容
... ;恢復(fù)、返回鍵盤中斷主程序228scancode procfar sti ;鍵盤中斷服務(wù)程序
pushax pushbx
inal,60h ;讀取掃描碼
pushax inal,61h ;通過PB7應(yīng)答鍵盤
oral,80h
out61h,al ;使PB7=1 andal,7fh
out61h,al ;使PB7=0 popax cmpal,81h jnescan1 ;不是ESC鍵斷開掃描碼,顯示鍵盤中斷服務(wù)程序1/329 pushds ;是ESC鍵斷開掃描碼,則設(shè)置esccode單元
movbx,@data ;設(shè)置數(shù)據(jù)段地址
movds,bx
movesccode,al ;設(shè)置esccode單元為其掃描碼
popdsscan1: pushax ;顯示掃描代碼
shral,1 ;先顯示高4位
shral,1 shral,1 shral,1 cmpal,0ah jbscan2 addal,7scan2: addal,30h ;轉(zhuǎn)換成ASCII碼鍵盤中斷服務(wù)程序2/330 movbx,0 movah,0eh int10h popax;后顯示低4位
andal,0fh cmpal,0ah jbscan3 addal,7scan3: addal,30h;轉(zhuǎn)換成ASCII碼
movah,0eh int10h鍵盤中斷服務(wù)程序3/3 movax,0e20h;顯示兩個空格
int10h movax,0e20h int10h moval,20h;發(fā)送EOI命令
out20h,al popbx popax
iret
;中斷返回scancode endp31第9章DOS與BIOS中斷
DOS和BIOS中斷
鍵盤I/O
顯示器I/O
打印機I/O*
串行通信口I/O*主要內(nèi)容32顯示模式顯示器是一個重要的輸出設(shè)備,它通過顯示卡與計算機系統(tǒng)相連。顯示器的顯示屏通常稱之為屏幕,常用的顯示卡類型為VGA、SVGA、EVGA和TVGA等,顯示卡上也都帶有大量的顯示存儲器,能快速顯示精美的圖象。 計算機系統(tǒng)中的顯示器都有二種顯示方式:文本顯示方式和圖形顯示方式。 在DOS操作系統(tǒng)環(huán)境下,其默認(rèn)的顯示方式為文本顯示方式;在Windows操作系統(tǒng)環(huán)境下,其顯示方式是圖形顯示方式,其絕大多數(shù)操作界面是以圖形界面的窗口形式出現(xiàn)的。33文本顯示方式文本顯示方式是指以字符為最小單位的顯示方式,每個字符都是以矩形塊形式顯示的。在BIOSROM中存有多種不同大小的字符集,主要的顯示字符集大小為:8×8(標(biāo)準(zhǔn))、8×14和8×16等。在常用的文本顯示模式(模式3)下,屏幕被劃分成25行,每行可顯示80個字符,所以,每屏最多可顯示2000(80×25)個字符。為了便于標(biāo)識屏幕上的每個顯示位置,我們就用其所在行和列來表示之,并規(guī)定:屏幕的左上角坐標(biāo)為(0,0),右下角坐標(biāo)為(24,79)。34文本顯示方式在顯示字符時,用一個字節(jié)存儲該字符的ASCII碼,用另一個字節(jié)存儲的顯示屬性,即:顯示顏色。字符顯示屬性的定義存儲內(nèi)容與顯示位置的對應(yīng)關(guān)系0正常000黑0正常亮000黑1閃爍111白1高亮111白35文本顯示方式BGRIBGRBL閃爍背景前景彩色字符顯示屬性單色顯示屬性的組合:16種顏色的組合:顏色IRGB顏色IRGB顏色IRGB顏色IRGB黑0000紅0100灰1000淺紅1100蘭0001品紅0101淺藍1001淺品紅1101綠0010宗0110淺綠1010黃1110青0011灰白0111淺青1011白1111屏幕上字符元素的位置(row,column),在顯存中的偏移量為:Char_offset=page_offset+(row×80+column)×236圖形顯示方式圖形顯示方式是目前最常用的一種顯示方式,也是Windows操作系統(tǒng)的默認(rèn)顯示方式。在該顯示方式下,我們可以看到優(yōu)美的圖象、VCD、瀏覽豐富多彩的網(wǎng)頁等。圖形顯示的最小單位是象素,對每個象素可用不同的顏色來顯示。所以,在顯示緩沖區(qū)內(nèi)記錄的信息是屏幕各象素的顯示顏色。由于各種圖形顯示模式所能顯示的顏色和象素是不同的,它決定了顯示緩沖區(qū)的存儲方式也是不同的。下面給出三個具體的圖形顯示模式及其存儲方式,通過它們可看出各種顯示模式在顯示緩沖區(qū)存儲方式上的明顯差異。374色320×200圖形顯示模式04由于每個象素只能是四種顏色之一,而四種情況用2位二進制就可表示,所以,一個字節(jié)可表示4個象素的顯示顏色,存儲一行上的所有象素信息就需要80個字節(jié)。在具體存儲過程中,它又把偶數(shù)行象素和奇數(shù)行分開來存儲。偶數(shù)行和奇數(shù)行的象素總數(shù)各有32000個,也都需要8000個字節(jié)來存儲,并規(guī)定:偶數(shù)行象素從0B800:0000H開始存儲,奇數(shù)行象素從0B800:2000H開始存儲。
圖形顯示方式一3816色640×480圖形顯示模式12該圖形顯示模式共有307200個象素,每個象素可選用16種顏色,它需要用4位二進制來表示。該顯示模式在存儲顯示信息時,把該4位分在四個位平面P1、P2、P3和P4上,所以,位平面Pi(i=1,2,3,4)共有307200個二進制位,即有38400個字節(jié)。
圖形顯示方式二39256色320×200圖形顯示模式13表達256種不同顏色需要8位二進制,即一個字節(jié)。在該模式下,其顯示緩沖區(qū)的存儲方式是非常簡單的,即:第一個字節(jié)存儲第一個象素的顏色,第二個字節(jié)存儲第二個象素的顏色,以此類推,所以,存儲滿屏象素所需要的字節(jié)數(shù)為:320×200×1=64000。
從上面三種不同圖形顯示模式的介紹,不難看出:各種顯示模式在顯示緩沖區(qū)存儲方式上的明顯差異,操作象素方法的難易程度相差也很大,所以,再次建議:程序員不要用直接操作顯示緩沖區(qū)的辦法來達到改變顯示象素的目的,最好是通過BIOS內(nèi)的中斷功能來實現(xiàn)相應(yīng)的功能,這樣,所編寫的程序能很方便地適應(yīng)不同的圖形顯示模式。圖形顯示方式三40BIOS系統(tǒng)提供了中斷10H來實現(xiàn)各種屏幕處理功能00H——設(shè)置顯示器模式01H——設(shè)置光標(biāo)形狀02H——設(shè)置光標(biāo)位置03H——讀取光標(biāo)信息05H——設(shè)置顯示頁06H、07H——初始化或滾屏(向上滾屏和向下滾屏)08H——讀光標(biāo)處的字符及其屬性09H——在當(dāng)前光標(biāo)處按指定屬性顯示字符0AH——在當(dāng)前光標(biāo)處顯示字符0CH——寫圖形象素0DH——讀圖形象素0EH——在Teletype模式下顯示字符0FH——讀取顯示器模式10H——顏色13H——在Teletype模式下顯示字符串41可用的顯示模式42擴展的顯示模式對于超級VGA顯示卡,我們可用AX=4F02H和下列BX的值來設(shè)置其顯示模式。4300H—設(shè)置顯示器模式0CH—寫圖形象素01H—設(shè)置光標(biāo)形狀0DH—讀圖形象素02H—設(shè)置光標(biāo)位置0EH—在Teletype模式下顯示字符03H—讀取光標(biāo)信息0FH—讀取顯示器模式04H—讀取光筆位置10H—顏色05H—設(shè)置顯示頁11H—字體06H、07H—初始化或滾屏12H—顯示器的配置08H—讀光標(biāo)處的字符及其屬性13H—在Teletype模式下顯示字符串09H—在光標(biāo)處按指定屬性顯示字符1AH—讀取/設(shè)置顯示組合編碼0AH—在當(dāng)前光標(biāo)處顯示字符1BH—讀取功能/狀態(tài)信息0BH—設(shè)置調(diào)色板、背景色或邊框1CH—保存/恢復(fù)顯示器狀態(tài)BIOS中斷10H的功能返44顯示緩沖區(qū)顯示緩沖區(qū)是用來記錄屏幕顯示信息的。在文本顯示方式下,這些顯示信息包括:每個顯示字符的ASCII碼及其顯示屬性。在圖形顯示方式下,顯示緩沖區(qū)內(nèi)存儲每個象素的顯示顏色。在常用的VGA顯示方式下,計算機系統(tǒng)規(guī)定:文本顯示方式下,單色顯示器的顯示緩沖區(qū)段地址為0B000H;文本顯示方式下,彩色顯示器的顯示緩沖區(qū)段地址為0B800H;圖形顯示方式下,其顯示緩沖區(qū)段地址為0A000H。45屏幕輸出的舉例 例2——1/2例2、用直接寫屏方式在屏幕第5行、第10列以黃色(0EH)顯示字符串內(nèi)容。解:在文本顯示方式下,每行顯示80個字符,每個字符占2個字節(jié),所以,顯示一行需要160個字節(jié)。若在第m行、第n列位置顯示字符,則該位置所對應(yīng)存儲單元的偏移量為:m×160+n×2。.MODELSMALL
.DATA
Yellow
EQU
0EH
MSG1
DB
"Welcome..."
Count
EQU
$-MSG1
.CODE
.STARTUP
MOVAX,0B800H 46屏幕輸出的舉例 例2——2/2
MOVES,AX;彩色顯示器的顯示緩沖區(qū)段地址
MOVDI,5
IMULDI,160;5行所跳過的顯示存儲單元
MOVCX,10
SHLCX,1;10列所跳過的顯示存儲單元
ADDDI,CX;第5行、第10列之前所跳過的所有顯示單元
MOVCX,Count
LEASI,MSG1;CX:字符個數(shù),SI:顯示字符首地址
MOVAH,Yellow;設(shè)置顯示屬性,即顯示顏色NEXT:
LODSB;取顯示字符到AL
STOSW;向顯示緩沖區(qū)設(shè)置顯示字符和屬性AX
LOOPNEXT
.EXIT
0
END47例3、用“霓虹燈”的顯示方式顯示字符串"Hello",按ESC鍵時結(jié)束程序的運行。.MODELSMALL,C.DATA
KBEsc
EQU
1BH
BUFF
DB
"H",15,"e",15,"l",15,"l",15,"o",15.CODEClearPROCNearUsesAXBXCXDX;清屏幕,并保護所用寄存器MOVCL,0MOVCH,0MOVDL,79MOVDH,24;(0,0)-(24,79)是屏幕的左上角和右下角MOVBH,7MOVAL,0MOVAH,6INT10HRETClearENDP顯示顏色的變化來模擬霓虹燈,即用顏色15(亮白)作為字符的主要顯示顏色,再用顏色12(亮紅)從左到右逐個掃描。繼續(xù)48LEABP,BUFFMOVAL,2MOVAH,13HINT10H;調(diào)用中斷顯示字符串MOVAH,1INT16H;檢查是否有按鍵JZagain;若無字符可讀則繼續(xù)MOVAH,0INT16HCMPAL,KBEscJNZagain;若按鍵不是Escape,則繼續(xù)循環(huán).EXIT
0END顯示開始位置字符屬性地址循環(huán)續(xù)例349例4、編寫一個輸入密碼的程序,該程序的具體要求如下:
1、每輸入一個字符,顯示字符"#"表示之;
2、密碼最多只有10個字符,多余的按鍵被丟棄;
3、若輸入的字符串為"HELLO",則以藍色顯示"Welcome…",否則,以閃爍、亮紅色在顯示"InvalidPassword"。50續(xù)例4:編寫一個輸入密碼的程序——2/4MOVBUFF[BX],ALINCBX;保存當(dāng)前輸入,并移動有關(guān)指針MOVDL,'#'MOVAH,2INT21H;在屏幕上顯示字符”#”JMPagain51續(xù)例4:編寫一個輸入密碼的程序——3/452續(xù)例4:編寫一個輸入密碼的程序——4/453例5、在256色320×200的圖形顯示模式下,從屏幕最左邊向最右邊,依次畫豎線(從頂?shù)降?,線的顏色從1依次加1。要求用中斷調(diào)用的方法來畫線。;畫一條豎線,CX—豎線所在的列,AL—線的顏色54例5——2/355MOVAL,modeMOVAH,0INT10H;恢復(fù)原來的屏幕顯示模式.EXIT
0END例5——3/356DOS功能中的屏幕輸出屏幕輸出是最常用的一種輸出形式,DOS操作系統(tǒng)提供了幾種實現(xiàn)屏幕輸出的功能調(diào)用。INT21H中的相關(guān)功能如下:
02H——顯示的字符,dl放要顯示的字符碼
06H——控制臺的輸入/輸出:當(dāng)DL≠0FFH,表示顯示字符
09H——在屏幕上顯示一個字符串參數(shù):DS:DX指向字符串首地址,以‘$’結(jié)束57作業(yè)與練習(xí)第九章習(xí)題p.353~354
9.2、9.3、9.4、9.5、
9.6、9.7、9.9、9.10。58第9章DOS與BIOS中斷
DOS和BIOS中斷
鍵盤I/O
顯示器I/O
打印機I/O*
串行通信口I/O*主要內(nèi)容59打印機狀態(tài)字打印機狀態(tài)字記錄著打印機的當(dāng)前工作情況(或狀態(tài)),它相當(dāng)于CPU中的程序狀態(tài)字和鍵盤狀態(tài)字。若在某個程序中要包含打印功能,那么,程序員可通過打印狀態(tài)字來了控制打印過程,并向使用者提供各種有用信息。比如:提示使用者“打印機無紙了”或打印機處于脫機狀態(tài)(OffLine)等。60打印控制命令在打印時,程序員往往要控制文本的輸出格式,比如:換頁、換行、字體或字號等。若要實現(xiàn)對打印格式的控制,就必須要知道控制打印機的控制字符和控制命令。常用的打印控制字符字符值功能描述09H水平制表符,跳到下一個制表位置0AH換行0CH換頁0DH回車打印機還有其它的控制命令,如:ESC命令序列,該序列由字符ESC(其ASCII為1BH)和一些數(shù)值組成。對于各類打印機的控制命令,要參閱其使用手冊。61DOS&BIOS中的打印輸出DOS功能中的打印輸出在DOS操作系統(tǒng)中,INT21H提供了一種打印輸出的功能調(diào)用,其具體功能如下:05H——向連接在LPT1端口上的打印機輸出一個字符40H——向先前打開的文件寫入指定數(shù)量的字節(jié),可以把打印機看作為標(biāo)準(zhǔn)的輸出文件BIOS中的打印輸出BIOS系統(tǒng)提供中斷17H來實現(xiàn)打印輸出功能,其具體的功能如下:00H——向指定的打印機輸出一個字符01H——初始化指定的打印機02H——讀取指定打印機的狀態(tài)62例1、在每頁的開始處打印“AssemberLanguage”字符串,并空一行才打印其它內(nèi)容。繼續(xù)63again:
MOVAH,5H
MOVDL,Title1[BX]
INT21H;調(diào)用DOS功能打印字符
INCBX
LOOPagain
……;可在此打印其它任意字符
.EXIT
0
END續(xù)1在每頁的開始處打印“AssemberLanguage”字符串,并空一行才打印其它內(nèi)容。64例2、當(dāng)打印機不能正常打印(非硬件故障)時,提示使用者其原因,以便解決打印問題。繼續(xù)65續(xù)例2當(dāng)打印機不能正常打印(非硬件故障)時,提示使用者其原因,以便解決打印問題。66第9章DOS與BIOS中斷
DOS和BIOS中斷
鍵盤I/O
顯示器I/O
打印機I/O
串行通信口I/O*主要內(nèi)容67串行通信基礎(chǔ)串行通信:將數(shù)據(jù)分解成二進制位,用一條信號線,一位一位順序傳送的方式串行通信的優(yōu)勢:用于通信的線路少,因而在遠距離通信時可以極大地降低成本串行通信適合于遠距離數(shù)據(jù)傳送,也常用于速度要求不高的近距離數(shù)據(jù)傳送PC系列機上有兩個串行異步通信接口、鍵盤、鼠標(biāo)器與主機間采用串行數(shù)據(jù)傳送68異步通信串行通信時的數(shù)據(jù)、控制和狀態(tài)信息都使用同一根信號線傳送收發(fā)雙方必須遵守共同的通信協(xié)議(通信規(guī)程),才能解決傳送速率、信息格式、位同步、字符同步、數(shù)據(jù)校驗等問題串行異步通信以字符為單位進行傳輸,其通信協(xié)議是起止式異步通信協(xié)議69起止式異步通信協(xié)議起始位——每個字符開始傳送的標(biāo)志,起始位采用邏輯0電平起始位校驗位停止位空閑位數(shù)據(jù)位低位高位字符0/10/10/10/110111…數(shù)據(jù)位——數(shù)據(jù)位緊跟著起始位傳送。由5~8個二進制位組成,低位先傳送校驗位——用于校驗是否傳送正確;可選擇奇檢驗、偶校驗或不傳送校驗位停止位——表示該字符傳送結(jié)束。停止位采用邏輯1電平,可選擇1、1.5或2位空閑位——傳送字符之間的邏輯1電平,表示沒有進行傳送70數(shù)據(jù)傳輸速率數(shù)據(jù)傳輸速率也稱比特率(BitRate)每秒傳輸?shù)亩M制位數(shù)bps字符中每個二進制位持續(xù)的時間長度都一樣,為數(shù)據(jù)傳輸速率的倒數(shù)當(dāng)進行二進制數(shù)碼傳輸,且每位時間長度相等時,比特率還等于波特率(BaudRate)過去,串行異步通信的數(shù)據(jù)傳輸速率限制在50bps到9600bps之間?,F(xiàn)在,可以達到115200bps或更高71同步通信以一個數(shù)據(jù)塊(幀)為傳輸單位,每個數(shù)據(jù)塊附加1個或2個同步字符,最后以校驗字符結(jié)束同步通信的數(shù)據(jù)傳輸效率和傳輸速率較高,但硬件電路比較復(fù)雜串行同步通信主要應(yīng)用在網(wǎng)絡(luò)當(dāng)中最常使用高級數(shù)據(jù)鏈路控制協(xié)議HDLC~~~~同步字符數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)校驗字符72傳輸制式全雙工站A站B站A站B站A站B半雙工單工示例73串行通信口的中斷功能計算機的通信功能是現(xiàn)代計算機網(wǎng)絡(luò)的最基本功能。如果計算機沒有通信功能,計算機網(wǎng)絡(luò)環(huán)境也就無從談起。一臺計算機與其它計算機(或設(shè)備)之間通信除了必要的物理連接之外,它們之間通信接口的功能就是另一個極其重要的功能模塊。從計算機通信的本質(zhì)來看,通信就是發(fā)送或接受具有一定格式的二進制位。這些二進制位通過一些應(yīng)用程序——如瀏覽器——的解釋顯示成具有不同表達形式的文字或圖象。74DOS中的通信功能DOS中的通信功能INT21H提供了對通信口COM1操作的功能調(diào)用。03H——從串形通信口讀入一個字符, 返回8位數(shù)據(jù)到AL04H——向串形通信口輸出一個字符,輸出參數(shù)放在DL中MS-DOS有一條命令可以設(shè)置COM端口的參數(shù)。格式:
MODECOMm:b,p,d,s其中:m=1~4(端口號) b=xx
(取波特率的高兩位數(shù)字)
p是校驗位:N無校驗,O奇校驗,E偶校驗
d默認(rèn)為7,表示數(shù)據(jù)的字長(5~8) s是終止位數(shù)(1,1.5,2)75BIOS中的通信功能BIOS中的通信功能BIOS系統(tǒng)提供了中斷14H來實現(xiàn)對通信端口的控制能。AH功能調(diào)用參數(shù)返回參數(shù)0—初始化通信口AL=初始化參數(shù)DX=通信口號AH=通信口狀態(tài)1—向通信口輸出字符AL=輸出字符DX=通信口號成功AH=0;失敗AH7=1AH0~6=狀態(tài)2—從通信口讀入字符DX=通信口號成功AH=0AL=字符失敗AH7=1AH0~6=狀態(tài)3—讀取通信口狀態(tài)DX=通信口號AH=通信口狀態(tài)76DOS&BIOS中的通信功能
串行通訊口初始化參數(shù)串行通訊口狀態(tài)字節(jié)(置1時的含義)波特率7654321010=7位11=8位校驗字長終止位0=1位1=2位01=奇校驗11=偶校驗X0=無校驗76543210超時間斷(BI)發(fā)送保存寄存器空(THRE)數(shù)據(jù)準(zhǔn)備好(DR)幀格式錯(FE)奇偶錯(PE)超越錯(OE)發(fā)送移位寄存器空(TSRE)77例1.把字符串"Hello,World"從COM1端口傳輸出去。在傳輸過程中,要求傳輸速率為9600波特,字長為8位,1位停止位,無齊偶校驗。78續(xù)例1.:79例2.把從COM1端口讀入的字符顯示在屏幕上。如果通信端口數(shù)據(jù)未準(zhǔn)備好,則程序處于等待狀態(tài);若傳輸出錯,則用紅色顯示字符"?"。80續(xù)例2..ELSE
MOV
AL,'?';顯示字符"?"
MOV
BL,12;錯誤顏色:紅
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025農(nóng)村征地合同協(xié)議書
- 2025農(nóng)村土地永久轉(zhuǎn)讓及生態(tài)保護合同全新制定
- 2025年度公司特色花卉組合采購服務(wù)協(xié)議3篇
- 二零二五年度地鐵車站清潔與安全服務(wù)合同3篇
- 二零二五年度物流運輸勞動合同勞務(wù)合同3篇
- 二零二五年度私人住宅泳池建造合同3篇
- 2025年度全款購車汽車用品贈送合同范本3篇
- 二零二五年度高校畢業(yè)生就業(yè)見習(xí)計劃合作協(xié)議3篇
- 2025年度環(huán)保設(shè)備銷售加盟合同協(xié)議
- 二零二五年度電力設(shè)施檢修與維修合同3篇
- 【新課標(biāo)】小學(xué)道德與法治課程標(biāo)準(zhǔn)考試試卷
- 設(shè)備維修轉(zhuǎn)正述職報告
- 市技能大師工作室建設(shè)方案
- 游戲發(fā)行計劃書
- 2023通信中級傳輸與接入(有線)實務(wù)知識點大匯總
- 半導(dǎo)體自動測試設(shè)備(ATE)全球市場、份額、市場規(guī)模、趨勢、行業(yè)分析報告2024-2030年
- 領(lǐng)導(dǎo)干部必須堅守廉潔底線課件
- 礦山三合一報告
- DRG付費常見九大問題答疑
- 廣東省汕尾市2023-2024學(xué)年高一上學(xué)期期末教學(xué)質(zhì)量監(jiān)測化學(xué)試卷(含答案解析)
- 信訪業(yè)務(wù)培訓(xùn)班課件
評論
0/150
提交評論