




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、7.2數(shù)據(jù)的傳送方式7.1輸入/輸出的基本概念7.3中斷7.4DOS中斷和BIOS中斷7.1.1 I/O端口地址端口地址7.1.2 I/O指令指令7.1.1 I/O端口地址端口地址CPU和外設(shè) CPUMEMI/O設(shè)備設(shè)備總線總線I/O接口接口7.1.2 I/O指令指令1)輸入指令 ININ AL/AX , PortNo/DX2)輸出指令 OUTOUT PortNo/DX , AL/AX I/O指令7.2.1 程序方式程序方式7.2.2 中斷方式中斷方式7.2.3 DMA方式方式7.2.1 程序方式程序方式n I/O 指令指令是主機(jī)與外設(shè)進(jìn)行通信的最基是主機(jī)與外設(shè)進(jìn)行通信的最基本途徑。本途徑。D
2、OS 功能調(diào)用和功能調(diào)用和BIOS例行程例行程序中的輸入序中的輸入/ /輸出功能也是由輸出功能也是由IN和和OUT指令完成的。指令完成的。7.2.1 程序方式程序方式例:循環(huán)測試某狀態(tài)寄存器的第2位是否為1 AGAIN: IN AL, STATUS_PORT TEST AL, 00000100B JZ AGAIN MOV AL, DATA OUT DATA_PORT, AL 讀讀I/O狀態(tài)狀態(tài)準(zhǔn)備好?準(zhǔn)備好? 傳送數(shù)據(jù)傳送數(shù)據(jù)NYLOGO123 DEV1: IN AL, STAT1 TEST AL, STAT1_BIT JZ DEV2 CALL FAR PTR PROC17.2.1 程序方式程
3、序方式 DEV2: IN AL, STAT2 TEST AL, STAT2_BIT JZ DEV3 CALL FAR PTR PROC2 DEV3: IN AL, STAT3 TEST AL, STAT3_BIT JZ DEV1 CALL FAR PTR PROC3n 優(yōu):程序安排或修改 設(shè)備的優(yōu)先次序 缺:查詢等待浪費(fèi)CPU大量有效時間輪流查詢幾種輪流查詢幾種I/O設(shè)備:設(shè)備:7.2.1 程序方式程序方式例:例:Sound 程序程序2.model tiny.code.startupcall speaker_onmov ah, 1int 21hcall speaker_off.exit 07.
4、2.1 程序方式程序方式例:例:Sound 程序程序2speaker_on proc push ax in al, 61h or al, 3 out 61h, al pop ax retspeaker_on endpspeaker_off proc push ax in al, 61h and al, 0fch out 61h, al pop ax retspeaker_off endpend7.2.1 程序方式程序方式print print procproc near near push ax push ax push dx push dx movmov dx, 378h dx, 378h
5、; ; 數(shù)據(jù)寄存器數(shù)據(jù)寄存器 out dx, al out dx, al movmov dx, 379h dx, 379h ; ; 狀態(tài)寄存器狀態(tài)寄存器again: in al, dxagain: in al, dx test al, 80h ; test al, 80h ; (dx)7 7 = busy je again ; =0, je again ; =0,打印機(jī)忙打印機(jī)忙 movmov dx, 37ah dx, 37ah ; ; 控制寄存器控制寄存器 movmov al, 0dh al, 0dh out dx, al out dx, al ; 送選通信號送選通信號 jmpjmp $+2
6、 $+2 ; ; 展寬選通信號展寬選通信號 movmov al, 0ch al, 0ch out dx, al out dx, al pop dx pop dx pop ax pop ax ret retprint print endpendp0 0 0 0 1 1 0 1選通位自動換行初始化選擇位中斷位37AH7.2.3 DMA方式方式完整DMA數(shù)據(jù)傳送過程步驟123DMA控制器接受I/O接口的DMS請求,向CPU發(fā)出總線請求信號HOLD。當(dāng)CPU發(fā)出總線回答信號HLDA將總線讓出后,DMA接管對總線的控制,進(jìn)入DMA方式。DMA控制器通知I/O接口開始DMA數(shù)據(jù)傳送。CPU對DMA控制器初
7、始化,對I/O接口發(fā)出操作命令,I/O接口提出DMA請求。4DMA控制器發(fā)出讀寫命令,直接控制內(nèi)存與I/O進(jìn)行批量數(shù)據(jù)的快遞傳遞。如字計數(shù)器為0,則停止數(shù)據(jù)傳送,向CPU發(fā)出中斷請求,DMA控制器釋放總線控制權(quán),并向I/O接口發(fā)出結(jié)果信號,DMA數(shù)據(jù)傳送過程結(jié)束。7.3.2 IBM-PC的中斷源及其優(yōu)先級的中斷源及其優(yōu)先級7.3.5 外同步指令和空操作指令外同步指令和空操作指令7.3.3 中斷向量表中斷向量表7.3.6 中斷和子程序的比較中斷和子程序的比較7.3.4 軟中斷及中斷指令軟中斷及中斷指令7.3.1 中斷的概念中斷的概念7.3.1 中斷的概念中斷的概念外中斷外中斷(硬中斷硬中斷):
8、外 設(shè) 的外 設(shè) 的 I / O 請 求請 求 可屏蔽中斷可屏蔽中斷 電源掉電電源掉電 / 奇偶錯奇偶錯 非屏蔽中斷非屏蔽中斷中斷源:中斷源:引起中斷的事件引起中斷的事件內(nèi)中斷內(nèi)中斷(軟中斷軟中斷): INT 指令指令 / CPU 錯(除錯(除法錯、溢出)法錯、溢出)/ 為調(diào)試程序設(shè)置的中斷為調(diào)試程序設(shè)置的中斷7.3.2 IBM-PC的中斷源及其優(yōu)先級的中斷源及其優(yōu)先級 中斷源分為兩大類中斷源分為兩大類n外部中斷n內(nèi)部中斷7.3.2 IBM-PC的中斷源及其優(yōu)先級的中斷源及其優(yōu)先級 80 x86 中斷源:中斷源:非屏蔽中斷請求非屏蔽中斷請求 中斷邏輯中斷邏輯INT nINTO除法錯除法錯單步單
9、步 n 4 0 1CPU 2 NMI8259A可編程中斷控制器可編程中斷控制器(PIC)IR0 系統(tǒng)定時器系統(tǒng)定時器IR1 鍵盤鍵盤IR2 彩色彩色/圖形接口圖形接口IR3 保留保留IR4 串行通訊口串行通訊口IR5 保留保留IR6 軟盤軟盤IR7 打印機(jī)打印機(jī)INTR08090A0B0C0D0E0F7.3.2 IBM-PC的中斷源及其優(yōu)先級的中斷源及其優(yōu)先級 中斷的條件:中斷的條件:設(shè)置設(shè)置CPU中斷允許位:中斷允許位: FLAGS 中的中的 IF 位位 = 1 允許中斷允許中斷 ( STI ) = 0 禁止中斷禁止中斷 ( CLI )設(shè)置中斷屏蔽位:設(shè)置中斷屏蔽位: 中斷屏蔽寄存器的中斷屏
10、蔽位中斷屏蔽寄存器的中斷屏蔽位 = 0 允許允許I/O設(shè)備請設(shè)備請求中斷求中斷 = 1 禁止禁止I/O設(shè)備請設(shè)備請求中斷求中斷7.3.2 IBM-PC的中斷源及其優(yōu)先級的中斷源及其優(yōu)先級 7 6 5 4 3 2 1 0定時器定時器鍵鍵 盤盤 打印機(jī)打印機(jī)中斷屏蔽寄存器中斷屏蔽寄存器21H 7 6 5 4 3 2 1 0中斷命令寄存器中斷命令寄存器20H EOIMOV AL, 20HOUT 20H, AL8259A7.3.2 IBM-PC的中斷源及其優(yōu)先級的中斷源及其優(yōu)先級123(2)保護(hù)現(xiàn)場:FLAGS、CS、IP入棧(1)取中斷類型:CPU type N4CPU中斷過程5(3)IF=0, T
11、F=0(4)取中斷向量:(4N) IP (4N2) CS(5)轉(zhuǎn)中斷處理程序7.3.3 中斷向量表中斷向量表中斷向量中斷向量表表 類型類型0的的(IP) 類型類型0的的(CS) 類型類型1的的(IP) 類型類型1的的(CS) 類型類型N的的(IP) 類型類型N的的(CS) 類型類型255的的(IP) 類型類型255的的(CS)0000000004 4*N003FC中斷向量中斷向量中斷處理程序的入口中斷處理程序的入口 地址(段址)地址(段址):(偏址)(偏址)用戶可利用保留的中斷類型號用戶可利用保留的中斷類型號擴(kuò)充自己需要的中斷功能。擴(kuò)充自己需要的中斷功能。7.3.4 軟中斷及中斷指令軟中斷及中
12、斷指令例例:為中斷類型為中斷類型 N 設(shè)置中斷向量設(shè)置中斷向量 MOV AX, 0 MOV AX, 0 MOV ES, AX MOV ES, AX MOV BX, N MOV BX, N* *4 4 MOV AX, OFFSET INTHAND MOV AX, OFFSET INTHAND MOV ES: WORD PTRBX, AX MOV ES: WORD PTRBX, AX ;偏移地址(N*4) MOV AX, SEG INTHAND MOV AX, SEG INTHAND MOV ES: WORD PTRBX+2,AX MOV ES: WORD PTRBX+2,AX ;段地址(N*4+
13、2) INTHAND: INTHAND: ;中斷處理程序 IRET IRET7.3.5 外同步指令和空操作指令外同步指令和空操作指令例例: 編寫一個中斷處理程序,要求在主程序運(yùn)行期間,編寫一個中斷處理程序,要求在主程序運(yùn)行期間, 每隔每隔 10秒響鈴一次,同時顯示秒響鈴一次,同時顯示 bell 定時器定時器 中斷中斷18.218.2次次/SEC/SEC ; INT_TIMER; INT_TIMERINT 1CHINT 1CH IRETIRET INT_1CH PROCINT_1CH PROC IRETIRET INT_ICH ENDPINT_ICH ENDPRING PROCRING PROC
14、1.1.計數(shù)計數(shù)182(10182(10秒秒) )2.2.顯示字符串顯示字符串 IRETIRETRING ENDPRING ENDP7.3.5 外同步指令和空操作指令外同步指令和空操作指令.model small.stack.datacnt dw 1mes db bell,0ah,0dh,$.codemain proc farstart: mov ax, data mov ds, ax mov al, 1chmov ah, 35hint 21hpush espush bxpush dsmov dx, offset ringringmov ax, seg ringringmov ds, axmo
15、v al, 1chmov ah, 25hint 21hpop dsin al, 21hand al, 11111110bout 21h, alsti7.3.5 外同步指令和空操作指令外同步指令和空操作指令mov di, 30000 dly: mov si, 60000dly1: dec si jnz dly1 dec di jnz dly ;主程序 pop dx pop ds mov al, 1ch mov ah, 25h int 21h mov ax, 4c00h int 21hmain endp 7.3.5 外同步指令和空操作指令外同步指令和空操作指令ring proc near ;保存寄
16、存器保存寄存器 mov ax, data mov ds, ax sti ;開中斷開中斷 dec cnt jnz exit mov dx, offset mes mov ah, 09 int 21h call soundmov cnt,182exit: cli ;關(guān)中斷關(guān)中斷 ;恢復(fù)寄存器恢復(fù)寄存器 iretring endp end start7.3.6 中斷和子程序的比較中斷和子程序的比較中斷程序的編寫步驟:中斷程序的編寫步驟: 主程序:主程序:n 設(shè)置中斷向設(shè)置中斷向量量n 設(shè)置設(shè)置 CPU 的的中斷允許位中斷允許位 IFn 設(shè)置設(shè)備的設(shè)置設(shè)備的中斷屏蔽位中斷屏蔽位 中斷處理子程序:中斷處
17、理子程序:1. 保存寄存器內(nèi)容保存寄存器內(nèi)容2. 如允許中斷嵌套,則開中斷如允許中斷嵌套,則開中斷 ( STI )3. 中斷處理功能中斷處理功能4. 關(guān)中斷關(guān)中斷5. 送中斷結(jié)束命令送中斷結(jié)束命令( EOI )給中斷命令寄存器給中斷命令寄存器6. 恢復(fù)寄存器內(nèi)容恢復(fù)寄存器內(nèi)容7. IRET中斷返回中斷返回7.4.2 鍵盤輸入的中斷功能鍵盤輸入的中斷功能7.4.4 打印輸出的中斷功能打印輸出的中斷功能7.4.6 目錄和文件的中斷功能目錄和文件的中斷功能7.4.3 屏幕顯示的中斷功能屏幕顯示的中斷功能7.4.7 返回返回DOS操作系統(tǒng)操作系統(tǒng)7.4.5 串行通信口的中斷功能串行通信口的中斷功能7.
18、4.1 概述概述7.4. 1 概概 述述DOS 功能調(diào)用(功能調(diào)用(21H)存取中斷向量)存取中斷向量取中斷向量:取中斷向量:AH = 35HAL = 中斷類型號中斷類型號INT 21H返回時送返回時送 ES : BX = 中中斷向量斷向量設(shè)置中斷向量:設(shè)置中斷向量:AH = 25HAL = 中斷類中斷類型號型號DS : DX = 中中斷向量斷向量INT 21H7.4. 1 概概 述述MOV AL, NMOV AL, NMOV AH, 35HMOV AH, 35HINT 21HINT 21H ; ; 取原中斷取原中斷向量向量 ; ; 保存原中斷向量保存原中斷向量PUSH DSPUSH DSMO
19、V AX, SEG INTHANDMOV AX, SEG INTHANDMOV DS, AX MOV DS, AX MOV DX, OFFSET INTHANDMOV DX, OFFSET INTHANDMOV AL, NMOV AL, NMOV AH, 25HMOV AH, 25HINT 21HINT 21H ; ; 設(shè)置新的設(shè)置新的中斷向量中斷向量 POP DSPOP DSPOP DXPOP DXPOP DSPOP DSMOV AL, NMOV AL, NMOV AH, 25HMOV AH, 25HINT 21HINT 21H ; ; 恢復(fù)恢復(fù)原中斷向量原中斷向量INTHAND: ; IN
20、THAND: ; 中斷處中斷處理程序理程序IRETIRETn 用用 DOS 功能調(diào)用存取中斷向功能調(diào)用存取中斷向7.4. 1 概概 述述 主程序主程序 CALL SUBP 子程序子程序 RETDOS/BIOS調(diào)用調(diào)用 源程序源程序 INT n DOS/BIOS 例行程序例行程序 IRET7.4. 1 概概 述述調(diào)用方法:調(diào)用方法:n 1、將、將調(diào)用參數(shù)調(diào)用參數(shù)裝入裝入指定的指定的寄存器中;寄存器中;n 2、BIOS或或DOS功能號功能號裝入裝入AH;n 3、如需、如需子功能號子功能號,把它裝入,把它裝入AL;n 4、按中斷號、按中斷號調(diào)用調(diào)用DOS或或BIOS中斷中斷(INT);n 5、檢查或
21、取得、檢查或取得返回參數(shù)返回參數(shù)。BIOS和和DOS基本調(diào)用基本調(diào)用7.4.2 鍵盤輸入的中斷功能鍵盤輸入的中斷功能 鍵盤模擬程序字符碼字符碼:采用ASCII 碼表示字母、數(shù)字、專用字符和一些非打印字符,鍵盤上的控制鍵和功能鍵的ASCII碼為0,必須用掃描碼來識別。掃描碼:掃描碼: 鍵盤上的每個鍵都對應(yīng)一個掃描碼,掃描碼是按 鍵的位置來排列的。7.4.2 鍵盤輸入的中斷功能鍵盤輸入的中斷功能data segment scatab db 0,0,1234567890-=,8,0 db qwertyuiop,0dh,0 db asdfghjkl;,0,0,0,0 db zxcvbnm,./,0,0
22、,0 db ,0,0,0,0,0,0,0,0,0,0,0,0,0 db 789-456+1230,0data endsmain proc far lea bx, scatabkey_in: in al, 60h test al, 80h ;通碼? jnz key_in push ax in al, 61h or al, 80h ;置應(yīng)答位 out 61h, al and al, 7fh out 61h, al;復(fù)位應(yīng)答位 pop ax cmp al, 01 jz exit ;按Esc退出 7.4.2 鍵盤輸入的中斷功能鍵盤輸入的中斷功能 xlatb cmp al, 0 jz no_disp c
23、all disp_charno_disp: jmp key_inexit: main endp disp_char proc near mov ah, 2 mov dl, al int 21h retdisp_char endp 7 6 5 4 3 2 1 0設(shè)備控制寄存器 61H鍵盤7.4.2 鍵盤輸入的中斷功能鍵盤輸入的中斷功能MAINBUFFER滿 CALL CALL IRETNKBD中斷32次TYP中斷17次KBINTIRETRETDISPRETINTIP例;從鍵盤接收字符,同時對例;從鍵盤接收字符,同時對32字節(jié)的輸入緩沖區(qū)進(jìn)行測試;如緩沖字節(jié)的輸入緩沖區(qū)進(jìn)行測試;如緩沖區(qū)已滿,將鍵
24、盤掛起,由打印機(jī)輸出一個提示信息區(qū)已滿,將鍵盤掛起,由打印機(jī)輸出一個提示信息7.4.2 鍵盤輸入的中斷功能鍵盤輸入的中斷功能程序包括以下幾個部分:程序包括以下幾個部分:main 初始化部分初始化部分 kbint 鍵盤中斷處理程序鍵盤中斷處理程序 intip 初始化打印機(jī)初始化打印機(jī) prtint 打印機(jī)中斷處理程序打印機(jī)中斷處理程序 disp 用十六進(jìn)制顯示用十六進(jìn)制顯示al中的內(nèi)容中的內(nèi)容 7.4.2 鍵盤輸入的中斷功能鍵盤輸入的中斷功能dseg segment addr dw ? ;緩沖區(qū)指針 count dw ? buffer db 20h dup ( ) prompt db pleas
25、e input:,0dh,0ah,$ m e s s a g e d b b u f f e r overflow,0dh,0ah save_ip9 dw ? save_cs9 dw ? save_ipf dw ? save_csf dw ?dseg endsmain proc far mov addr, offset buffer mov count, 07.4.2 鍵盤輸入的中斷功能鍵盤輸入的中斷功能mov al, 09 ;鍵盤mov ah, 35hint 21hmov save_ip9, bxmov save_cs9, es mov dx, offset kbintpush dsmov
26、ax, seg kbintmov ds, axmov al, 09mov ah, 25hint 21h pop ds in al, 21hand al, 0fdhout 21h, al mov al, 0fh ;打印機(jī)mov ah, 35hint 21h mov save_ipf, bxmov save_csf, es mov dx, offset prtintpush dsmov ax, seg prtintmov ds, axmov al, 0fhmov ah, 25hint 21h pop ds mov ah, 9lea dx, promptint 21h7.4.2 鍵盤輸入的中斷功能鍵
27、盤輸入的中斷功能 sti mov di, 8000hdly: mov si, 9000hdly1: dec si jnz dly1 dec di jnz dly mov ah, 2 mov dl, $ int 21hcli push ds mov dx, save_ip9 mov ax, save_cs9 mov ds, ax mov al, 09 mov ah, 25h int 21h pop ds7.4.2 鍵盤輸入的中斷功能鍵盤輸入的中斷功能 push dsmov dx, save_ipfmov ax, save_csfmov ds, axmov al, 0fhmov ah, 25hin
28、t 21h pop dsin al, 21hand al, 0fdhout 21h, al stimain endpmain endp 7.4.2 鍵盤輸入的中斷功能鍵盤輸入的中斷功能 kbint proc nearkbint proc near push ax push bx in al, 60h push ax in al, 61h mov ah, al or al, 80h out 61h, al ;送鍵盤應(yīng)答信號 xchg ah, al out 61h, al ;復(fù)位鍵盤 pop ax test al, 80h jnz ret1 ;通碼時處理通碼:通碼:(60h)7=0斷碼:斷碼:(6
29、0h)7=17.4.2 鍵盤輸入的中斷功能鍵盤輸入的中斷功能 mov bx, addr mov bx, al call disp inc bx inc count mov addr, bxcheck: cmp count,32 jb ret1 ;判斷是否溢出 in al, 21h or al, 02 ;屏蔽鍵盤中斷 and al, 7fh out 21h,al ;允許打印機(jī)中斷 call intipret1: cli mov al, 20h out 20h,al ;結(jié)束鍵盤中斷 pop bx pop ax iretkbint endpkbint endp 7.4.2 鍵盤輸入的中斷功能鍵盤輸入
30、的中斷功能 intip proc nearintip proc near push ax push bx push dx cli m o v b x , o f f s e t message mov addr, bx mov dx, 378h mov al, 0dh out dx, al ;輸出回車 mov dx, 37ah mov al, 1dhout dx, al ;送選通信號 jmp $+2 ;展寬選通信號 mov al, 1ch out dx, al pop dx pop bx pop ax retintip endpintip endp 7.4.2 鍵盤輸入的中斷功能鍵盤輸入的中斷
31、功能 push dsprtint proc nearprtint proc near push ax push bx push dx mov bx, addr mov al, bx mov dx, 378h out dx, al push ax mov dx, 37ah mov al, 1dh out dx, al jmp $+2 mov al, 1ch out dx, al pop ax7.4.2 鍵盤輸入的中斷功能鍵盤輸入的中斷功能 inc bx mov addr, bx cmp al, 0ah jnz ret2 in al, 21h or al, 80h out 21h, al ;屏蔽打
32、印機(jī)中斷ret2: mov al, 20h out 20h, al ;結(jié)束打印機(jī)中斷 pop dx pop bx pop ax iretprtint endpprtint endp 7.4.2 鍵盤輸入的中斷功能鍵盤輸入的中斷功能 disp proc neardisp proc near ;顯示掃描碼 push ax push cx push dx mov ch, 2 mov cl, 4nextb: rol al, cl push ax mov dl, al and dl, 0fh or dl, 30h cmp dl, 3ah jl dispit add dl, 7dispit: mov ah
33、, 2 int 21h pop ax dec ch jnz nextbmov ah, 2 mov dl, , int 21h pop dx pop cx pop ax retdisp endpdisp endp7.4.2 鍵盤輸入的中斷功能鍵盤輸入的中斷功能例:例:DOSDOS調(diào)用:鍵盤輸入,顯示輸出調(diào)用:鍵盤輸入,顯示輸出MOVMOV AHAH, 01, 01 ;DOS ;DOS功能號功能號: :鍵盤輸入鍵盤輸入 INTINT 21H 21H ;DOS ;DOS調(diào)用調(diào)用MOV CHAR, MOV CHAR, AL AL ; ;返回參數(shù)返回參數(shù): : (AL)(AL)MOV MOV DLDL,
34、 , A A ; ;調(diào)用參數(shù)調(diào)用參數(shù): : 輸出字符輸出字符MOVMOV AHAH, 02, 02 ; DOS ; DOS功能號功能號: : 顯示輸出顯示輸出INTINT 21H 21H ; DOS ; DOS調(diào)用調(diào)用7.4.2 鍵盤輸入的中斷功能鍵盤輸入的中斷功能 (1) BIOS (1) BIOS鍵盤中斷鍵盤中斷 ( )AH 功能功能 返回參數(shù)返回參數(shù) 0 從鍵盤讀一字符從鍵盤讀一字符 AL=字符碼,字符碼,AH=掃描碼掃描碼 1 讀鍵盤緩沖區(qū)的字符讀鍵盤緩沖區(qū)的字符 如如ZF=0,AL=字符碼,字符碼, AH=掃描碼掃描碼 如如ZF=1,緩沖區(qū)空,緩沖區(qū)空 2 取鍵盤狀態(tài)字節(jié)取鍵盤狀態(tài)字
35、節(jié) AL=鍵盤狀態(tài)字節(jié)鍵盤狀態(tài)字節(jié)7.4.2 鍵盤輸入的中斷功能鍵盤輸入的中斷功能 字符數(shù)字鍵字符數(shù)字鍵 字符碼為字符碼為ASCII 碼碼 功能鍵、控制鍵功能鍵、控制鍵 字符碼為字符碼為0對應(yīng)一個掃描碼對應(yīng)一個掃描碼(2)DOS鍵盤中斷鍵盤中斷 ( )7.4.2 鍵盤輸入的中斷功能鍵盤輸入的中斷功能 功功 能能 調(diào)用參數(shù)調(diào)用參數(shù) 返回參數(shù)返回參數(shù) 從鍵盤輸入一個字符并回顯在屏幕上從鍵盤輸入一個字符并回顯在屏幕上 AL=字符字符 讀鍵盤字符,不回顯讀鍵盤字符,不回顯 DL= 0FFH 若有字符可取,若有字符可取,AL=字符,字符,ZF=0 若無字符可取,若無字符可取,AL=0,ZF=1 從鍵盤輸
36、入一個字符,不回顯從鍵盤輸入一個字符,不回顯 AL=字符字符 從鍵盤輸入一個字符,不回顯,從鍵盤輸入一個字符,不回顯, AL=字符字符 檢測檢測Ctrl-Break 輸入字符到緩沖區(qū)輸入字符到緩沖區(qū) DS:DX = 緩沖區(qū)首址緩沖區(qū)首址 讀鍵盤狀態(tài)讀鍵盤狀態(tài) AL=0FFH有鍵入,有鍵入,AL=00無鍵入無鍵入 清除鍵盤緩沖區(qū),清除鍵盤緩沖區(qū), AL=鍵盤功能號鍵盤功能號 并調(diào)用一種鍵盤功能并調(diào)用一種鍵盤功能 (1,6,7,8或或A) 7.4.2 鍵盤輸入的中斷功能鍵盤輸入的中斷功能例例: : 輸入字符串到緩沖區(qū)輸入字符串到緩沖區(qū)STRINGSTRING MAXLEN DB 32 MAXLEN
37、 DB 32 ,0, 32 DUP(?) ACTLEN DB ? MAXLEN DB 32 ,33 DUP(?) STRING DB 32 DUP(?)CODE SEGMENTLEADX,MAXLENMOVAH,INT21HCODE ENDS END32568H61H70H70H79H0DHMAXLENACTLENSTRING7.4.3 屏幕顯示的中斷功能屏幕顯示的中斷功能 文本方式文本方式 ASCII字符字符 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0前景前景000 = 黑黑111 = 白白亮度亮度0 = 正常亮度正常亮度1 = 加強(qiáng)亮度加強(qiáng)亮度閃爍閃爍0 = 正常顯示正
38、常顯示1 = 閃爍顯示閃爍顯示背景背景000 = 黑黑111 = 白白單色屬性單色屬性 7 6 5 4 3 2 1 0 前景前景閃爍閃爍背景背景BL R G B I R G B16色屬性色屬性7.4.3 屏幕顯示的中斷功能屏幕顯示的中斷功能(1) BIOS顯示中斷顯示中斷 INT 10H 功能號功能號 AH=0,1, 2, 3, 5, 6, 7, 8, 9, 0AH, 0EH 13H (p.328)例:清除屏幕例:清除屏幕 movmovah, 6ah, 6; ; 屏幕初始化屏幕初始化movmoval, 0al, 0; ; 全屏空白全屏空白movmovbh, 7bh, 7; ; 卷入行屬性卷入行
39、屬性movmovch, 0ch, 0; ; 左上角行號左上角行號movmovcl, 0cl, 0; ; 左上角列號左上角列號movmovdh, 24dh, 24; ; 右下角行號右下角行號movmovdl, 79dl, 79; ; 右下角列號右下角列號intint10h10h; BIOS; BIOS調(diào)用調(diào)用7.4.3 屏幕顯示的中斷功能屏幕顯示的中斷功能例例: 在品紅背景下,顯示在品紅背景下,顯示5個淺綠色閃爍的星號。個淺綠色閃爍的星號。 MOVAH,09 ;光標(biāo)位置下顯示光標(biāo)位置下顯示 MOVAL,* ;顯示字符顯示字符 MOVBH,0 ;顯示頁顯示頁0 MOVBL,0DAH ; 1 101
40、 1010 (表表9.7) MOVCX,05 ;顯示次數(shù)顯示次數(shù) INT 10H ;BIOS調(diào)用調(diào)用7.4.3 屏幕顯示的中斷功能屏幕顯示的中斷功能例例: :在屏幕上以在屏幕上以紅底紅底蘭字蘭字顯示字符串:顯示字符串:“WORLD SCENERYWORLD SCENERY” STRING STRING DB DB WORLD SCENERYWORLD SCENERY ; ;定義在定義在ESES段段 LEN_TRLEN_TR DW DW 13 13 MOVMOV AL AL,3 3;80;8025, 1625, 16色文本方式色文本方式MOVMOV AH AH,0 0INTINT 10H 10H
41、MOVMOV BP BP,SEGSEG STRING STRINGMOVMOV ESES,BPBP ; ;串地址串地址ES:BPES:BPMOVMOV BPBP,OFFSET STRING OFFSET STRING MOVMOV CX CX,LEN_STR LEN_STR ; ;串長度串長度 MOVMOV DX DX,0 0 ; ;起始行列起始行列MOVMOV BX BX,0041H0041H;0;0100100 00010001(屬性)(屬性)MOVMOV AL AL,1 1; ;子功能子功能MOVMOV AH AH,13H13H; ;顯示字符串顯示字符串INTINT 10H 10H7.4
42、.3 屏幕顯示的中斷功能屏幕顯示的中斷功能(2) DOS顯示功能調(diào)用中斷顯示功能調(diào)用中斷 AHAH 功功 能能 調(diào)調(diào) 用用 參參 數(shù)數(shù) 2 2 顯示一個字符顯示一個字符( (檢驗檢驗Ctrl-Break) DL = Ctrl-Break) DL = 字符字符 光標(biāo)跟隨字符移動光標(biāo)跟隨字符移動 6 6 顯示一個字符顯示一個字符( (不檢驗不檢驗Ctrl-Break) DL = Ctrl-Break) DL = 字符字符 光標(biāo)跟隨字符移動光標(biāo)跟隨字符移動 9 9 顯示字符串顯示字符串 DS:DX=DS:DX=串地址串地址 , 光標(biāo)跟隨串移動光標(biāo)跟隨串移動7.4.3 屏幕顯示的中斷功能屏幕顯示的中斷
43、功能例:顯示字符串例:顯示字符串 MESSAGE DB The sort operation is finished.,13,10,$ 7.4.3 屏幕顯示的中斷功能屏幕顯示的中斷功能例例: : 輸入字符串到緩沖區(qū)輸入字符串到緩沖區(qū)STRINGSTRING MAXLEN DB 32 MAXLEN DB 32 ,0, 32 DUP(?) ACTLEN DB ? MAXLEN DB 32 ,33 DUP(?) STRING DB 32 DUP(?)CODE SEGMENTLEADX,MAXLENMOVAH,INT21HCODE ENDS END32568H61H70H70H79H0DHMAXLENACTLENSTRING7.4.4 打印輸出的中斷功能打印輸出的中斷功能INTAH功功 能能調(diào)用參數(shù)調(diào)用參數(shù)返回參數(shù)返回參數(shù) 打印一個字符打印一個字符 DL = 字符字符 17H0 打印
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 備戰(zhàn)2025年高考政治易混易錯各個擊破專題02生產(chǎn)勞動與經(jīng)營含解析
- 跨境投資中的財務(wù)管理與決策支持
- 財務(wù)風(fēng)險管理的國際視角與實踐
- 浙江國企招聘2024衢州常山縣農(nóng)村投資集團(tuán)有限公司招錄工作人員10人筆試參考題庫附帶答案詳解
- 足浴店會員管理與精準(zhǔn)營銷策略分析
- 質(zhì)量管理與企業(yè)品牌建設(shè)的關(guān)聯(lián)
- 江西2025年01月江西省樟樹市市直單位2025年公開選調(diào)30名工作人員筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 北京教委規(guī)定中小學(xué)生須至少掌握兩項體育技能
- 土方開挖工程合同范本
- 跨領(lǐng)域的體育安全技術(shù)推廣
- 《化工生產(chǎn)技術(shù)》配套教學(xué)課件
- 液壓與氣壓傳動技術(shù)全套課件
- GB∕T 17587.1-2017 滾珠絲杠副 第1部分:術(shù)語和符號
- 中國傳媒大學(xué)《紀(jì)錄片創(chuàng)作教程》課件
- 蛋白電泳在腎臟疾病中的實際臨床應(yīng)用
- T∕CCCMHPIE 1.3-2016 植物提取物 橙皮苷
- 毫火針療法PPT課件
- 三年級部編版語文下冊第二單元日積月累
- 前輪轂止口不合格8D報告
- 蝴蝶蘭溫室工廠化栽培管理技術(shù)
- 銀行對賬單(共9頁)
評論
0/150
提交評論