Berchtwald

New Member
Download miễn phí Giáo trình kĩ thuật vi xử lý lập trình hợp ngữ với 8086/8088
Đây là giáo trình kĩ thuật vi xử lý của 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 3 – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088

NỘI DUNG

1. Giới thiệu về hợp ngữ
2. Cú pháp của chương trình hợp ngữ
3. Dữ liệu cho chương trình hợp ngữ
4. Biến và hằng
5. Khung chương trình hợp ngữ
6. Các cấu trúc điều khiển
7. Giới thiệu phần mềm mô phỏng emu8086
8. Một số ví dụ

GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU
Trang 2
BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1


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Ý
Giảng viên: TS. Hoàng Xuân Dậu
Điện thoại/E-mail: [email protected]
Bộ môn: Khoa học máy tính - Khoa CNTT1
Học kỳ/Năm biên soạn: Học kỳ 1 năm học 2009-2010
CHƯƠNG 3 – LẬP TRÌNH HỢP NGỮ
VỚI 8086/8088
BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ

GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU
BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1
Trang 2
CHƯƠNG 3 – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088
NỘI DUNG
1. Giới thiệu về hợp ngữ
2. Cú pháp của chương trình hợp ngữ
3. Dữ liệu cho chương trình hợp ngữ
4. Biến và hằng
5. Khung chương trình hợp ngữ
6. Các cấu trúc điều khiển
7. Giới thiệu phần mềm mô phỏng emu8086
8. Một số ví dụ
BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ

GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU
BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1
Trang 3
CHƯƠNG 3 – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088
3.1. Giới thiệu về hợp ngữ
 Hợp ngữ (Assembler) là ngôn ngữ lập trình bậc thấp, chỉ cao hơn
ngôn ngữ máy;
 Hợp ngữ là ngôn ngữ gắn liền với các dòng vi xử lý (processor
specific).
 Các lệnh dùng trong hợp ngữ là lệnh của VXL
 Chương trình hợp ngữ viết cho một VXL có thể không hoạt động trên VXL
khác.
 Chương trình hợp ngữ khi dịch ra mã máy có kích thước nhỏ gọn,
chiếm ít không gian nhớ.
 Hợp ngữ thường được 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 trong nhân HĐH (đòi hỏi kích thước nhỏ gọn và tốc độ cao)
BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ

GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU
BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1
Trang 4
CHƯƠNG 3 – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088
3.2. Cú pháp của chương trình hợp ngữ
 Trong chương trình hợp ngữ, mỗi lệnh được đặt trên một
dòng – dòng lệnh;
 Lệnh có 2 dạng:
 Lệnh thật: là các lệnh gợi nhớ của VXL
• VD: MOV, SUB, ADD,...
• Khi dịch, lệnh gợi nhớ được dịch ra mã máy
 Lệnh giả: là các hướng dẫn chương trình dịch
• VD: MAIN PROC, .DATA, END MAIN,...
• Khi dịch, lệnh giả không được dịch ra mã máy mã chỉ 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 trong các dòng
lệnh hợp ngữ khi được dịch.
BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ

GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU
BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1
Trang 5
CHƯƠNG 3 – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088
3.2. Cú pháp của 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 thanh ghi AH
 Các trường của dòng lệnh:
 Tên:
• Là nhãn, tên biến, hằng hay thủ tục. Sau nhãn là dấu hai chấm :))
• Các tên sẽ được chương trình dịch gán địa chỉ ô nhớ.
• Tên chỉ có thể gồm các chữ cái, chữ số, dấu gạch dưới và phải bắt đầu
bằng 1 chữ cái
 Mã lệnh: có thể gồm lệnh thật và giả
BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ

GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU
BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1
Trang 6
CHƯƠNG 3 – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088
3.2. Cú pháp của chương trình hợp ngữ
 Các trường của dòng lệnh:
 Toán hạng:
