Tải bản đầy đủ (.docx) (4 trang)

ngatDosbiosdoc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (76.77 KB, 4 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

Các ngắt của BIOS


<b>Số hiệu</b>


<b>ngắt</b> <b>Hàm</b> <b>Công dơng</b> <b>Tham sè vµo</b> <b>Tham sè ra</b>


10h 0 Chọn chế độ hiển thị<sub>cho màn hình.</sub> ah=0; al=chế độ<sub>(VGA, 16 mau>: al=3)</sub> Khơng
1


Thay đổi kích thớc con
trỏ, phải chọn dòng
quét bắt đầu và kết thúc
của con trỏ.


ah=1; 4 bit thÊp của
ch=dòng quét đầu; 4 bit


thấp của cl=dịng qt cuối Khơng
2 Dịch chuyển con trỏ (vị<sub>trí).</sub> ah=2; bh=số trang;<sub>dh=hàng; dl=cột</sub> Không
3 Xác định vị trí và kíchthớc hiện thời của con


trá. ah=3; bh=số trang;


ch=dòng quét đầu;
cl=dòng quét cuối;
dh=dòng; dl=cột


5 Chọn trang hiển thị. ah=5;<sub>dh=dòng; dl=cột</sub>al=số trang; Không


6 Cun mn hỡnh hay cas lờn một số dịng xác
định.



ah=6; al=sè dßng cuốn
(al=0 thì cuốn cả màn hình
hay cửa sổ); bh=thuộc tính
của các dòng trống;
(ch,cl)=(dòng,cột) góc trên
trái của cưa sỉ;
(dh,dl)=(dßng,cét) gãc dới
phải của cửa sổ


Không


7 Cun mn hỡnh hay cas xuống một số dịng
xác định.


ah=6; al=sè dßng cuốn
(al=0 thì cuốn cả màn hình
hay cửa sổ); bh=thuộc tính
của các dòng trống;
(ch,cl)=(dòng,cột) góc trên
trái của cưa sỉ;
(dh,dl)=(dßng,cét) gãc dới
phải của cửa sổ


Không


8 Đọc ký tự với thuộc tínhtại vÞ trÝ con trá (m·


ASCII). ah=8; bh=sè trang


ah=thuéc tÝnh; al=m·


ASCII cđa ký tù


9 HiƯn ký tù víi thuéc<sub>tÝnh tại vị trí con trỏ.</sub> ah=9; al=mà ASCII của kýtự; bh=sè trang; bl=thuéc


tÝnh; cx=sè lần viết ký tự Không
0ah Viết ký tự tại vị trÝ contrá, ký tù nhËn thc


tÝnh cđa ký tù viÕt tríc.


ah=0ah; al=m· ASCII cña
ký tù; bl=sè trang; cx=sè


lÇn viÕt ký tù Kh«ng
0bh ThiÕt lËp bảng màu,<sub>nền và viền.</sub>


0ch Vit im nh hoạ
0dh Đọc điểm ảnh đồ hoạ
0eh Viết ký tự trong chế độ<sub>telex</sub>


0fh Xác định chế độ màn<sub>hình</sub>
10h (hàm


con 10h) ThiÕt lËp thanh ghi mµu
10h (hµm


con 12h) ThiÕt lËp nhóm cácthanh ghi màu
10h (hàm


con 15h) Xỏc nh thanh ghi màu
10h (hàm



</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

13h
ghi/đọc


đĩa 2 Đọc sector


ah=2; al=số sector;
ch=track; cl=sector;
dh=head; dl=ổ đĩa (0-7f với
đĩa mềm, 80-ffh với đĩa
cứng); ES:BX=seg:off của
vùng đệm cha d liu c


<i>Thành công:</i>


CF=0; ah=0; al=s cung
c c


<i>Không thành công:</i>
CF=1; ah=mà lỗi


3 Ghi sector


ah=3; al=s sector;
ch=track; cl=sector;
dh=head; dl=ổ đĩa (0-7f với
đĩa mềm, 80-ffh với đĩa
cứng); ES:BX=seg:off ca
vựng m cha d liu ghi



<i>Thành công:</i>


CF=0; ah=0; al=s cung
c ghi


<i>Không thành công:</i>
CF=1; ah=mà lỗi
16h


Bàn phím 0 §äc ký tù tõ bµn phÝm ah=0; ah=scan code của phím;al=mà ASCII của ký tự


2 Lấy các cờ bàn phÝm ah=2;


al=các cờ (8); al7=1:
Phím insert đợc ấn;
al6=1: Phím Caps Lock
đợc ấn; al5=1: Phím
Num Lock đợc ấn;
al4=1: Phím Scrol Lock
đợc ấn; al3=1: Phím Alt
đợc ấn; al2=1; Phím Ctrl
đợc ấn; al1=1: Phím Shif
trái đợc ấn; al0=1: Phớm
Shif phi c n


10h Đọc ký tự tự bàn phÝm<sub>(lo¹i 101 phÝm)</sub> ah=10h ah=scan code cđa phÝm;<sub>al=m· ASCII cđa ký tù</sub>
17h


M¸y in 0 ViÕt ký tù ra m¸y in

Các ngắt của DOS




<b>Số hiệu</b>


<b>ngắt</b> <b>Hàm</b> <b>Công dụng</b> <b>Tham số vµo</b> <b>Tham sè ra</b>


21h 0 Kết thúc việc thi hành<sub>một chơng trình</sub> ah=0; CS=địa chỉ đoạn của<sub>đoạn mào đầu (PSP)</sub> Không


1


Vào một ký tự từ bàn
phím (đợi đọc 1 ký tự từ
thiết bị vào chuẩn (nếu
cha có), sau đó đa ký tự
tới thiết bị ra chuẩn và
đa mã ASCII của ký tự
vào al


ah=1 al=m· ASCII cđa ký tù


2


HiĨn thÞ lên màn hình
(đa ký tù cã m· ASCII
trong dl tíi thiÕt bÞ ra
chuÈn)


ah=2; dl=m· ASCII của ký


tự cần (đa ra) hiển thị Không
5 In ký tù (®a ký tù cã m·ASCII trong dl tíi thiết



bị in chuẩn)


ah=5; dl=mà ASCII của ký


tự cần (đa ra) in Không
9 Hiển thị chuỗi (đa chuỗiký tự tíi thiÕt bÞ ra


chuÈn)


ah=9; ds:dx=trá tíi chuỗi


ký tự kết thúc bằng $ Không


2ah Xỏc nh ngy tháng ah=2ah;


al=ngµy (0=chđ nhËt,
1=thø hai, , 6=thứ
bảy); cx=năm
(1980..2099); dh=tháng
(1..12); dl=ngày (1..31)
2bh Đặt ngày tháng


ah=2bh;


cx=năm(1980..2099);
dh=tháng (1..12);
dl=ngày (1..31)


al=00h nếu ngày hợp lệ;


al=ffh nếu ngày không
hợp lệ


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

dh=giây (0..59); dl=phần
trăm giây(0..99)


2dh Đặt thêi gian


ah=2dh; ch=giê (0..23);
cl=phót(0..59);


dh=gi©y (0..59); dl=phần
trăm giây(0..99)


al=00f nếu tgian hợp lệ;
al=ffh nếu thời gian
không hợp lệ


30h Xác định số phiên bản<sub>của DOS hiện hành</sub> ah=30h;


bx=0000h; cx=0000h;
al=sè chính của phiên
bản (trớc dấu chấm);
ah=số phụ của phiên bản
(sau dÊu chÊm)


31h


Kết thúc chơng trình và
ở lại thờng trú (kết thúc


chơng trình hiện tại và
dành ra một vùng nhớ
tính theo đơn vị 16
byte)


ah=31h; al=m· tr¶ l¹i;
dx=kÝch thíc bé nhí tÝnh


theo đơn vị 16 byte Khơng


33h Kiểm tra Ctrl-Break(thiết lập hoặc xác định
trạng thái Break)


ah=33h;


al=00h để xác định trạng
thái hiện tại của Ctrl-Break
al=01h để thiết lập trạng
thái hiện tại của Ctrl-Break
dl=00h để thiết lập trạng
thái OFF của Ctrl-Break
dl=01h để thiết lập trng
thỏi ON ca Ctrl-Break


dl=trạng thái hiƯn hµnh
(00h=OFF, 01h=ON)


35h Xác định vector ngắt(nhận địa chỉ của một


vector ng¾t) ah=35h; al=sè hiƯu ng¾t;



es:bx=con trỏ trỏ đến
ch-ơng trình phục vụ ngắt


36h Xác định dung lợng còn<sub>trống trên đĩa</sub> ah=36h;<sub>(0=default, 1=A, …);</sub>dl=ổ đĩa


bx=số free cluster;
dx=số cluster/đĩa;
cx=số byte/sector;
ax=số sector/cluster,
=ffffh nếu ổ đĩa không
hợp lệ


39h Tạo th mục con (MkDir) ah=39h; ds:dx=con trỏ trỏđến một chuỗi ASCIIZ


(đ-ờng dẫn-path) ax=mã lỗi nếu CF=1
3ah Xoá thu mục con<sub>(RmDir)</sub> ah=3ah; ds:dx=con trỏ trỏđến một chuỗi ASCIIZ


(đ-ờng dẫn-path) ax=mã lỗi nếu CF=1
3bh Thay đổi th mục hiện<sub>tại (ChDir)</sub> ah=3bh; ds:dx=con trỏ trỏđến một chuỗi ASCIIZ


(®-êng dÉn-path) ax=mà lỗi nếu CF=1
3ch


To lp mt tp (Creat)
Tạo ra một tệp mới
hoặc cắt bỏ tệp cũ để
có đọ dài bằng 0 để
chuẩn bị ghi mới.



ah=3ch; ds:dx=con trỏ trỏ
đến một chuỗi ASCIIZ
(đ-ờng dẫn-path); cx=thuc
tớnh ca tp


ax=mà lỗi nÕu CF=1,
=thỴ 16 bit nÕu CF=0


3dh Më mét tƯp cho tríc


ah=3dh; ds:dx=con trỏ trỏ
đến một chuỗi ASCIIZ
(đ-ờng dẫn-path); al=mã truy
nhp


ax=mà lỗi nếu CF=1,
=thẻ 16 bit nếu CF=0
3eh Đóng một thỴ tƯp cho<sub>tríc</sub> ah=3eh; bx=thẻ tệp đa lại<sub>bởi thao tác mở hay tạo tệp</sub> ax=mà lỗi nếu CF=1,<sub>không có nghĩa khi CF=0</sub>


3fh


Đọc từ một tệp hay từ
một thiết bị (chuyển
một số byte cho trớc từ
một tệp vào bộ đệm
cho trớc)


ah=3fh; bx=thẻ tệp;
ds:dx=địa chỉ bộ đệm;
cx=số byte đọc;



ax=số byte đọc đợc, =mã
lỗi nếu CF=1


40h Ghi vào một tệp hay
vào một thiết bị (chuyển
một số byte cho trớc từ
bộ đệm vào một tệp


ah=40h; bx=thẻ tệp;
ds:dx=địa chỉ bộ đệm (dữ
liệu để viết); cx=số byte đợc
viết;


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

cho tríc)
41h


Xố một tệp trong một
th mục đã định (Unlink)
– Xoá một danh mục
t-ơng ứng với tên tệp
trong th mục


ah=41h; ds:dx=địa ch ca


một ASCIIZ ax=mà lỗi nÕu CF=1,kh«ng cãnghÜa nÕu CF=0


42h


Di chuyển con trỏ


ghi/đọc tệp (LSeek) –
theo phơng thc nh
trc


ah=42h; ds:dx=khoảng
cách (offset) di chuyển theo
byte; al=ph¬ng thøc di
chun (0, 1, 2); bx=thẻ tệp


ax=mà lỗi nÕu CF=1;
dx:ax=vÞ trÝ con trá míi
nÕu CF=0


47h


Xác định th mục hiện
thời. Đa đờng dẫn đầy
đủ (bắt đầu từ th mục
gốc) của th mục hiện tại
cho ổ đĩa cho trớc vào
vùng nhớ có địa chỉ
ds:si


ah=47h; ds:si=con trỏ chỉ
tới vùng nhớ 64 byte của
ngời sử dụng; dl=số hiệu ổ
đĩa (0=default, 1=A, . . .)


ds:si tên đờng dẫn đầy đủ
từ th mục gốc nếu CF=0;


ax=mã lỗi nếu CF=1


48h Cấp phát bộ nhớ theosố đơn vị 16 byte
(paragraph) yêu cầu


ah=48h; bx=số đơn vị 16
byte nhớ yêu cầu;


ax:0=địa chỉ khi nh
cp phỏt;


ax=mà lỗi nếu CF=1;
ax không có nghĩa gì nếu
CF=0


49h
4ch


Kết thúc chơng trình
(exit) hiện tại và trả điều
khiển cho chơng trình
gọi nó.


ah=4ch; al=mà đa lại Không


25h c a tuyt i


al=s hiu ổ đĩa; cx=số
sector cần đọc; dx=số của
cung logic bắt đầu;


ds:bx=địa chỉ chuyển đến


<i>Thành công:</i> CF=0
<i>Không thành công:</i>
CF=1 và ax chứa mã lỗi
26h Ghi đĩa tuyệt đối


al=số hiệu ổ đĩa; cx=số
sector cần ghi; dx=số của
cung logic bắt đầu;
ds:bx=địa chỉ chuyển đi


<i>Thành công:</i> CF=0
<i>Không thành công:</i>
CF=1 và ax chứa mã lỗi
27h Kết thúc chơng trình và<sub>ở lại thờng trú</sub> dx=độ lệch của chỗ bắt đầuvùng nhớ đợc giải phóng,


</div>

<!--links-->

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×