MỘT SỐ HÀM CƠ BẢN CỦA NGẮT 16H


HÀM 00H

Hàm 00h của ngắt 16h: Lấy một mã hai byte trong vùng đệm bàn phím BIOS. Nếu vùng đệm rỗng hàm sẽ đợi cho đến khi vùng đệm khác rỗng (có phím). Đối với bàn phím từ 101 phím trở lên ta mở rộng hàm 00h thành hàm 10h.

Thực hiện:

Code:

        Mov ah,00
        Int 16h

Giá trị trả về:
AH: Mã mở rộng.
AL: Mã ASCII.

HÀM 01H


Hàm 01h của ngắt 16h: Hỏi vùng đệm bàn phím (rỗng hay không rỗng).Đối với bàn phím từ 101 phím trở lên ta mở rộng hàm 01h thành hàm 11h.

Thực hiện:

Code:

        Mov ah,1
        Int 16h

Giá trị trả về:
ZF mang giá trị 1 khi vùng đệm rỗng, mang giá trị 0 khi vùng đệm bàn phím khác rỗng.

HÀM 02H


Hàm 02h của ngắt 16h: Hàm cho phép đọc trạng thái của các phím đặt biệt như Shift, Alt, Num Lock, Caps Lock, Scroll Lock, Ctrl. Đối với bàn phím từ 101 phím trở lên ta mở rộng hàm 02h thành hàm 12h.

Thực hiện:

Code:

        Mov ah,2
        Int 16h

Giá trị trả về:
AL = byte trạng thái bàn phím.
Bit 0 = 1 Shift phải đang ấn.
Bit 1 = 1 Shift trái đang ấn.
Bit 2 = 1 Ctrl đang ấn.
Bit 3 = 1 Alt đang ấn.
Bit 4 = 1 Scroll Lock On.
Bit 5 = 1 Num Lock On.
Bit 6 = 1 Caps Lock On.
Bit 7 = 1 Insert hoạt động.

HÀM 03H


Hàm 03h của ngắt 16h: Đặt các thời gian trì hoản và lặp phím.
Hàm 03h cho phép điều chỉnh thời gian được giữ phím trước khi việc lặp phím bắt đầu có tác dụng. Thông thường thời gian trì hoản phím là 1/2 giây, nhưng có thể đổi thành 1/4, 3/4 hay 1 giây. Ngoài ra phục vụ còn cho phép thời gian lặp phím. Thông thường thời gian lặp phím là 1/10s nhưng có thể đổi thành 1/30s đến 1/2s.

Mã Trì Hoản Thời Gian Trì Hoản
0 250ms
1500ms
2 750ms
31s
Thời gian lặp phím có thể từ 0 đến 1Fh. 0 tưng ứng thời gian lặp phím 1/30s là nhanh nhất còn 1Fh tương ứng thời gian lặp phím 2s là chậm nhất.

Thực hiện:

Code:

        Mov ah,3
        Mov Al,5
        Mov Bh, mã thời gian trì hoản   
        Mov Bl, thời gian lặp phím.       
        Int 16h

HÀM 05H


Hàm 05h của ngắt 16h: Cho phép ghi một mã 2 byte vào vùng đệm bàn phím BIOS. Ứng dụng: Cho phép nhập các phím từ bàn phím một cách tự động mà không cần phím.

Thực hiện:

Code:

        Mov ah,5
        Mov cx, mã 2 byte
        Int 16h