Hợp ngữ - Chương 3 - Xử lý màn hình và bàn phím
lượt xem 20
download
Tài liệu tham khảo về Hợp ngữ - Chương 3 - Xử lý màn hình và bàn phím...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Hợp ngữ - Chương 3 - Xử lý màn hình và bàn phím
- Chöông 3: XÖÛ LYÙ MAØN HÌNH VAØ BAØN PHÍM (Cơ bản) Màn hình Màn hình là lưới các ô được địa chỉ hóa - Màn hình chế độ văn bản có 25 hàng (024) và 80 cột (079) - Dạng thập phân Dạng số Hex Vị trí trên màn hình Cột Cột Hàng Hàng Góc trái trên 00 00 00h 00h Góc phải trên 00 79 00h 4Fh Giữa màn hình 12 39/40 0Ch 27h Góc trái dưới 24 00 18h 00h Góc phải dưới 24 79 18h 4Fh - Các ngắt và chức năng: * INT 10h (BIOS) * INT 21h (DOS) - 02h: Thiết lập cursor - 02h/09h/40h: Hiển thị màn hình - 06h: Cuộn màn hình - 0Ah/3Fh: Nhập từ bàn phím
- Chöông 3: XÖÛ LYÙ MAØN HÌNH VAØ BAØN PHÍM (Cơ bản) Thiết lập cursor INT – Với ngắt 10h * Số hiệu hàm: 2 – Yêu cầu thiết lập cursor Giá trị Điều kiện Thao tác Thanh ghi Vào AH 2 Số trang màn hình (Mặc định=0) BH DH Hàng Cột DL Ví dụ: Thiết lập cursor ở vị trí hàng 5 và cột 12: MOV AH,2 MOV BH,0 MOV DH,5 MOV DX,050Ch MOV DL,12 INT 10h
- Chöông 3: XÖÛ LYÙ MAØN HÌNH VAØ BAØN PHÍM (Cơ bản) Xóa màn hình INT – Với ngắt 10h * Số hiệu hàm: 6 – Xóa một phần hoặc toàn bộ màn hình Giá trị Điều kiện Thao tác Thanh ghi Vào AH 6 AL 0 Xóa toàn màn hình =0 Thuộc tính màu (Back/fore ground) BH hàng:cột bắt đầu CX hàng:cột kết thúc DX Ví dụ: Xóa toàn bộ màn hình từ vị trí hàng:cột=00:00h đến 18:4Fh MOV AH,6 MOV AX,0600h MOV AL,0 Nền trắng (7) MOV BH,71h Chữ xanh (1) MOV CX,0000h MOV DX,184Fh INT 10h
- Chöông 3: XÖÛ LYÙ MAØN HÌNH VAØ BAØN PHÍM (Cơ bản) Nhập dữ liệu từ bàn phím INT – Với ngắt 21h * Số hiệu hàm: 0Ah – Nhập dữ liệu từ bàn phím - Sử dụng một danh sách tham số với cấu trúc: ;bắt đầu danh sách tham số NAMEPAR LABEL BYTE ;Số ký tự nhập vào cực đại MAXLEN DB ;Số ký tự đã nhập vào ACTLEN DB ? DUP(‘ ‘) ;Các ký tự được nhập từ bàn phím NAMEFLD DB - Ví dụ: NAMEPAR LABEL BYTE MAXLEN DB 20 ACTLEN DB ? 20 DUP(‘ ‘) NAMEFLD DB Giá trị Điều kiện Thao tác Thanh ghi Vào AH 6 Nạp địa chỉ của danh sách tham số DX NAMEPAR Mãng có chiều dài cực đại n-1 Ra NAMEFLD
- Chöông 3: XÖÛ LYÙ MAØN HÌNH VAØ BAØN PHÍM (Cơ bản) Nhập dữ liệu từ bàn phím INT – Với ngắt 21h * Số hiệu hàm: 0Ah – Nhập dữ liệu từ bàn phím - Ví dụ: .DATA NAMEPAR LABEL BYTE MAXLEN DB 20 ACTLEN DB ? 20 DUP(‘ ‘) NAMEFLD DB .CODE MOV AH,0Ah LEA DX,NAMEPAR INT 21h - Gỉa sử nhập nội dung là ‘BROWN’ Danh sách tham số như sau: ASCII 20 5 B R O W N # HEX 14 05 42 52 4F 57 4E 0D Lưu ký tự Enter (0Dh) vào Ký tự B được truy cập tại phần tử NAMEFLD Ký tự R được truy cập tại phần tử NAMEFLD+1 ....
- Chöông 3: XÖÛ LYÙ MAØN HÌNH VAØ BAØN PHÍM (Cơ bản) Nhập dữ liệu từ bàn phím Ví dụ: Nhập và tách họ tên sinh viên, sau đó hiển thị tên vừa nhập lên màn hình. .MODEL SMALL .DATA ‘Nhập họ tên sinh viên:$' MSG1 DB MSG2 DB 0Ah,0Dh,'Ten sinh vien la:$' NAMEPAR LABEL BYTE MAXLEN DB 20 ACTLEN DB ? NAMEFLD DB 20 DUP(' ') .CODE MOV AX,@DATA MOV DS,AX ;Hiển thị thông báo nhập MOV AH,9 LEA DX,MSG1 INT 21h
- Chöông 3: XÖÛ LYÙ MAØN HÌNH VAØ BAØN PHÍM (Cơ bản) ;Nhập nội dung dữ liệu MOV AH,0Ah LEA DX,NAMEPAR INT 21h ;Xác định độ dài dữ liệu để MOV BH,00 ;thay thế nội dung ký tự Enter MOV BL,ACTLEN ;thành ký tự ‘$’ MOV NAMEFLD[BX],'$' ;In ra thông báo kết quả MOV AH,9 LEA DX,MSG2 INT 21h ;In dữ liệu MOV AH,9 LEA DX,NAMEFLD INT 21h MOV AH,4Ch INT 21h END
- Chöông 3: XÖÛ LYÙ MAØN HÌNH VAØ BAØN PHÍM (Cơ bản) Xóa vùng nhập dữ liệu * Ví dụ với các dữ liệu được nhập liên tiếp: Dữ liệu Giá trị NAMEPAR (HEX) PAINE 14 05 50 41 49 4E 45 0D 20 20 20 20 HAMILTON 14 08 48 41 4D 49 4C 54 4F 4E 0D 20 ADAMS 14 05 41 44 41 4D 53 0D 4F 4E 0D 20 Phải xóa các dữ liệu trước khi nhập dữ liệu mới: ;lặp 20 lần cho thao tác MOV CX,20 MOV SI,0 XOA: ;thay thế bằng khoảng trắng MOV NAMEFLD[SI],20h INC SI LOOP XOA
- Chöông 3: XÖÛ LYÙ MAØN HÌNH VAØ BAØN PHÍM (Naâng cao) Thiết lập chế độ màn hình INT – Với ngắt 10h * Số hiệu hàm: 00h – Thiết lập chế độ màn hình mới Giá trị Điều kiện Thao tác Thanh ghi Vào AH 00h Chế độ video AL Mode V í dụ: ;yêu cầu thiết lập chế độ MOV AH,00 MOV AL,03 ;Mode=03:màn hình màu 80x25 INT 10h
- Chöông 3: XÖÛ LYÙ MAØN HÌNH VAØ BAØN PHÍM (Naâng cao) Thiết lập chế độ màn hình Các chế độ màn hình văn bản Kích cỡ Loại Độ phân giải/màu Mode 00 40x25 CGA 320x200 /Mono EGA 320x350 /Mono VGA 320x450 /Mono 01 40x25 CGA 320x200 /Color EGA 320x350 /Color VGA 320x450 /Color 02 80x25 CGA 640x200 /Mono EGA 640x350 /Mono VGA 720x400 /Mono 03 80x25 CGA 640x200 /Color EGA 640x350 /Color VGA 720x400 /Color ....
- Chöông 3: XÖÛ LYÙ MAØN HÌNH VAØ BAØN PHÍM (Naâng cao) Thiết lập chế độ màn hình Byte thuộc tính Byte thuộc tính trong chế độ văn bản thể hiện tính chất một ký tự được - hiển thị - Byte thuộc tính có dạng sau: Background ForeGround Thuộc tính: BL R G B IRGB Số thứ tự Bit: 7 6 5 4 32 1 0 Ví dụ: Thiết lập màu nền màu đen và chữ trắng: 0 0 00 01 1 1 - Một số mã màu: Màu R G B Màu R G B Đen 0 0 0 Lam 0 0 1 Lục 0 1 0 Cam 0 1 1 Đỏ 1 0 0 Tím 1 0 1 Trắng 1 Nâu 1 1 0 1 1 - Thuộc tính khác: BL (=1:Nhấp nháy), I (Cường độ)
- Chöông 3: XÖÛ LYÙ MAØN HÌNH VAØ BAØN PHÍM (Naâng cao) Thiết lập chế độ màn hình Trang màn hình Chế độ văn bản cho phép lưu dữ liệu trong bộ nhớ video thành từng - trang - Trong chế độ 80 cột * Mặc nhiên là trang 0 và bắt đầu từ địa chỉ B800 * Trang 1 bắt đầu từ địa chỉ B900 * Trang 2 bắt đầu từ địa chỉ BA00 * Trang 3 bắt đầu từ địa chỉ BB00 - Tại mỗi thời điểm chỉ thể hiện 1 trang màn hình
- Chöông 3: XÖÛ LYÙ MAØN HÌNH VAØ BAØN PHÍM (Naâng cao) Thiết lập chế độ màn hình INT – Với ngắt 10h * Số hiệu hàm: 01h – Thiết lập kích thước cursor Giá trị Điều kiện Thao tác Thanh ghi Vào AH 01 0 4 Đỉnh cursor CH 0 4 Đáy cursor CL * Hiệu chỉnh đỉnh và đáy cursor cho các loại màn hình: CGA: 0:7 VGA: 0:14 EGA: 0;13 * V í dụ: MOV AH,1 MOV CH,0 MOV CL,14 INT 10h
- Chöông 3: XÖÛ LYÙ MAØN HÌNH VAØ BAØN PHÍM (Naâng cao) Thiết lập chế độ màn hình INT – Với ngắt 10h * Số hiệu hàm: 02h – Thiết lập vị trí cursor Giá trị Điều kiện Thao tác Thanh ghi Vào AH 02 0 3 Số của trang (0,1,2,3) BH DH Hàng Cột DL * Ví dụ: Thiết lập cursor ở hàng 5 cột 20 của trang 0 MOV AH,2 MOV BH,0 MOV DH,5 MOV DL,20 INT 10h
- Chöông 3: XÖÛ LYÙ MAØN HÌNH VAØ BAØN PHÍM (Naâng cao) Thiết lập chế độ màn hình INT – Với ngắt 10h * Số hiệu hàm: 03h – Đọc vị trí cursor Giá trị Điều kiện Thao tác Thanh ghi Vào AH 03 0 3 Số của trang (0,1,2,3) BH Hàng/Cột Ra DH/DL Bắt đầu/Kết thúc dòng quét cursor CH/CL * Ví dụ: Đọc vị trí curos, sau đó di chuyển cursor đến cột kế tiếp MOV AH,3 MOV BH,0 INT 10h MOV AH,2 INC DL INT 10h
- Chöông 3: XÖÛ LYÙ MAØN HÌNH VAØ BAØN PHÍM (Naâng cao) Thiết lập chế độ màn hình INT – Với ngắt 10h * Số hiệu hàm: 06h/07h – Cuộn màn hình (cuộn lên/xuống)/Xóa màn hình Giá trị Điều kiện Thao tác Thanh ghi Vào AH 06/07 Số hàng AL (=0: Toàn màn hình) Hàng:cột Hàng:cột bắt đầu CX Hàng:cột Hàng:Cột kết thúc DX * Ví dụ: Cuộn màn hình lên 1 dòng và thiết lập thuộc tính màu MOV AH,6 MOV AL,1 ;nền=cam, chữ=đen MOV BH,30 ;Từ 00:00 MOV CX,0000 ;Đến 18:4F (cả màn hình) MOV DX,184Fh INT 10h
- Chöông 3: XÖÛ LYÙ MAØN HÌNH VAØ BAØN PHÍM (Naâng cao) Thiết lập chế độ màn hình INT – Với ngắt 10h * Số hiệu hàm: 08h – đọc thuộc tính/ký tự tại vị trí cursor Giá trị Điều kiện Thao tác Thanh ghi Vào AH 08 Số trang BH Trả về ký tự Ra AL Trả về thuộc tính của ký tự AH * V í dụ: MOV AH,8 MOV BH,0 INT 10h
- Chöông 3: XÖÛ LYÙ MAØN HÌNH VAØ BAØN PHÍM (Naâng cao) Thiết lập chế độ màn hình INT – Với ngắt 10h * Số hiệu hàm: 09h – Hiển thị thuộc tính/ký tự tại vị trí cursor Giá trị Điều kiện Thao tác Thanh ghi Vào AH 09 Ký t ự AL mã ASCII Số trang BH Thuộc tính BL Số lần hiển thị lặp ký tự CX * Ví dụ: Hiển thị 80 dấu * và thiết lập thuộc tính màu MOV AH,9 MOV AL,’*’ MOV BH,0 ;nền=Nâu,chữ=lam MOV BL,61h ;lặp 80 lần MOV CX,80 INT 10h
- Chöông 3: XÖÛ LYÙ MAØN HÌNH VAØ BAØN PHÍM (Naâng cao) Thiết lập chế độ màn hình INT – Với ngắt 10h * Số hiệu hàm: 0Fh – Xác định chế độ video hiện hành Giá trị Điều kiện Thao tác Thanh ghi Vào AH 0Fh Ra AL Mode màn hình Số ký tự/dòng AH Số của trang hiện hành BH * Ví dụ: Xác định chế độ video hiện hành MOV AH,0Fh INT 10h CMP AL,03 JE .......
- Chöông 3: XÖÛ LYÙ MAØN HÌNH VAØ BAØN PHÍM (Naâng cao) Xử lý nhập/xuất từ bàn phím INT – Với ngắt 21h * Số hiệu hàm: 07h – Nhập từ bàn phím nhưng không hiển thị Giá trị Điều kiện Thao tác Thanh ghi Vào AH 7 Ra AL mã ASCII * Ví dụ: Mô phỏng kiểu nhập mật mã, không muốn hiển thị ký tự đã nhập và hiển thị ký tự * thay thế LAP: MOV AH,7h INT 21h MOV AH,2 DL,’*’ MOV INT 21h JMP LAP
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Hợp ngữ ASM-Chương 08-Cấu trúc DK & Loops-Phần 3-Chương trình con
10 p | 336 | 186
-
Hợp ngữ ASM-Chương 11-lập trình xử lý màn hình - Phần 3-Trang màn hình
11 p | 272 | 172
-
Hợp ngữ ASM-Chương 12-Lập trình xử lý Đĩa& FILE-Phần 3- Bảng FAT
15 p | 348 | 149
-
Bài giảng môn Kỹ thuật vi xử lý: Chương 3 - TS. Hoàng Xuân Dậu
26 p | 143 | 25
-
Bài giảng hợp ngữ - Chương 3
8 p | 106 | 25
-
Bài giảng Kiến trúc máy tính và hợp ngữ: Chương 6 - ThS. Vũ Minh Trí
99 p | 144 | 18
-
Bài giảng Kiến trúc máy tính: Chương 3.2 - Võ Tấn Phương
63 p | 94 | 12
-
Bài giảng Kiến trúc máy tính và hợp ngữ: Chương 3 - ĐH KHTN TP.HCM
23 p | 102 | 11
-
Tài liệu vi xử lý - Chương 3
30 p | 91 | 10
-
Bài giảng Kiến trúc máy tính và hợp ngữ - Chương 3: Biểu diễn số thực
19 p | 84 | 9
-
Bài giảng Kiến trúc máy tính và hợp ngữ: Chương 3 - ThS. Vũ Minh Trí
22 p | 67 | 9
-
Bài giảng Cấu trúc máy tính và lập trình hợp ngữ - Chương 3: Chương trình gỡ rối debug
30 p | 61 | 7
-
Bài giảng Kiến trúc máy tính và hợp ngữ: Chương 3 - Huỳnh Tổ Hạp
5 p | 45 | 5
-
Bài giảng Lập trình với hợp ngữ - GV. Lê Minh Triết
0 p | 99 | 3
-
Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 5: Lập trình hợp ngữ LC-3 (GV. Nguyễn Nhật Nam)
35 p | 46 | 3
-
Bài giảng Hệ thống máy tính và ngôn ngữ C: Chương 5 - TS. Nguyễn Phúc Khải
35 p | 6 | 3
-
Bài giảng Hệ nhúng: Chương 3 - Đỗ Công Thuần
66 p | 15 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn