Professional Documents
Culture Documents
Vixuly Hocbu
Vixuly Hocbu
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) 00000000 ~ 11111111 (00 ~ 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 ; khởi tạo hàm 1 để chuẩn bị nhập 1 ký tự
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 ; khởi tạo hàm 2 để chuẩn bị hiển thị ký tự ra màn hình
MOV DL, MÃ ASCII CỦA KÍ TỰ ; cất mã ASCII của ký tự vào DL
INT 21H ; Ngắt để hiển thị kí tự ra màn hình
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
Nhắc lại các lệnh liên quan đến cấu trúc điều khiển!
1. CMP: Compare – so sánh
Cú pháp CMP ĐÍCH, NGUỒN ; So sánh toán hạng đích với nguồn
2. Các câu lệnh NHẢY
a. Lệnh nhảy không điều kiện
Cú pháp JMP Nhãn lệnh
TH1: Nhảy lên phía trên
Nhãn lệnh: -----
-----
-----
Chú ý: Bao giờ câu lệnh nhảy có điều kiện cũng đi ngay sau câu lệnh so sánh
- Nếu gặp điều kiện đúng thì MỚI nhảy tới nhãn lệnh
- Nếu gặp điều kiện sai thì THỰC HIỆN ngay lệnh tiếp theo
VD1: giả sử AX đang chứa 1 số nào đó! Hãy chuyển giá trị tuyệt đối của AX và BX
Phân tích:
- AX đang chứa 1 số nào đó (Số đó có thể âm hoặc dương sử dụng lệnh nhảy với số có
dấu).
- Xét trường hợp: AX >= 0 thì |AX| = AX (trị tuyệt đối của AX = AX)
- Xét trường hợp: AX < 0 thì |AX| = - AX (trị tuyệt đối của AX = -AX: NEG AX)
MOV AH, 1
nhaplai: INT 21h ; ký tự vừa nhập cất trong thanh ghi AL
CMP AL, ‘CR’
JNE nhap lai ; AL <> CR thì nhập lại còn nếu AL = kí tự CR thì thoát
THOAT:
BTVN:
1. Học thuộc các thanh ghi (tên, nội dung, mục đích sử dụng)
2. Các chế độ địa chỉ (địa chỉ đoạn, độ lệch, logic, vật lý, v.,v)
3. Tập lệnh (hoàn thành theo mẫu thày đã gửi tuần sau nộp)
4. Học thuộc bài hôm nay: Các cấu trúc điều khiển, các lệnh so sánh, lệnh nhảy, các lệnh
với ngắt 21h
5. Tuần sau sẽ ôn tập làm thử đề thi giữa kỳ các năm và giải đáp các câu hỏi
6. Thi giữa kỳ: thi trắc nghiệm chung cho cả khóa đại trà (có thể thêm 1 vài câu tự luận)