• Số lượng toán hạng phụ thuộc vào lệnh cụ thể
• Có thể có 0, 1 và 2 toán hạng.
 Chú giải:
• Là chú thích cho dòng lệnh
• Bắt đầu bằng dấu chấm phảy (;)
START: MOV AH, 100 ; Chuyển 100 vào thanh ghi AH
Tên Mã lệnh Toán hạng Chú giải
BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ

GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU
BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1
Trang 7
CHƯƠNG 3 – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088
3.3. 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-F
• Bắt đầu bằng 1 chữ (A-F) thì thêm 0 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 trong cặp nháy đơn hay kép
 Có thể dùng ở dạng ký tự hay mã ASCII
• ‘A’ = 65, ‘a’ = 97
BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ

GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU
BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1
Trang 8
CHƯƠNG 3 – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088
3.4. Hằng và biến
 Hằng (constant):
 Là các đạ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 hằng có tên:
EQU
VD:
MAX EQU 100
ENTER EQU 13
ESC EQU 27
BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ

GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU
BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1
Trang 9
CHƯƠNG 3 – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088
3.4. Hằng và biến
 Biến (variable):
 Là các đại lượng có thể 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 được chuyển thành địa chỉ ô nhớ
BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ

GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU
BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1
Trang 10
CHƯƠNG 3 – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088
3.4. Hằng và biến
 Định nghĩa biến đơn:
Tên biến DB Giá trị khởi đầu: Định nghĩa biến byte
Tên biến DW Giá trị khởi đầu: Định nghĩa biến word
Tên biến DD Giá trị khởi đầu: Định nghĩa biến double word
Ví dụ:
X DB 10 ; Khai báo biến X và khởi trị 10
Y DW ? ; Khai báo biến Y và không khởi trị
Z DD 1000 ; Khai báo biến X và khởi trị 1000
BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ

GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU
BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1
Trang 11
CHƯƠNG 3 – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088
3.4. Hằng và biến
 Định nghĩa biến mảng:
Tên mảng DB D/s giá trị khởi đầu
Tên mảng DB Số phần tử Dup(Giá trị khởi đầu)
Tên mảng DB Số phần tử Dup(?)
Định nghĩa tương tự cho các kiểu DW và DD
Ví dụ:
X DB 10, 2, 5, 6, 1 ; Khai báo mảng X gồm 5 phần tử có khởi trị
Y DB 5 DUP(0) ; Khai báo mảng Y gồm 5 phần tử khởi trị 0
Z DB 5 DUP(?) ; Khai báo mảng Z gồm 5 phần tử không khởi trị
BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ

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
CHƯƠNG 3 – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088
3.4. Hằng và biến
 Định nghĩa biến xâu ký tự: có thể được định nghĩa như một
xâu ký tự hay một mảng các ký tự
Ví dụ:
str1 DB ‘string’
str2 DB 73H, 74H, 72H, 69H, 6EH, 67H
str3 DB 73H, 74H, ‘r’, ‘i’, 69H, 6EH, 67H
BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ

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
CHƯƠNG 3 – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088
3.5. Khung chương trình hợp ngữ
 Khai báo qui mô sử dụng bộ nhớ:
.Model
 Các kiểu kích thước bộ nhớ:
 Tiny (hẹp): mã lệnh và dữ liệu gói gọn trong một đoạn
 Small (nhỏ): mã lệnh gói gọn trong một đoạn, dữ liệu gói gọn trong
một đoạn
 Medium (vừa): mã lệnh không gói gọn trong một đoạn, dữ liệu gói
gọn trong một đoạn
 Compact (gọn): mã lệnh gói gọn trong một đoạn, dữ liệu không gói


Link Download bản DOC
Do Drive thay đổi chính sách, nên một số link cũ yêu cầu duyệt download. các bạn chỉ cần làm theo hướng dẫn.
Password giải nén nếu cần: ket-noi.com | Bấm trực tiếp vào Link để tải:



Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí
 

Các chủ đề có liên quan khác

Top