1. Trang chủ
  2. » Giáo án - Bài giảng

Bài giảng Kỹ thuật Vi xử lý chương 3 hợp ngữ với 8086 - 8088

26 351 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088 Giảng viên: TS Hồng Xn Dậu Điện thoại/E-mail: dauhoang@vnn.vn Bộ mơn: Khoa học máy tính - Khoa CNTT1 Học kỳ/Năm biên soạn: Học kỳ năm học 2009-2010 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088 NỘI DUNG www.ptit.edu.vn Giới thiệu hợp ngữ Cú pháp chương trình hợp ngữ Dữ liệu cho chương trình hợp ngữ Biến Khung chương trình hợp ngữ Các cấu trúc điều khiển Giới thiệu phần mềm mô emu8086 Một số ví dụ GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088 Giới thiệu hợp ngữ Hợp ngữ (Assembler) ngôn ngữ lập trình bậc thấp, cao ngơn ngữ máy; Hợp ngữ ngơn ngữ gắn liền với dịng vi xử lý (processor specific) Các lệnh dùng hợp ngữ lệnh VXL Chương trình hợp ngữ viết cho VXL khơng hoạt động VXL khác Chương trình hợp ngữ dịch mã máy có kích thước nhỏ gọn, chiếm khơng gian nhớ Hợp ngữ thường sử dụng để viết: Các trình điều khiển thiết bị Các mơđun chương trình cho vi điều khiển Một số mơđun nhân HĐH (địi hỏi kích thước nhỏ gọn tốc độ cao) www.ptit.edu.vn GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang BÀI GIẢNG MƠN KỸ THUẬT VI XỬ LÝ CHƯƠNG – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088 Cú pháp chương trình hợp ngữ Trong chương trình hợp ngữ, lệnh đặt dịng – dịng lệnh; Lệnh có dạng: Lệnh thật: lệnh gợi nhớ VXL • VD: MOV, SUB, ADD, • Khi dịch, lệnh gợi nhớ dịch mã máy Lệnh giả: hướng dẫn chương trình dịch • VD: MAIN PROC, DATA, END MAIN, • Khi dịch, lệnh giả khơng dịch mã máy mã có tác dụng định hướng cho chương trình dịch Khơng phân biệt chữ hoa hay chữ thường dòng lệnh hợp ngữ dịch www.ptit.edu.vn GIẢNG VIÊN: TS HOÀNG XUÂN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088 Cú pháp chương trình hợp ngữ Cấu trúc dịng lệnh hợp ngữ: [Tên] [Mã lệnh] [Các toán hạng] [Chú giải] START: MOV AH, 100 ; Chuyển 100 vào ghi AH Các trường dịng lệnh: Tên: • Là nhãn, tên biến, thủ tục Sau nhãn dấu hai chấm (:) • Các tên chương trình dịch gán địa nhớ • Tên gồm chữ cái, chữ số, dấu gạch phải bắt đầu chữ Mã lệnh: gồm lệnh thật giả www.ptit.edu.vn GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088 Cú pháp chương trình hợp ngữ Các trường dịng lệnh: Tốn hạng: • Số lượng tốn hạng phụ thuộc vào lệnh cụ thể • Có thể có 0, tốn hạng Chú giải: • Là thích cho dịng lệnh • Bắt đầu dấu chấm phảy (;) START: MOV Tên www.ptit.edu.vn AH, 100 Mã lệnh Toán hạng ; Chuyển 100 vào ghi AH Chú giải GIẢNG VIÊN: TS HOÀNG XUÂN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088 Dữ liệu cho chương trình hợp ngữ Dữ liệu số: Thập phân: 0-9 Thập lục phân: 0-9, A-H • Bắt đầu chữ (A-F) thêm vào đầu • Thêm ký hiệu H (Hexa) cuối • VD: 80H, 0F9H Nhị phân: 0-1 • Thêm ký hiệu B (Binary) cuối • VD: 0111B, 1000B Dữ liệu ký tự: Bao cặp nháy đơn kép Có thể dùng dạng ký tự mã ASCII • ‘A’ = 65, ‘a’ = 97 www.ptit.edu.vn GIẢNG VIÊN: TS HOÀNG XUÂN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088 Hằng biến Hằng (constant): Là đại lượng không thay đổi giá trị Hai loại hằng: • Hằng giá trị: ví dụ 100, ‘A’ • Hằng có tên: ví dụ MAX_VALUE Định nghĩa có tên: EQU VD: MAX EQU ENTER EQU ESC EQU www.ptit.edu.vn 100 13 27 GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088 Hằng biến Biến (variable): Là đại lượng thay đổi giá trị Các loại biến: • Biến đơn • Biến mảng • Biến xâu ký tự Khi dịch biến chuyển thành địa ô nhớ www.ptit.edu.vn GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088 Hằng biến Định nghĩa biến đơn: Tên biến Tên biến Tên biến DB DW DD Giá trị khởi đầu: Định nghĩa biến byte Giá trị khởi đầu: Định nghĩa biến word Giá trị khởi đầu: Định nghĩa biến double word Ví dụ: X Y Z DB DW DD 10 ? 1000 www.ptit.edu.vn ; Khai báo biến X khởi trị 10 ; Khai báo biến Y không khởi trị ; Khai báo biến X khởi trị 1000 GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 10 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088 Hằng biến Định nghĩa biến xâu ký tự: định nghĩa xâu ký tự mảng ký tự Ví dụ: str1 DB str2 DB str2 DB www.ptit.edu.vn ‘string’ 73H, 74H, 72H, 69H, 6EH, 67H 73H, 74H, ‘r’, ‘i’, 69H, 6EH, 67H GIẢNG VIÊN: TS HOÀNG XUÂN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 12 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088 Khung chương trình hợp ngữ Khai báo qui mơ sử dụng nhớ: Model Các kiểu kích thước nhớ: Tiny (hẹp): mã lệnh liệu gói gọn đoạn Small (nhỏ): mã lệnh gói gọn đoạn, liệu gói gọn đoạn Medium (vừa): mã lệnh khơng gói gọn đoạn, liệu gói gọn đoạn Compact (gọn): mã lệnh gói gọn đoạn, liệu khơng gói gọn đoạn Large (lớn): mã lệnh khơng gói gọn đoạn, liệu khơng gói gọn đoạn, khơng có mảng lớn 64K Huge (rất lớn): mã lệnh khơng gói gọn đoạn, liệu khơng gói gọn đoạn, có mảng lớn 64K www.ptit.edu.vn GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 13 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088 Khung chương trình hợp ngữ Khai báo đoạn ngăn xếp: Stack VD: Stack 100H; khai báo kích thước ngăn xếp 100H=256 byte Khai báo đoạn liệu: Data ;Định nghĩa biến ;Tất biến phải khai báo đoạn liệu VD: Data MSG DB ‘Hello!$’ ENTER DB 13 MAX DW 1000 www.ptit.edu.vn GIẢNG VIÊN: TS HOÀNG XUÂN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 14 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088 Khung chương trình hợp ngữ Khai báo đoạn mã: Code ; Các lệnh chương trình VD: Code MAIN Proc ; bắt đầu chương trình ; lệnh chương trình MAIN Endp ; kết thúc chương trình ; chương trình – có End MAIN www.ptit.edu.vn GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 15 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088 Khung chương trình hợp ngữ - tổng hợp Model Small Stack 100H Data ; khai báo biến Code MAIN Proc ; khởi đầu cho ghi DS MOV AX, @Data ; nạp địa đoạn liệu vào AX MOV DS, AX ; nạp địa đoạn liệu vào DS ; lệnh chương trình ; kết thúc, trở chương trình gọi dùng hàm 4CH ngắt 21H MOV AH, 4CH INT 21H MAIN Endp ; chương trình (nếu có) END MAIN ; kết thúc tồn chương trình www.ptit.edu.vn GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 16 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088 Khung chương trình hợp ngữ - ví dụ ; Chương trình in thơng điệp: Hello World! Model Small Stack 100H Data ; khai báo biến CRLF DB 13, 10, ‘$’ ; xuống dòng MSG DB ‘Hello World!$’ Code MAIN Proc ; khởi đầu cho ghi DS MOV AX, @Data ; nạp địa đoạn liệu vào AX MOV DS, AX ; nạp địa đoạn liệu vào DS www.ptit.edu.vn GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 17 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088 Khung chương trình hợp ngữ - ví dụ ; xuống dòng MOV AH, LEA DX, CRLF ; nạp địa CRLF vào DX INT 21H ; lời chào dùng hàm ngắt 21H MOV AH, LEA DX, MSG ; nạp địa thông điệp vào DX INT 21H ; thông điệp ; kết thúc, trở chương trình gọi dùng hàm 4CH ngắt 21H MOV AH, 4CH INT 21H MAIN Endp END MAIN www.ptit.edu.vn GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 18 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088 Các cấu trúc điều khiển Cấu trúc lựa chọn Rẽ nhánh kiểu IF THEN Rẽ nhánh kiểu IF THEN ELSE Rẽ nhiều nhánh Cấu trúc lặp Lặp kiểu for Lặp kiểu repeat until www.ptit.edu.vn GIẢNG VIÊN: TS HOÀNG XUÂN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 19 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088 Các cấu trúc điều khiển - IF THEN IF điều kiện THEN thao tác Gán BX giá trị tuyệt đối AX CMP AX,0 JNL GAN NEG AX GAN: MOV BX, AX Sai Điều kiện Đúng Lệnh www.ptit.edu.vn GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 20 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088 Các cấu trúc điều khiển - IF THEN ELSE Gán bít dấu AX cho CL: OR AX, AX ; AX >0 ? JNS DG ; MOV CL, ; không, CL JMP RA ; nhảy qua nhánh DG: MOV CL, ; CL RA: www.ptit.edu.vn Đúng Lệnh GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Điều kiện Sai Lệnh Trang 21 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088 Các cấu trúc điều khiển - Rẽ nhiều nhánh Gán giá trị cho CX theo qui tắc: • • • Nếu AX0 CX=1 CMP AX, JL AM JE KHONG JG DUONG AM: MOV CX, -1 JMP RA DUONG: MOV CX, JMP RA KHONG: MOV CX, RA: www.ptit.edu.vn Biểu thức Giá trị Giá trị Lệnh GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Lệnh Giá trị n Lệnh n Trang 22 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088 Các cấu trúc điều khiển – Lặp kiểu for Sử dụng lệnh LOOP Số lần lặp CX MOV CX,10 MOV AH,2 MOV DL,’$’ Hien: INT 21H LOOP Hien CX=XX Câu lệnh Giảm đếm Bộ đếm =0 www.ptit.edu.vn GIẢNG VIÊN: TS HOÀNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 23 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088 Các cấu trúc điều khiển – Lặp kiểu repeat until … Tiep:… … CMP X,Y; điều kiện JMP điều_kiện=sai; Câu lệnh Điều_kiện? www.ptit.edu.vn GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 24 BÀI GIẢNG MƠN KỸ THUẬT VI XỬ LÝ CHƯƠNG – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088 Giới thiệu phần mềm mô emu8086 www.ptit.edu.vn GIẢNG VIÊN: TS HOÀNG XUÂN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 25 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088 Một số ví dụ Tham khảo sách Kỹ thuật VXL, Văn Thế Minh Ví dụ 1-11 (trang 126-141) www.ptit.edu.vn GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 26 ...BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – LẬP TRÌNH HỢP NGỮ VỚI 8086/ 8088 NỘI DUNG www.ptit.edu.vn Giới thiệu hợp ngữ Cú pháp chương trình hợp ngữ Dữ liệu cho chương trình hợp ngữ Biến Khung chương. .. www.ptit.edu.vn GIẢNG VI? ?N: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 15 BÀI GIẢNG MƠN KỸ THUẬT VI XỬ LÝ CHƯƠNG – LẬP TRÌNH HỢP NGỮ VỚI 8086/ 8088 Khung chương trình hợp ngữ - tổng hợp Model... www.ptit.edu.vn GIẢNG VI? ?N: TS HOÀNG XUÂN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 13 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – LẬP TRÌNH HỢP NGỮ VỚI 8086/ 8088 Khung chương trình hợp ngữ Khai

Ngày đăng: 12/08/2015, 16:41

Xem thêm: Bài giảng Kỹ thuật Vi xử lý chương 3 hợp ngữ với 8086 - 8088

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN