You are on page 1of 5

MT S CHC NNG CA NGT 21H Phn ny trnh by cc hm thng dng ca ngt 21h.

l cc hm thao tc vo/ra i vi k t, chui k t, file,th mc, kt thc chng trnh v tr li quyn iu khin cho H iu hnh DOS. Hm 01: c 1 k t (chin) t bnphm Input: AH=01 Output: AL= m ASCII ca k t AL=0 nu g vo phm chc nng. Hm 02: hin 1 k t ln mn hnh Input: AH=02 DL= m ASCII ca k t cn hin th Output: Hm 08: c 1 k t (khng hin) t bn phm Input: AH=08 Output: AL= m ASCII ca k t AL=0 nu g vo phm chc nng. Hm 09: hin xu k t kt thc bi $ ln mn hnh Input: AH = 09 DX = a ch offset ca xu k t Hm 0Ah: c xu k t t bn phm Input: AH = 09 DX = a ch offset ca vng m cha xu k t Output: DX = a ch offset ca xu k t Hm 39h: to th mc Input: AH = 39h DX = a ch offset ca tn th mc Output: Nu thnh cng, th mc c to ra . Nu khng thnh cng, CF=1 v AX= m li. Hm 3Ah: xa th mc Input: AH = 3Ah DX = a ch offset ca tn thmc Output: Nu thnh cng, th mc c xa . Nu khng thnh cng, CF=1 v AX=m li. Hm 3Ch:to file Input: AH = 3Ch DX = a ch offset ca tn file CX = thuc tnh file Output: Nu thnh cng, file c to ra, CF=0 v AX= th file (file handle) Nu khng thnh cng, CF=1 v AX= m li. Thuc tnh file c nhngha nh sau: 00h: file bnhthng (plain old file) 01h: file ch c (Read Only) 02h: file n (Hidden from searches) 04h: file h thng (system) 08h: thuc tnh cho nhn a. 10h: thuc tnh cho th mc con. Hm 3Dh:m file Input: AH = 3Dh AL = mode Output:Nu thnh cng, file c to ra, CF=0 v AX= th file (file handle) Nu khng thnh cng, CF=1 v AX= m li. Hm 3Eh: ng file Input: AH = 3Eh BX = th file Output:Nu thnh cng, file c ng li v CF=0 Nu khng thnh cng, CF=1 v AX= m li. Hm 3Fh: c t file Input: AH = 3Fh DS: DX = ach offset ca vng m CX = s byte cn c BX = th file Output:Nu thnh cng, CF=0 v AX= s byte c c Nu khng thnh cng, CF=1 v AX= m li. Hm 40h: ghi vo file Input: AH = 40h DS: DX = ach offset ca vng m CX = s byte cn ghi BX = th file Output:Nu thnh cng, file c ghi v CF=0. Nu khng thnh cng, CF=1 v AX= m li. Hm 41h: xa file Input: AH = 41h DX = a ch offset ca tn file Output:Nu thnh cng, file bxa Nu khng thnh cng, CF=1 v AX=m li. Hm 4Ch: kt thc chng trnh

Input: AH = 4Ch Output: Kt thc chng trnh, tr li quyn iu khin cho h iu hnh. CC CHNG TRNH NGT Ngt l mt c ch yu cu CPU tm dng cng vic (task) ang thc hin thc hin 1 cng vic khc. Ni c th hn, ngt yu cu CPU tm dng chng trnhang thc hin thc hin mt chng trnh con phc v ngt. Ngi ta tm chia ngt ra lm hai loi: ngt cng v ngt mm. Cc ngt mmc kch hot bng lnh INT n trong n l s hiu ngt di dng mt s hexa. Ngt cng khc vi ngt mm ch khng c kch hot bng mt lnh INT n trong chng trnh m c kch hot bng cc tc ng ca cc tn hiu linh kin in t nh bn phm, a,.. Phn ny gii thiu v cc ngt v cc dch v mc BIOS v mc h iu hnh DOS v cch vit chng trnh thng tr v chng trnh con ngt. ng dng cc ngt ca BIOS & DOS My tnh c 256 ngt c nh s hiu t 00hn FFh. Trong cc ngt c s hiu t 00h n 1Fh l cc ngt ca BIOS, cn cc ngt cn li t 20h n FFh l cc ngt ca DOS. Di y ta s tmhiu cc ngt theo tng nhm ngt. a. Cc ngt ca BIOS & DOS

