簡介:●鍵盤I/O●顯示器I/O●打印機(jī)I/O●串行通信口I/O,第九章BIOS和DOS中斷,子程序調(diào)用,主程序CALLSUBP,,子程序RET,,,DOS/BIOS調(diào)用,源程序INTN,,DOS/BIOS例行程序IRET,,,實(shí)現(xiàn)機(jī)制不同,,BIOS和DOS基本調(diào)用調(diào)用方法1、將調(diào)用參數(shù)裝入指定的寄存器中;2、BIOS或DOS功能號(hào)裝入AH;3、如需子功能號(hào),把它裝入AL;4、按中斷號(hào)調(diào)用DOS或BIOS中斷INT5、檢查或取得返回參數(shù)。,例DOS調(diào)用鍵盤輸入,顯示輸出MOVAH,01DOS功能號(hào)鍵盤輸入INT21HDOS調(diào)用MOVCHAR,AL返回參數(shù)ALMOVDL,’A’調(diào)用參數(shù)輸出字符MOVAH,02DOS功能號(hào)顯示輸出INT21HDOS調(diào)用,1鍵盤I/O1BIOS鍵盤中斷(INT16H),,,AH功能返回參數(shù)0從鍵盤讀一字符AL字符碼,AH掃描碼1讀鍵盤緩沖區(qū)的字符如ZF0,AL字符碼,AH掃描碼如ZF1,緩沖區(qū)空2取鍵盤狀態(tài)字節(jié)AL鍵盤狀態(tài)字節(jié),,字符數(shù)字鍵字符碼為ASCII碼功能鍵、控制鍵字符碼為0,,對(duì)應(yīng)一個(gè)掃描碼,DOS鍵盤中斷(INT21H),AH功能調(diào)用參數(shù)返回參數(shù),1從鍵盤輸入一個(gè)字符并回顯在屏幕上AL字符6讀鍵盤字符,不回顯DL0FFH若有字符可取,AL字符,ZF0若無字符可取,AL0,ZF17從鍵盤輸入一個(gè)字符,不回顯AL字符8從鍵盤輸入一個(gè)字符,不回顯,AL字符檢測CTRLBREAKA輸入字符到緩沖區(qū)DSDX緩沖區(qū)首址B讀鍵盤狀態(tài)AL0FFH有鍵入,AL00無鍵入C清除鍵盤緩沖區(qū),AL鍵盤功能號(hào)并調(diào)用一種鍵盤功能(1,6,7,8或A),,,,例輸入字符串到緩沖區(qū)STRINGDATASEGMENTMAXLENDB32MAXLENDB32,0,32DUPACTLENDBMAXLENDB32,33DUPSTRINGDB32DUPDATAENDSCODESEGMENTLEADX,MAXLENMOVAH,0AHINT21HCODEENDSEND,,MAXLEN,ACTLEN,STRING,,顯示器I/O文本方式ASCII字符,單色屬性,,,,前景,,閃爍,背景,BLRGBIRGB,16色屬性,BIOS顯示中斷INT10H功能號(hào)AH0,1,2,3,5,6,7,8,9,0AH,0EH13HP328例清除屏幕MOVAH,6屏幕初始化MOVAL,0全屏空白MOVBH,7卷入行屬性MOVCH,0左上角行號(hào)MOVCL,0左上角列號(hào)MOVDH,24右下角行號(hào)MOVDL,79右下角列號(hào)INT10HBIOS調(diào)用,,定義窗口,例在品紅背景下,顯示5個(gè)淺綠色閃爍的星號(hào)。MOVAH,09;光標(biāo)位置下顯示MOVAL,’’;顯示字符MOVBH,0;顯示頁0MOVBL,0DAH11011010表97MOVCX,05;顯示次數(shù)INT10H;BIOS調(diào)用,例在屏幕上以紅底蘭字顯示字符串“WORLDSCENERY”STRINGDB‘WORLDSCENERY’定義在ES段LEN_TRDW13┇MOVAL,38025,16色文本方式MOVAH,0INT10HMOVBP,SEGSTRINGMOVES,BP串地址ESBPMOVBP,OFFSETSTRINGMOVCX,LEN_STR串長度MOVDX,0起始行列MOVBX,0041H01000001(屬性)MOVAL,1子功能MOVAH,13H顯示字符串INT10H,2DOS顯示功能調(diào)用中斷INT21H,AH功能調(diào)用參數(shù)2顯示一個(gè)字符檢驗(yàn)CTRLBREAKDL字符光標(biāo)跟隨字符移動(dòng)6顯示一個(gè)字符不檢驗(yàn)CTRLBREAKDL字符光標(biāo)跟隨字符移動(dòng)9顯示字符串DSDX串地址串必須以結(jié)束,光標(biāo)跟隨串移動(dòng),,,,例顯示字符串MESSAGEDB‘THESORTOPERATIONISFINISHED’,13,10,’’MOVAH,9MOVDX,SEGMESSAGEMOVDS,DXMOVDX,OFFSETMESSAGEINT21H,3打印機(jī)I/OP336,,,,,,,,,,,,,例打印字符串TEXT(DOS)TEXTDB‘HELLO,EVERYBODY’COUNTEQU-TEXTCOUNT17MOVCX,COUNTMOVBX,0NEXTMOVAH,5MOVDL,TEXTBXINT21HINCBXLOOPNEXT,,,例打印字符串TEXT(BIOS)TEXTDB‘HELLO,EVERYBODY’COUNTEQU-TEXTMOVCX,COUNTMOVBX,0NEXTMOVAH,0MOVAL,TEXTBXMOVDX,0打印機(jī)號(hào)INT17HINCBXLOOPNEXT,,,,4串行通信口I/O,DOS串行通信口功能INT21H,,,(2)BIOS串行通信口功能INT14H,,例1從串行口輸入字符,MOVAH,3;讀字符INT21H;DOS調(diào)用MOVCHAR,AL;AL讀入字符CHARDB0,,例2初始化COM1端口,MOVAH,0;讀字符MOVDX,0;COM1MOVAL,0C3H;4800,N,1,8INT14H;BIOS調(diào)用END,
下載積分: 4 賞幣
上傳時(shí)間:2024-01-05
頁數(shù): 20
大?。?0.13(MB)
子文件數(shù):