You are on page 1of 3

INT 21h : Interrupt số hiệu ngắt là 21h

Ngắt: ngắt là 1 hiện tương đang thực hiện công việc này phải chuyển sang thực hiện 1 công việc
khác. Ngắt có hai loại:
- Ngắt cứng: ngắt do các tín hiệu điều khiển phần cứng gây nên (ví dụ: INTR – Interrupt
request)
- Ngắt mềm: ngắt do các câu lệnh của chương trình phần mềm mang đến (ví dụ: INT là
lệnh ngắt)
Cú pháp: INT Số hiệu ngắt
Số hiệu ngắt: 8 bit (00h – FFh)
INT 21h là ngắt dùng để giao tiếp với bàn phím và màn hình
 INT 21h
- Hàm 1: Dùng để nhập 1 kí tự vào từ bàn phím. Nếu kí tự đó là kí tự bàn phím (không
phải kí tự điều khiển) thì kí tự sau khi nhập sẽ được cất trong thanh ghi AL.
Cú pháp:
MOV AH, 1
INT 21H ; Ngắt để nhập 1 kí tự vào từ bàn phím
- Hàm 2: Dùng để hiển thị 1 kí tự ra màn hình. Kí tự muốn được hiển thị thì mã ASCII của
kí tự đó phải được cất trong thanh ghi DL.
Cú pháp:
MOV AH, 2
MOV DL, MÃ ASCII CỦA KÍ TỰ
INT 21H ; Ngắt để hiển thị kí tự ra màn hình

Chú ý: MOV DL, MÃ ASCII CỦA KÍ TỰ


Cách 1: Hiển thị kí tự vừa nhập (phải chuyển mã ASCII của kí tự từ AL sang DL)
MOV DL, MÃ ASCII CỦA KÍ TỰ  MOV DL, AL
Cách 2: Hiển thị kí tự mong muốn (phải biết mã ASCII của kí tự đó)
Ví dụ: Hiển thị kí tự A (A hoa)
MOV DL, MÃ ASCII CỦA KÍ TỰ  MOV DL, ‘A’ or MOV DL, 41h
Do mã ASCII của kí tự A hoa = 41h (mã ASCII của A – Z : 41h – 5Ah; mã ASCII
của a – z: 61h – 7Ah; mã ASCII của 0 – 9: 30h – 39h)
Lưu ý: Chuyển mã ASCII từ ký tự hoa về ký tự thường và ngược lại
- Chuyển từ HOA về THƯỜNG: ADD AL, 20h ; AL = AL + 20h
- Chuyển từ THƯỜNG sang HOA: SUB AL, 20h ; AL = AL – 20h

- Hàm 4CH: Thoát về DOS


Cú pháp:
MOV AH, 4CH
INT 21H ; Ngắt thoát về DOS
- Hàm 9: Hiển thị 1 chuỗi ký tự ra màn hình. Địa chi hiệu dụng (địa chỉ độ lệch) của chuỗi
cần hiển thị phải được cất trong thanh ghi DX qua lệnh LEA (Load Effective Address).

Chuỗi cần hiển thị thì phải được khai báo:

TÊN CHUỖI KIỂU CỦA CHUỖI ‘NỘI DUNG’, ‘$’


Cú pháp:
MOV AH, 9
LEA DX, TÊN CỦA CHUỖI
INT 21H ; Ngắt để hiển thị CHUỖI ra màn hình
Ví dụ: Khai báo chuỗi kí tự cần hiển thị
Chaomung DB ‘Welcome cac ban da den vơi Viet Nam’, ‘$’
MOV AH, 9
LEA DX, chaomung
INT 21H ; Ngắt để hiển thị chuỗi chaomung
Giới thiệu về hai kí tự đặc biệt:
Carriage return - Wikipedia

CR: Carriage return – mã ASCII là 0Dh (13) – Về đầu dòng


LF: Line Feed – mã ASCII là 0Ah (10) – Xuống dòng
Tổ hợp 2 mã CR và LF người ta hay viết gọn là CRLF tương đương phím ENTER
Ví dụ: yêu cầu hiển thị kí tự hoặc chuỗi xong thì về đầu dòng tiếp theo khi đó ta viết đoạn
code sau:
Khai báo chuỗi CRLF DB 0AH, 0DH, ‘$’
MOV AH, 9
LEA DX, CRLF
INT 21H ; Ngắt để xuống dòng về đầu dòng

Bài tập:
Viết chương trình ASM (hợp ngữ) biên dịch theo kiểu EXE thực hiện những công việc sau:
1. Nhập 1 ký tự vào từ bàn phím
2. Hiển thị dòng thông báo “Hiển thị ký tự ra màn hình”
3. Đi hiển thị ký tự đó ra màn hình
4. Hiển thị dòng thông báo “Bạn đã hoàn thành công việc”
5. Thoát về DOS
.model small
.stack 100
.data
Chuoi1 DB ‘hien thi ki tu ra man hinh’, 0Ah, 0Dh, $
Chuoi2 DB ‘ban da hoan thanh cong viec’, 0Ah, 0Dh, $
.code
MAIN PROC
; khởi tạo thanh ghi đoạn DS
Mov AX, @data
Mov DS, AX
; nhập 1 ký tự vào từ bàn phím
Mov AH, 1
INT 21h
; hiển thị chuỗi 1
Mov AH, 9
LEA DX, Chuoi1
INT 21h
; hiển thị ký tự ra màn hình
Mov AH, 2
Mov DL, AL
INT 21h
; hiển thị chuỗi 2
Mov AH, 9
LEA DX, Chuoi2
INT 21h
; Thoát về DOS
Mov AH, 4Ch
INT 21h
MAIN ENDP
END MAIN

You might also like