You are on page 1of 2

Ngôn ngữ ASM là một ngôn ngữ cấp thấp, nó tác động đến hệ thống, vì vậy chủ yếu

sử dụng các lệnh


ngắt của DOS để điều khiển. Các ngắt của DOS rất nhiều cần phải có một thời gian dài để tìm hiểu,
chỉ riêng có ngắt 21h thui thì cũng đã có rất nhiều hàm rùi, thật là phức tạp, dưới đây là một số hàm
thông dụng của ngắt 21h được sử dụng ở bài "VIẾT MỘT VIRUS GHI ĐÈ LÊN FILE *.COM BẰNG
ASM":

Hàm 4Eh: Hàm tìm file đầu tiên

In:
AH 4Eh
DS:DX Chuỗi chỉ định file cần tìm kiếm
CX Thuộc tính của file
CX = 0 => một file bình thường
CX = 3 => readonly, hidden, system
CX = 8 => chỉ tìm trong thư mục gốc
Out:
Nếu lỗi thì cờ Carry (CF) được bật
Nếu không lỗi thì trả về AX
AX Trả về DTA là thông tin file được tìm thấy bắt đầu tại 80h (thường thì cần lấy tên file được bắt đầu
tại offset 1eh của DTA vì vậy để chỉ đến tên file thì ta có được địa chỉ: 80h+1eh = 9eh)

Ví dụ:
MOV AH,4Eh
XOR CX,CX ;sét CX = 0
MOV DX,offset "*.COM"
int 21h

Hàm 4Fh: Hàm tìm file tiếp theo

In:
AH 4Fh
Out:
Nếu lỗi thì cờ Carry (CF) được bật
Nếu không lỗi thì trả về AX
AX chứa DTA

Hàm 3Dh: Hàm mở file

In:
AH 3Dh
AL Chế độ mở file (00 = readonly, 01 = writeonly, 02 = Read and Write)
DS:DX Địa chỉ của file cần mở

Hàm 3Eh: Hàm đóng file

In:
AH 3Eh
BX Chứa file cần đóng (đã được mở ở hàm 3Dh)

Hàm 40h: Hàm ghi file

In:
AH 40h
BX chứa file cần ghi
CX chứa số byte cần ghi
DX Chứa địa chỉ nội dung file ghi

Hàm 09h: Hàm hiển thị chuỗi


In:
AH 09h
DS:DX chứa chuỗi hiển thị, cuối chuỗi phải có '$' để kết thúc.

Coi phần ví dụ minh họa trong bài viết "VIẾT MỘT VIRUS GHI ĐÈ LÊN FILE *.COM BẰNG ASM"

You might also like