版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第9章BIOS和DOS中斷鍵盤I/O顯示器I/O打印機I/O串行通信口I/O子程序調用主程序……CALLSUBP……
子程序…………RETDOS/BIOS調用
源程序……INTn……DOS/BIOS
例行程序…………IRET實現(xiàn)機制不同BIOS和DOS基本調用調用方法:1、將調用參數(shù)裝入指定的寄存器中;2、BIOS或DOS功能號裝入AH;3、如需子功能號,把它裝入AL;4、按中斷號調用DOS或BIOS中斷(INT);5、檢查或取得返回參數(shù)。例1:DOS調用:鍵盤輸入,顯示輸出 MOV AH,01 ;DOS功能號:鍵盤輸入
INT 21H
;DOS調用 MOVCHAR,AL ;返回參數(shù):鍵入字符的 ;ASCII碼(在AL中) MOVDL,’A’ ;調用參數(shù):輸出字符 MOV AH,02
;DOS功能號:顯示輸出
INT 21H
;DOS調用
1.鍵盤I/O
(1)BIOS鍵盤中斷(INT16H)AH功能返回參數(shù)
0從鍵盤讀一字符AL=字符碼,AH=掃描碼
1讀鍵盤緩沖區(qū)的字符如ZF=0,AL=字符碼, AH=掃描碼如ZF=1,緩沖區(qū)空
2取鍵盤狀態(tài)字節(jié)AL=鍵盤狀態(tài)字節(jié)
字符數(shù)字鍵字符碼為ASCII碼功能鍵、控制鍵字符碼為0對應一個掃描碼例2:讀取鍵盤狀態(tài)字節(jié),并以十六進制打印出來again:
movah,02h
int16h
mov
bx,ax callbinihex
movdl,0dh
movah,02h
int21h
jmpagain(2)DOS鍵盤中斷(INT21H)AH
功能調用參數(shù)返回參數(shù)
1
從鍵盤輸入一個字符并回顯在屏幕上AL=字符
6讀鍵盤字符,不回顯DL=0FFH若有字符可取,AL=字符,ZF=0
若無字符可取,AL=0,ZF=1
7
從鍵盤輸入一個字符,不回顯AL=字符
8從鍵盤輸入一個字符,不回顯,AL=字符檢測Ctrl-Break
A
輸入字符到緩沖區(qū)DS:DX=緩沖區(qū)首址
B
讀鍵盤狀態(tài)AL=0FFH有鍵入,AL=00無鍵入
C
清除鍵盤緩沖區(qū),AL=鍵盤功能號并調用一種鍵盤功能(1,6,7,8或A)例3:DOS調用:從鍵盤輸入字符 MOVAH,01 ;DOS功能號:鍵盤輸入
INT21H ;DOS調用 MOVCHAR,AL ;返回參數(shù):鍵入字符 ;的ASCII碼(AL)例4:輸入字符串到緩沖區(qū)STRINGDATASEGMENTMAXLENDB32ACTLENDB?STRINGDB32DUP(?)DATAENDSCODESEGMENT
ASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX
LEADX,MAXLENMOVAH,0AHINT21HMOVAH,4GHINT21HCODEENDSENDSTART32568H61H70H70H79H0DHMAXLENACTLENSTRING(2)DOS顯示功能調用中斷
INT21H
AH
功能調用參數(shù)
2
顯示一個字符(檢驗Ctrl-Break)DL=字符 光標跟隨字符移動
6
顯示一個字符(不檢驗Ctrl-Break)DL=字符 光標跟隨字符移動
9顯示字符串DS:DX=串地址
串必須以$結束, 光標跟隨串移動例5:DOS調用:顯示輸出一個字符
MOVDL,’A’ ;調用參數(shù):輸出字符 MOVAH,02 ;DOS功能號:顯示輸出 INT21H ;DOS調用
例6:顯示字符串MESSAGEDB‘Thesortoperationisfinished.’,13,10,’$’
…
MOVAH,9 MOVDX,SEGMESSAGE MOVDS,DX MOVDX,OFFSETMESSAGEINT21H例7:除數(shù)為0時的軟件中斷(類型0)處理程序。此程序分成兩部分:初始化部分和中斷處理部分。初始化部分:設置新的0型中斷向量,顯示一條信息,然后完成終止和駐留后退出程序。中斷處理程序:在發(fā)生被0除中斷時,先保存有關的寄存器的值,然后詢問是退出“Q”還是繼續(xù)“C”,若鍵入“C”,則處理程序恢復所有的寄存器并執(zhí)行IRET返回主程序(顯示一個標記符“#”),此時除法的操作結果無效。若鍵入“Q”返回DOS。初始化部分:
leadx,zdivmovax,seg
zdivmov
ds,axmoval,0movah,25hint21hmovax,codemov
ds,axmov
dx,offsetok_msgmovah,9hmov21hmovax,1movdl,0divdlmovah,2movdl,‘#’int21hmovah,31h ;終止并駐留moval,0 ;AL=DOS返回嗎mov
dx,((prog_len+15)/16)+16
;保留的節(jié)數(shù)(1節(jié)等于16字節(jié))int21h
中斷處理程序:zdiv procfar
stiprt_warn:
movax,code
mov
ds,ax
mov
dx,offsetwarn_msg
movah,9
int21hinput:movah,1
int21h
cmp
al,’c’ jecontinue
cmpal,‘q’ jeexit
mov
dx,offsetbeep
movah,9
int21h
jmp
prt_warnexit: movax,4cffh
int21hcontinue:
mov
dx,offsetcrlf
movah,9
int21h
cli
iretzdiv
endpok_msgdb0dh,0ah,’Zero-divisionHandler installed!’db0dh,0ah,’$’warn_msgdb‘Zer0-divisiondetected,’,07hdb‘ContinueorQuit(c/q)?$’beepdb07h,’$’crlfdb0dh,0ah,’$’prog_len
equ$-main軟中斷開發(fā)方法
對于軟中斷程序,則是通過軟中斷指令INTn來調用,為了定義一個用戶自己的軟中斷指令,可以按以下步驟:1、確定一個空閑的中斷號n。2、明確入口參數(shù)和出口參數(shù)。3、編寫相應的中斷處理程序。4、設置中斷向量,即將新編寫的中斷處理程序的入口地址寫入中斷向量表的4*n開始的4個字節(jié)。在完成上述工作后,便可使用軟中斷指令INTn實現(xiàn)n號中斷調用,執(zhí)行用戶自己開發(fā)的軟中斷處理程序。軟中斷程序設計舉例例8:編寫輸出字符串“exampleforint”的中斷處理程序,設中斷號為5CODESEGMENTASSUMECS:CODEMAINPROCFARPUSHDSMOVAX,0PUSHAXCLIMOVAX,SEGNEWINT5MOVDS,AXMOVDX,OFFSETNEWINT5MOVAL,5MOVAH,25HINT21HSTIMOVCX,10L1:INT5H ;測試新中斷
LOOPL1RETMAINENDPHELLODB‘exampleforint’NEWINT5PROCFARPUSHBXPUSHCXPUSHAX
MOVBX,OFFSETHELLOMOVCX,15L2:MOVAL,CS:[BX]CALLDISPCHARINCBXLOOPL2MOVAL,0DH ;顯示回車
CALLDISPCHARMOVAL,0AH ;顯示換行
CALLDISP
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年鋼結構廠房租賃合同模板下載3篇
- 2024年購物中心物業(yè)管理合同
- 2024年龍門吊銷售協(xié)議:固定式起重機購銷協(xié)議版B版
- 2024版煤炭經營場地租賃合同范文
- 《協(xié)議遺失證明:2024年作廢協(xié)議補充協(xié)議》版
- 2024某企業(yè)與某大學關于共建實驗室的校企合作協(xié)議
- 2025年度船舶租賃與船舶拆解回收合同樣本3篇
- 2024春季建筑鋼材交易協(xié)議一
- 幼兒園工作總結希望與信任
- 2024零售業(yè)銷售協(xié)議標準化文本版B版
- 線纜包覆擠塑模設計和原理
- GM∕T 0045-2016 金融數(shù)據密碼機技術規(guī)范
- 人力資源部年度工作計劃表(超級詳細版)
- 《輪機英語》試題(二三管輪)
- 部編版二年級語文下冊《蜘蛛開店》
- 北師大二年級數(shù)學上教學反思
- 200m3╱h凈化水處理站設計方案
- 空調系統(tǒng)維保記錄表格模板
- 全國中等職業(yè)學校學生管理信息系統(tǒng)用戶操作手冊(學校級普通)
- 《數(shù)學廣角——數(shù)與形》評課稿
- 鋼結構管廊安裝施工方案36完美版
評論
0/150
提交評論