Mt s chc nng qun lý a
Chửụng 7: Qun lyự vaứ xửỷ lyự ủúa, thử muùc vaứ taọp tin
INT Vi ngt 21h
* S hiu hm: 0Dh Reset a
Trong mt iu kin lm vic, nu trong quỏ trỡnh x lý cỏc tp tin/chng
trỡnh b l Reset li a xúa vựng m ca tp tin
Thao tỏc
Thanh ghi
Giỏ tr iu kin
Vo
AH
0Dh
Vớ d:
MOV AH,0Dh
INT 21h
Chửụng 7: Qun lyự vaứ xửỷ lyự ủúa, thử muùc vaứ taọp tin
INT Vi ngt 21h
* S hiu hm: 0Eh Chn a mc nh
- Chn mt a lm a mc nh hin hnh
Thao tỏc
Thanh ghi
Giỏ tr iu kin
Vo
AH
0Eh
DL
<S>
S
a:
0= A, 1= B,2= C,
Ra
AL
<S>
S
tt c cỏc loi a
Vớ d: Thit lp C lm a mc nh hin hnh
MOV AH,0Eh
MOV DL,02
INT 21h
Mt s chc nng qun lý a
Chửụng 7: Qun lyự vaứ xửỷ lyự ủúa, thử muùc vaứ taọp tin
INT Vi ngt 21h
* S hiu hm: 19h Ly a mc nh hin hnh
- Xỏc nh a mc nh hin hnh
Thao tỏc
Thanh ghi
Giỏ tr iu kin
Vo
AH
19h
Ra
AL
<S>
S
a:
0= a A, 1=a B, 2=a C,
Vớ d: Xỏc nh a mc nh hin hnh
MOV AH,19h
INT 21h
CMP AL,2
JE O_DIA_C
Mt s chc nng qun lý a
Chửụng 7: Qun lyự vaứ xửỷ lyự ủúa, thử muùc vaứ taọp tin
INT Vi ngt 21h
* S hiu hm: 1Bh Ly thụng tin a mc nh hin hnh
Thao tỏc
Thanh ghi
Giỏ tr iu kin
Vo
AH
1Bh
Ra
AL
S
sector/cluster
BX
DS:BX
Tr
n byte u tiờn trong FAT
CX
Kớch thc sector
vt lý
DX
S
cluster trờn a
AL*CX*DX
Dung lng
ca a
Vớ d: Xỏc nh thụng tin a mc nh hin hnh
MOV AH,1Bh
INT 21h
Mt s chc nng qun lý a
Chửụng 7: Qun lyự vaứ xửỷ lyự ủúa, thử muùc vaứ taọp tin
INT Vi ngt 21h
* S hiu hm: 1Ch Ly thụng tin a bt k c ch nh
Thao tỏc
Thanh ghi
Giỏ tr iu kin
Vo
AH
1Ch
DL
<S>
S
ca a (0,1, )
Ra
AL
S
sector/cluster
BX
DS:BX
Tr
n byte u tiờn trong FAT
CX
Kớch thc sector
vt lý
DX
S
cluster trờn a
AL*CX*DX
Dung lng
ca a
Vớ d: Xỏc nh thụng tin a D
MOV AH,1Ch
MOV DL,3
INT 21h
Mt s chc nng qun lý a
Chửụng 7: Qun lyự vaứ xửỷ lyự ủúa, thử muùc vaứ taọp tin
INT Vi ngt 21h
* S hiu hm: 36h Ly thụng tin khụng gian trng ca a.
Thao tỏc
Thanh ghi
Giỏ tr iu kin
Vo
AH
36h
DL
<S>
S
ca a:
0= mc nh, 1= A, 2= B,
Ra
AX
S
sector/cluster
BX
S
cluster cũn giỏ tr
CX
S
byte/sector
DX
S
cluster trờn a
AL*CX*DX
Dung lng
ca a
Vớ d: Xỏc nh thụng tin khụng gian trng a mc nh
MOV AH,36h
MOV DL,0
INT 21h
Mt s chc nng qun lý a
Chửụng 7: Qun lyự vaứ xửỷ lyự ủúa, thử muùc vaứ taọp tin
INT Vi ngt 21h
* S hiu hm: 39h To th mc con.
Thao tỏc
Thanh ghi
Giỏ tr iu kin
Vo
AH
39h
DX
a
ch ca chui ASCII
Ra
AX
Mó
li nu cú (03 hoc 05)
Vớ d: To th mc mi ASM trong a C
.DATA
ASCStr DB C:\ASM$
.CODE
MOV AH,39h
LEA DX,ASCStr
INT 21h
Mt s chc nng qun lý th mc
Chửụng 7: Qun lyự vaứ xửỷ lyự ủúa, thử muùc vaứ taọp tin
INT Vi ngt 21h
* S hiu hm: 47h Ly th mc hin hnh.
Thao tỏc
Thanh ghi
Giỏ tr iu kin
Vo
AH
47h
DL
<S>
S
a (0:Mc nh,1=A,2=B, )
SI
a
ch khụng gian vựng m.
Ra
SI
Vựng
m cha tờn th mc (khụng
cú tờn a)
AX
0Fh nu
phỏt sinh li
Vớ d: To th mc mi ASM trong a C
Buffer DB 64 DUP(20h)
MOV AH,47h
MOV DL,<s a>
LEA SI,Buffer
INT 21h
Mt s chc nng qun lý th mc
Chửụng 7: Qun lyự vaứ xửỷ lyự ủúa, thử muùc vaứ taọp tin
Yờu cu: Ly thụng tin ng dn th mc hin hnh
.MODEL SMALL
.DATA
DUONGDAN DB 64 DUP(20h)
.CODE
MOV AX,@DATA
MOV DS,AX
CALL LAY_O_DIA
CALL LAY_THU_MUC
MOV AH,4Ch
INT 21h
END
Vớ d: Minh ha qun lý a v th mc
Chửụng 7: Qun lyự vaứ xửỷ lyự ủúa, thử muùc vaứ taọp tin
LAY_O_DIA PROC
MOV AH,19h ;Lay o mac dinh, tra ve AL
INT 21h
ADD AL,41h ;Lay ma ASCII cua ky tu
MOV AH,02h
MOV DL,AL
INT 21h
MOV DL,':'
INT 21h
MOV DL,'\'
INT 21h
RET
LAY_O_DIA ENDP
Yờu cu: Ly thụng tin ng dn th mc hin hnh
Vớ d: Minh ha qun lý a v th mc
Chửụng 7: Qun lyự vaứ xửỷ lyự ủúa, thử muùc vaứ taọp tin
LAY_THU_MUC PROC
MOV AH,47h ;Yờu cu ly ng dn
MOV DL,0
LEA SI,DUONGDAN ;np vo vựng nh ti SI
INT 21h
INDUONGDAN:
CMP BYTE PTR[SI],00h ;Kim tra tng byte
JE QUAYVE
MOV AL,[SI] ;Np byte vo AL
MOV DL,AL
MOV AH,02h
INT 21h
INC SI
JMP INDUONGDAN
QUAYVE:
RET
LAY_THU_MUC ENDP
Yờu cu: Ly thụng tin ng dn th mc hin hnh
Vớ d: Minh ha qun lý a v th mc
Demo
Chửụng 7: Qun lyự vaứ xửỷ lyự ủúa, thử muùc vaứ taọp tin
INT Vi ngt 21h
* S hiu hm: 41h Xúa tp tin.
Thao tỏc
Thanh ghi
Giỏ tr iu kin
Vo
AH
41h
DX
a
ch ca chui
ASCII cha ng
dn n tp tin
Ra
AX
Mó
li nu cú (02,03 hoc 05)
Vớ d: Xúa tp tin ABC.txt trong D
.DATA
ASCStr DB 'D:\ABC.txt,00h
.CODE
MOV AH,41h
LEA DX,ASCStr
INT 21h
Mt s chc nng qun lý tp tin
Chửụng 7: Qun lyự vaứ xửỷ lyự ủúa, thử muùc vaứ taọp tin
INT Vi ngt 21h
* S hiu hm: 56h i tờn tp tin.
Thao tỏc
Thanh ghi
Giỏ tr iu kin
Vo
AH
56h
DS:DX
DS:DX tr n u tờn c.
ES:DI
ES:DI tr n u tờn mi.
Ra
AX
Mó
li nu cú (02,03 hoc 05)
Vớ d: i tờn tp tin ABC.txt trong D thnh DEF.txt
.DATA
TapTinA DB 'D:\ABC.txt,00h
TapTinB DB 'D:\DEF.txt,00h
.CODE
MOV AH,56h
LEA DX,TapTinA
LEA DI,TapTinB
INT 21h
Mt s chc nng qun lý tp tin
Chửụng 7: Qun lyự vaứ xửỷ lyự ủúa, thử muùc vaứ taọp tin
INT Vi ngt 21h
* S hiu hm: 43h Ly hoc thit lp thuc tớnh tp tin.
Thao tỏc
Thanh ghi
Giỏ tr iu kin
Vo
AH
43h
Ly
AL
0
DS:DX
DS:DX tr n tờn tp tin
Thit
lp
AL
1
CX
<S>
Thu
c tớnh mi
ES:DI
ES:DI tr n u tờn mi
Thanh ghi CX vi cỏc bit thuc tớnh:
Bit Thuc tớnh Bit Thuc tớnh
0 Ch c 3 Nhón a
1 n 4 Th mc con
2 H thng 5 Archive
Mt s chc nng qun lý tp tin
Chửụng 7: Qun lyự vaứ xửỷ lyự ủúa, thử muùc vaứ taọp tin
INT Vi ngt 21h
* S hiu hm: 43h Ly hoc thit lp thuc tớnh tp tin.
Vớ d: i thuc tớnh tp tin Vidu.txt trong a C cú thuc tớnh n.
.DATA
TAPTIN DB C:\Vidu.txt,0
.CODE
MOV AL,1
LEA DX,TAPTIN
MOV CX,2 ;Thuc tớnh ch c
MOV AK,43h
INT 21h
Mt s chc nng qun lý tp tin
Chửụng 7: Qun lyự vaứ xửỷ lyự ủúa, thử muùc vaứ taọp tin
INT Vi ngt 21h
* S hiu hm: 3Ch To tp tin mi.
Thao tỏc
Thanh ghi
Giỏ tr iu kin
Vo
AH
3Ch
Th
tp tin lu trong AX
DS:DX
DS:DX tr n tờn tp tin
CX
<S>
Thu
c tớnh tp tin: 0: bỡnh thng,
1: ch c, 2: n, 4: tp tin h thng
Vớ d: To ra mt tp tin mi trong a C cú tờn l Vidu.txt. v cú thuc
tớnh ch c.
.DATA
TAPTIN DB C:\Vidu.txt,0
.CODE
MOV CX,1
LEA DX,TAPTIN
MOV AH,3Ch
INT 21h
Mt s chc nng qun lý tp tin
Chửụng 7: Qun lyự vaứ xửỷ lyự ủúa, thử muùc vaứ taọp tin
INT Vi ngt 21h
* S hiu hm: 3Dh M mt tp tin ó cú.
Thao tỏc
Thanh ghi
Giỏ tr iu kin
Vo
AH
3Dh
Th
tp tin lu trong AX
DS:DX
DS:DX tr n tờn tp tin
AL
<S>
Kiu
truy cp: 0 ch c,1 ch ghi, 2
c v ghi.
Vớ d: M tp tin trong a C cú tờn l Vidu.txt:
.DATA
TAPTIN DB C:\Vidu.txt,0
.CODE
LEA DX, TAPTIN
MOV AH,3Dh
MOV AL, 0
INT 21h
Mt s chc nng qun lý tp tin
Chửụng 7: Qun lyự vaứ xửỷ lyự ủúa, thử muùc vaứ taọp tin
INT Vi ngt 21h
* S hiu hm: 3Eh úng mt tp tin ang m.
Thao tỏc
Thanh ghi
Giỏ tr iu kin
Vo
AH
3Eh
Th
tp tin lu trong AX
BX
Cha
th tp tin
Vớ d: úng tp tin ang m:
.CODE
MOV BX, Th tp tin
MOV AH,3Eh
INT 21h
Mt s chc nng qun lý tp tin
Chửụng 7: Qun lyự vaứ xửỷ lyự ủúa, thử muùc vaứ taọp tin
INT Vi ngt 21h
* S hiu hm: 3Fh c ni dung mt tp tin ang m.
Thao tỏc
Thanh ghi
Giỏ tr iu kin
Vo
AH
3Fh
Th
tp tin lu trong AX
DS:DX
DS:DX tr n vựng b nh m d
liu s chuyn ti
BX
Cha
th tp tin
CX
S
byte cn c vo
Ra
AX
Cha
s byte va c c
Mt s chc nng qun lý tp tin
Chửụng 7: Qun lyự vaứ xửỷ lyự ủúa, thử muùc vaứ taọp tin
INT Vi ngt 21h
Vớ d: c tp tin Vidu.txt trong a C.
.DATA
Taptin DB C:\Vidu.txt,0
s DB 101 DUP("$")
.CODE
MOV BX,AX ;chuyn th tp tin vo BX
MOV CX,100 ;c 100 byte
LEA DX,s ;Lu ni dung cn c vo s
MOV AH,3Fh
INT 21h
Mt s chc nng qun lý tp tin
* S hiu hm: 3Fh c ni dung mt tp tin ang m.
Chửụng 7: Qun lyự vaứ xửỷ lyự ủúa, thử muùc vaứ taọp tin
INT Vi ngt 21h
* S hiu hm: 40h c ni dung mt tp tin ang m.
Thao tỏc
Thanh ghi
Giỏ tr iu kin
Vo
AH
40h
Th
tp tin lu trong AX
DS:DX
DS:DX tr n vựng b nh m d
liu
lu
BX
Cha
th tp tin
CX
S
byte cn ghi vo
Mt s chc nng qun lý tp tin
Chửụng 7: Qun lyự vaứ xửỷ lyự ủúa, thử muùc vaứ taọp tin
INT Vi ngt 21h
Vớ d: Ghi chui "Khoa CNTT DH Quang Trung" vo tp tin Vidu.txt
.DATA
Taptin DB C:\Vidu.txt,0
s db 'Khoa CNTT DH Quang Trung$'
.CODE
MOV BX,AX ;a th tp tin vo trong thanh ghi BX
LEA DX,s ;DX tr n vựng d liu b nh
MOV CX,24 ;Ghi 24 byte vo tp tin Vidu.txt
MOV AH,40h
INT 21h
Mt s chc nng qun lý tp tin
* S hiu hm: 40h c ni dung mt tp tin ang m.