intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Chương 3 - Xử lý màn hình và bàn phím

Chia sẻ: Bùi Trọng Quốc Viễn | Ngày: | Loại File: PDF | Số trang:22

121
lượt xem
15
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tham khảo tài liệu 'chương 3 - xử lý màn hình và bàn phím', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Chủ đề:
Lưu

Nội dung Text: Chương 3 - Xử lý màn hình và bàn phím

  1. 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 (024) và 80 cột (079) - 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
  2. 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
  3. 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
  4. 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
  5. 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  ....
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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 ....
  11. 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 độ)
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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 .......
  20. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2