版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第9章BIOS和DOS中斷鍵盤I/O顯示器I/O打印機I/O串行通信口I/O子程序調(diào)用主程序……CALLSUBP……
子程序…………RETDOS/BIOS調(diào)用
源程序……INTn……DOS/BIOS
例行程序…………IRET實現(xiàn)機制不同BIOS和DOS基本調(diào)用調(diào)用方法:1、將調(diào)用參數(shù)裝入指定的寄存器中;2、BIOS或DOS功能號裝入AH;3、如需子功能號,把它裝入AL;4、按中斷號調(diào)用DOS或BIOS中斷(INT);5、檢查或取得返回參數(shù)。例1:DOS調(diào)用:鍵盤輸入,顯示輸出 MOV AH,01 ;DOS功能號:鍵盤輸入
INT 21H
;DOS調(diào)用 MOVCHAR,AL ;返回參數(shù):鍵入字符的 ;ASCII碼(在AL中) MOVDL,’A’ ;調(diào)用參數(shù):輸出字符 MOV AH,02
;DOS功能號:顯示輸出
INT 21H
;DOS調(diào)用
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對應(yīng)一個掃描碼例2:讀取鍵盤狀態(tài)字節(jié),并以十六進制打印出來again:
movah,02h
int16h
mov
bx,ax callbinihex
movdl,0dh
movah,02h
int21h
jmpagain(2)DOS鍵盤中斷(INT21H)AH
功能調(diào)用參數(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=鍵盤功能號并調(diào)用一種鍵盤功能(1,6,7,8或A)例3:DOS調(diào)用:從鍵盤輸入字符 MOVAH,01 ;DOS功能號:鍵盤輸入
INT21H ;DOS調(diào)用 MOVCHAR,AL ;返回參數(shù):鍵入字符 ;的ASCII碼(AL)例4:輸入字符串到緩沖區(qū)STRINGDATASEGMENTMAXLENDB32ACTLENDB?STRINGDB32DUP(?)DATAENDSCODESEGMENT
ASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX
LEADX,MAXLENMOVAH,0AHINT21HMOVAH,4GHINT21HCODEENDSENDSTART32568H61H70H70H79H0DHMAXLENACTLENSTRING(2)DOS顯示功能調(diào)用中斷
INT21H
AH
功能調(diào)用參數(shù)
2
顯示一個字符(檢驗Ctrl-Break)DL=字符 光標跟隨字符移動
6
顯示一個字符(不檢驗Ctrl-Break)DL=字符 光標跟隨字符移動
9顯示字符串DS:DX=串地址
串必須以$結(jié)束, 光標跟隨串移動例5:DOS調(diào)用:顯示輸出一個字符
MOVDL,’A’ ;調(diào)用參數(shù):輸出字符 MOVAH,02 ;DOS功能號:顯示輸出 INT21H ;DOS調(diào)用
例6:顯示字符串MESSAGEDB‘Thesortoperationisfinished.’,13,10,’$’
…
MOVAH,9 MOVDX,SEGMESSAGE MOVDS,DX MOVDX,OFFSETMESSAGEINT21H例7:除數(shù)為0時的軟件中斷(類型0)處理程序。此程序分成兩部分:初始化部分和中斷處理部分。初始化部分:設(shè)置新的0型中斷向量,顯示一條信息,然后完成終止和駐留后退出程序。中斷處理程序:在發(fā)生被0除中斷時,先保存有關(guān)的寄存器的值,然后詢問是退出“Q”還是繼續(xù)“C”,若鍵入“C”,則處理程序恢復(fù)所有的寄存器并執(zhí)行IRET返回主程序(顯示一個標記符“#”),此時除法的操作結(jié)果無效。若鍵入“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ā)方法
對于軟中斷程序,則是通過軟中斷指令I(lǐng)NTn來調(diào)用,為了定義一個用戶自己的軟中斷指令,可以按以下步驟:1、確定一個空閑的中斷號n。2、明確入口參數(shù)和出口參數(shù)。3、編寫相應(yīng)的中斷處理程序。4、設(shè)置中斷向量,即將新編寫的中斷處理程序的入口地址寫入中斷向量表的4*n開始的4個字節(jié)。在完成上述工作后,便可使用軟中斷指令I(lǐng)NTn實現(xiàn)n號中斷調(diào)用,執(zhí)行用戶自己開發(fā)的軟中斷處理程序。軟中斷程序設(shè)計舉例例8:編寫輸出字符串“exampleforint”的中斷處理程序,設(shè)中斷號為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)系上傳者。文件的所有權(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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年初中同步測控優(yōu)化設(shè)計物理八年級下冊配人教版第8章 第3節(jié) 摩擦力含答案
- 咕咚 生字課件
- 第五講 巧用關(guān)聯(lián)詞寫一寫(看圖寫話教學(xué))-一年級語文上冊(統(tǒng)編版·2024秋)
- 地高辛藥品課件
- 2024年黑龍江省齊齊哈爾中考語文真題卷及答案解析
- 幼兒園小班音樂《開汽車》課件
- 西京學(xué)院《云計算》2022-2023學(xué)年期末試卷
- 2024版教材七年級上冊道德與法治期末訓(xùn)練
- 《煤油燈》少兒美術(shù)教育繪畫課件創(chuàng)意教程教案
- 西華師范大學(xué)《信息學(xué)奧賽基礎(chǔ)》2022-2023學(xué)年期末試卷
- 浙江省杭州市十三中教育集團2024-2025學(xué)年七年級上學(xué)期期中科學(xué)試題(無答案)
- 第四單元測試卷(單元測試)-2024-2025學(xué)年六年級上冊統(tǒng)編版語文
- 100MWp戶用光伏發(fā)電EPC總承包 投標方案(技術(shù)方案)
- 《中國心力衰竭診斷和治療指南2024》解讀
- 店鋪門面轉(zhuǎn)讓合同協(xié)議書2024年
- DL∕T 618-2022 氣體絕緣金屬封閉開關(guān)設(shè)備現(xiàn)場交接試驗規(guī)程
- 2024年《大學(xué)語文》期末考試復(fù)習(xí)題庫(含答案)
- 人民陪審員職業(yè)道德、司法禮儀及庭審紀律培訓(xùn)
- 2024年云南呈貢區(qū)城投集團招聘筆試參考題庫含答案解析
- XX學(xué)校學(xué)籍核查工作匯報
- 2024年陜西陜文投集團招聘筆試參考題庫含答案解析
評論
0/150
提交評論