ngat 16h - asembly
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:
Mov ah,00
Int 16h
Giá trị trả về:
AH: Mã mở rộng.
AL: Mã ASCII.
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:
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 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:
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 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 1 500ms 2 750ms 3 1s
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:
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 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:
Mov ah,5
Mov cx, mã 2 byte
Int 16h
Hàm 12h 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:
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.
AH = byte trạng thái bàn phím.
Bit 0 = 1 Ctrl trái đang ấn.
Bit 1 = 1 Alt trái đang ấn.
Bit 2 = 1 Ctrl phải đang ấn.
Bit 3 = 1 Alt phải đang ấn.
Bit 4 = 1 Scroll Lock On.
Bit 5 = 1 Num Lock On.
Bit 6 = 1 Caps Lock On.
Bit 7 = 1 Sys Req đang ấn.
Bạn đang đọc truyện trên: AzTruyen.Top