b. Cch hot ng khi mt ngt c kch hot Khi c mt yu cu ngt s hiu N n chn CPU v nu yu cu ngt ny c CPU p ng Khi CPU s thc hin cc cng vic sau: 1. Ct ni dung ca thanh ghi c (FR) vo nh ca ngn xp. (Bng vic t ng thc hin cu lnh PUSHF). 2.Cm cc ngt khc tc ng vo CPU CPU chy ch bnh thng. t cc c IF=0 v TF =0 bng cch thc hin cc lnh: CLI v CLT. 3. Ct a ch on (segment) ca chng trnh gi chng trnh ngt vo ngn xp bng lnh PUSH CS. 4. Ct a ch lch (offset) ca lnh k tip ca chng trnh gi chng trnh ngt vo ngnxp PUSH IP. 5. Ly a ch mi ca chng trnh con phc v ngt s hiu N trong bng vector ngt bng cch ly a ch offset v segment ca ngt N t bng vector ngt. IP=[N*4] CS=[N*4+2] 6. Khi gt lnh cui cng ca chng trnh con phc ngt (lnh IRET). B vi x l s quay li chng trnh gi ngt ti a ch tr v v khi phc cc gi tr ca cc thanh ghi t ngn xp bng cc lnh sau: POP IP POP CS POPF Gii thch cho mc 5: Ta bit rng cc a ch ca chng trnh con phc v ngt c lu vo trong mt bng c kch thc 1K t a ch 0000h n 03FFh ca b nh RAM. Bng vector ngt lu a ch ca 256 chng trnh con phc v ngt v mi a ch chim 4 byte trong 2 byte dnh cho a ch on (segment) v 2 byte dnh choa ch lch (offset). Nh bng trn, ichca chng trnh con phcvngt 0 chim byte 0-3, ngt 1 chim byte 4-7 v chng trnh con phc v ngt th N s c a ch 4*N. Trong 2 byte [4*N] v [4*N+1] la ch lch (offset) v 2 byte [4*N+2] v [4*N+3] l a ch on (segment). c. Cc ngt ca BIOS v DOS phc v bn phm - Ngt 16h ca BIOS Hm 0h: ngha: Ch c mt k t t bn phm (nu c k t trong vngm bn phm th s nhn c k t , cn khng th ch n khi bn phm c nhn. u vo: AH=0 Int 16h u ra: Nu AL<>0 th AL cha m ASCII ca k t AH cha m SCAN ca k t Nu AL= 0 th: AL cha m bn phm m rng Hm 1h: ngha: Kim tra xem trong vng m ca bn phm c k t hay khng (khng i n khi k t c trong vng m m tr ngay iu khin li cho chng trnh). u vo: AH=01 Int 16h u ra: Nu ZF=1 khng c k t trong vng m bn phm Nu ZF=0 th: Nu AL<>0 th: AL cha m ASCII ca k t AH cha m SCAN ca k t Nu AL= 0 th: AL cha m bn phm m rng Hm 02h: ngha: Kim tra trng thi mt s phm c bit ca bn phm (Insert, Caplock, NumLock, Scroll Lock). u vo:AH=02 Int 16h u ra: AL cha kt qu cc trng thi hay c bn phm , c ngha nh sau:

V d: Vit chng trnh thit lp mt khu l k t A thi khi ng my Code: .MODEL small .STACK 100h .DATA matkhau db P,$ Saimatkhau db Sai mat khau ,$ Nhapmatkhau db Nhap mat khau: ,$ xuongdong db 13,10,$ .CODE

Start: [Only registered and activated users can see links] Mov DS,AX Lap: Mov AH,9 Mov DX, offset Nhapmatkhau Int 21h ; in li mi nhpxu Mov AH,0; Nhap ki tu Int 16h Cmp AL,matkhau ; co phai Enter khong? JZ Done ; Neu l Enter, dung lai Mov AH,9 Mov DX, offset Saimatkhau Int 21h ;xuong dong va ve dau dong Jmp Lap Done: Mov AH,4Ch ; Tro ve DOS Int 21h End Start Sau khi dch v hp dch chng trnh trntat tn chng trnh vo cui file autoexec.bat. Khi my khi ng th chng trnh trn s c t ng thc hin. -Mt s hm phc v bn phm ca ngt 21h ca DOS Hm 06h: ngha:c mt k t t bn phm hoc a k t ra mn hnh. Nu c vo mt k t th u vo:AH=6 Int 21 DL=0FFh (nu DL<>0FFh s a ra mn hnh) u ra: Nu ZF=0 th c k t trong vng m bn phm v: AL cha m ASCII ca k t AH cha m SCAN ca k t Nu ZF= 1 th Vng m bn phm rng Hm 07h: ngha:Ch c mt k t t bn phm u vo: AH=07 Int 21h u ra:AL cha m ASCII ca k t (AL=0 s khng c k t no) AH cha m SCAN ca k t Hm 0Bh: ngha:c trng thi b m bn phm u vo: AH=0B Int 21h u ra:AL =0FFh c k t trong b m AL =00h khng c k t trong b m Hm 0Ch: ngha:xa b m bn phm, sau gi hm vo k t c s chc nng t trong AL u vo:AL =s hm ca k t. d. Ngt ca BIOS phc v mn hnh ngt 10h Mn hnh lm vic mt trong hai ch : vn bn(text) v ha (graphics). ch vn bn, cc k t c trnh by trong cc ma trn im 5x7 vi 25 dng v 80 ct. Mn hnh l hnh nh ca video RAM. Do vy ch text mt trang mn hnh cn ti thiu l 25 dng x 80 ct x 2 (1 byte m ASCII v 1 byte thuc tnh k t) =4000 bytes. Byte thuc tnhc dng nh sau

Di y l mt s gi tr thng dng ca thuc tnh:

Di y lit k mt s chc nng caBIOS v ch vn bnca mn hnh. Hm 00h: ngha:t ch cho mn hnh u vo: AH=00 AL = ch mn hnh Int 10h Trong ch mn hnh = 0: 40 x 25 trng en. = 1: 40 x 25 16 mu.. = 2: 80 x 25trng en (card mu). = 3: 80 x 2516 mu. = 7: 80 x 25trng en (card mono). Hm 01h: ngha:t kch thc con tr u vo: AH=01 CH = ta hng CL = ta ct Int 10h Hm 02h: ngha:tv tr con tr

u vo: AH=02 BH = s trang mn hnh DH=s dng DL = s ct Int 10h Hm 03h: ngha:c v tr con tr u vo: AH=03 BH = s trang mn hnh Int 10h ura: DH=s dng DL = s ct CH= ta hng ca con tr CL = ta ct ca con tr Hm 05h: ngha: t trang mn hnh hot ng u vo: AH=05 BL = s trang mn hnh Int 10h Hm 06h: ngha:Cun mn hnh ln (dng xc lp vng ca s vn bn hnh ch nht) u vo: AH=06 AL=s trang trng ho dng cun (AL=0 trng ton mn hnh) (CH,CL) = ta trn bn tri mn hnh (DH,DL) = ta di bn phi mn hnh BH= thuc tnh ca vng trng ca mn hnh. Int 10h Hm 07h: ngha: Cun mn hnh xung u vo: AH=07 AL=s trang trng hoc dng cun (AL=0 trng ton mn hnh) (CH,CL) = ta trn bn tri mn hnh (DH,DL) = ta di bn phi mn hnh BH= thuc tnh ca vng trng ca mn hnh. Int 10h Hm 08h: ngha:c k t v thuc tnh ca n ti v tr con tr u vo: AH=08 BH=s trang Int 10h u ra:AL =m ASCII ca k t BL= thuc tnh ca k t. Hm 09h: ngha:Vit cc k t v thuc tnh vo v tr con tr ang ng (v tr con tr khng i).a k t ra, t mu cho k t. u vo: AH=09 BH= s trang mn hnh CX = s ln k t c a ra mn hnh AL = m ASCII ca k tBL= thuc tnh ca k t. Int 10h Hm 0Ah: ngha:Vit cc k t khng c thuc tnh vo v tr con tr ang ng (v tr con tr chuyn sang phi). Khng t mu cho k t. u vo: AH=0Ah BH=s trang mn hnh CX = s ln k t c a ra mn hnh AL =m ASCII ca k t Int 10h Hm 0Eh: ngha:Vit cc k t theo kiu teletype ra mn hnh (v tr con tr chuyn sang phi). u vo: AH=0Eh BH=s trang mn hnh BL = mu ca k t AL =m ASCII ca k t Int 10h Hm 0Fh: ngha:Ly kiu mn hnh hin hnh. u vo: AH=0Fh Int 10h u ra: AH=s ct ca mn hnh BH = s trang AL =ch hin thi ca mn hnh Hm 13h: ngha:Hin th mt dy k t. u vo: AH=13h BH=s trang mn hnh DL= s ct bt uhin th DH= s dng bt u hin th

ES:BP =ach u ca vng nh cha dy k t cn hin th CX= di ca dy kt. Int 10h ch ha c thm mt s hm sau: Hm 0h: ngha: Chn kiu mn hnh. u vo: AH=00h AL = 0Dh: 320 x 200, 16 mu = 0Eh: 640 x 200 16 mu.. = 0Fh: 640 x 350,trng en. = 10h: 640 x 35016 mu. = 11h: 640 x 4802 mu. = 12h: 640 x 48016 mu. = 13h: 320 x 200256 mu. (ch vi card VGA) Int 10h Hm 0Bh: ngha: Chn b mu. u vo: AH=0Bh BH=0: chn mu cho nn BL=0-15 BL=1: chn b mu cho im. Int 10h Hm 0Ch: ngha: Hin th mt im. u vo: AH=0Ch DX=s hng CX=s ct AL = s mu ca im.BH=s trang mn hnh Int 10h Hm 0Dh: ngha:c thng tin ca mt im. u vo: AH=0Ch DX=s hng CX=s ct BH=s trang mn hnh Int 10h u ra:AL = s mu ca im

You might also like