Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 8

1.

Ngắt bàn phím: 16h

- Hàm 00h: đọc một kí tự

ah =00h

 AL = mã ASCII kí tự được nhấn

với các phím chức năng AL=00h

AH = mã quét của các phím nhấn

- Hàm 01h: kiểm tra trạng thái sẵn sàng của bàn phím

ah=01h

 ZF =1 (không có kí tự nào trong vùng đệm)

=0 (có kí tự)khi đó:

phím mở rộng:

AL =0 mã bàn phím mở rộng

AH = Mã Scan phím

mã phím thường

AL = mã ASCII của phím (bàn phím thường)

AH =mã Scan phím

- Hàm 02h Kiểm tra trạng thái của bàn phím (nhận biết phím điều kiển)

ah=02h

 al= trạng thái phím

76543210

Insert Caps Num Scrool Alt Ctrl Shift Shift


Lock lock lock right left

Ví dụ: tạo tiếng kêu (gửi ký tự bell = 07h ra màn hình), dừng lại khi bấm phím bất kỳ
.model small
.stack 100h
.data
s db 'bam phim bat ky de ket thuc$'
.code
main proc
mov ax,@data
mov ds, ax

mov ah, 9
lea dx, s
int 21h

back:
mov ah, 2
mov dl, 7 ; am thanh (bell)
int 21h

mov ah, 1 ; kiem tra co phim bam


int 16h
je back ; neu ko co phim bam thi quay lai

mov ah, 4ch


int 21h

main endp
end main
Ví dụ 2: giống bài trước, thay vào đó là bấm Q hoặc q để thoát (dùng thêm hàm 0, ngắt 16h)
.model small
.stack 100h
.data
s db 'bam q hoac Q de ket thuc$'
.code
main proc
mov ax,@data
mov ds, ax

mov ah, 9
lea dx, s
int 21h

back:
mov ah, 2
mov dl, 7 ; am thanh (bell)
int 21h

mov ah, 1 ; kiem tra co phim bam


int 16h
je back ; neu ko co phim bam thi quay lai

mov ah, 0 ; kiem tra co phim bam


int 16h

cmp al, 'Q'


je thoat
cmp al, 'q'
je thoat
jmp back

thoat:
mov ah, 4ch
int 21h

main endp
end main

2. Ngắt chuột 33h


- Hàm 00: khởi tạo chuột
Mov ax, 0
Int 33h
- Hàm 01: hiện chuột
Mov ax, 1
Int 33h
- Hàm 02: ẩn chuột
Mov ax, 02
Int 33h
- Hàm 03: trạng thái ấn chuột
Mov ax, 03
Int 33h
 bx chứa trạng thái nút bấm (bit 0: nút trái, bit 1: nút phải, bit 2: nút giữa)
Ví dụ: lặp đến khi bấm chuột
.model small
.stack 100h
.data
s1 db 'bam chuot$'

.code
main proc

mov ax, @data


mov ds, ax

mov ax, 00 ; khoi tao chuot


int 33h

mov ax, 01 ; hien chuot


int 33h

mov bx, 0

back:

mov ax, 03 ; kiem tra click


int 33h

; trang thai trong bx


cmp bx, 0
je tiep
cmp bx, 1 ; neu bang 1
je trai
trai:
mov ah, 9
lea dx, s1
int 21h
jmp thoat

tiep:
jmp back

thoat:

mov ah, 4ch


int 21h

main endp
end main

Cái này để sau


.Model small
.Stack
.Data
.Code
main proc
Mov ax,@Data
Mov ds,ax
; Ðua v? ch? d? d? ho? (Hàm 00h ng?t 10h)
Mov ah,0 ; Ð?t ki?u màn hình
Mov al,12h ; Ch? d? 640x480, 16 màu
Int 10h

; Kh?i d?ng chu?t (Hàm 00h ng?t 33h)


Mov ax,0h
Int 33h

; Hi?n th? chu?t (Hàm 01h ng?t 33h)


Mov ax,01h
Int 33h

;Ð?cm?t ký t? (Hàm 01h ng?t 21h)


Mov ah,01h
Int 21h

; Che gi?u con tr? chu?t


Mov ax,02h
Int 33h

;Ðua v? ch? d? van b?n 80:25 (Hàm 00h ng?t 10h)


Mov ah,0
Mov al,3
Int 10h

;Thoát kh?i chuong trình tr? v? Dos (Hàm 4ch ng?t 21h)
Mov ah,4ch
Int 21h
main endp
end main

You might also like