Thông tin tài liệu:
Bài giảng Kĩ thuật vi xử lí: Chương IV do Dư Thanh Bình biên soạn trình bày những kiến thức về: lập trình hợp ngữ với 8088. Bài giảng trình bày những kiến thức chính như: mở đầu về lập trình hợp ngữ; các cấu trúc lập trình với hợp ngữ; các lệnh logic, lệnh dịch và lệnh quay; ngăn xếp và thủ tục; các lệnh nhân, chia; các lệnh thao tác chuỗi.
Nội dung trích xuất từ tài liệu:
Bài giảng Kĩ thuật vi xử lí: Chương IV - Dư Thanh Bình
KỸ THUẬT VI XỬ LÝ
Microprocessors
Dư Thanh Bình
Bộ môn KTMT - Khoa CNTT
Trường ĐH Bách Khoa Hà Nội
Lưu ý của tác giả
Không được tự ý sao chép hay quảng bá bài giảng
này nếu chưa được sự đồng ý của tác giả.
Địa chỉ liên hệ của tác giả:
Dư Thanh Bình
Bộ môn Kỹ thuật Máy tính
Viện Công nghệ Thông tin và Truyền thông
Trường Đại học Bách Khoa Hà Nội
Tel: 8696125 – Mobile: 0979859568
Email: binhdt@it-hut.edu.vn
Copyright (c) 1/2007 by DTB 2
Nội dung của môn học
Chương 1: Máy tính và hệ vi xử lý
Chương 2: Biểu diễn thông tin trong máy tính
Chương 3: Bộ vi xử lý Intel 8088
Chương 4: Lập trình hợp ngữ với 8088
Chương 5: Nối ghép 8088 với bộ nhớ
Chương 6: Nối ghép 8088 với hệ thống vào-ra
Copyright (c) 1/2007 by DTB 3
Kỹ thuật Vi xử lý
Chương 4
LẬP TRÌNH HỢP NGỮ VỚI 8088
Dư Thanh Bình
Bộ môn Kỹ thuật Máy tính
Viện Công nghệ Thông tin và Truyền thông
Trường Đại học Bách Khoa Hà Nội
Copyright (c) 1/2007 by DTB 4
Nội dung chương 4
4.1. Mở đầu về lập trình hợp ngữ
4.2. Các cấu trúc lập trình với hợp ngữ
4.3. Các lệnh logic, lệnh dịch và lệnh quay
4.4. Ngăn xếp và thủ tục
4.5. Các lệnh nhân, chia
4.6. Các lệnh thao tác chuỗi
4.7. Một số ví dụ
Copyright (c) 1/2007 by DTB 5
4.1. Mở đầu về lập trình hợp ngữ
1. Các loại ngôn ngữ lập trình
2. Cú pháp của hợp ngữ
3. Dữ liệu của chương trình
4. Khai báo biến
5. Khai báo hằng
6. Một số lệnh cơ bản
7. Cấu trúc chương trình
8. Chương trình EXE và COM
9. Vào-ra đơn giản
10. Các ví dụ
11. Dịch và chạy chương trình
Copyright (c) 1/2007 by DTB 6
1. Các loại ngôn ngữ lập trình
Ngôn ngữ máy:
Chỉ được biểu diễn bằng số nhị phân.
Bộ vi xử lý chỉ hiểu được các chương trình mã máy.
Con người rất khó khăn để tạo lập hay đọc hiểu chương trình ngôn
ngữ máy.
Hợp ngữ (Assembly Language):
Là ngôn ngữ lập trình bậc thấp (gần ngôn ngữ máy nhất).
Được xây dựng trên cơ sở ký hiệu tập lệnh của bộ vi xử lý tương
ứng.
Phụ thuộc hoàn toàn vào bộ vi xử lý cụ thể.
Ngôn ngữ lập trình bậc cao:
Gần với ngôn ngữ tự nhiên hơn.
Được xây dựng độc lập với cấu trúc của máy tính.
Copyright (c) 1/2007 by DTB 7
Lập trình với hợp ngữ
Ưu điểm:
Can thiệp sâu vào cấu trúc hệ thống.
Hiểu sâu hơn về hệ thống.
Chương trình mã máy tương ứng sẽ ngắn hơn, thường
nhanh hơn và tốn ít bộ nhớ hơn.
Nhược điểm:
Khó học vì gần với mã máy.
Chương trình nguồn dài, không thích hợp để xây dựng
những chương trình lớn.
⇒ Kết hợp ngôn ngữ lập trình bậc cao với hợp ngữ.
Copyright (c) 1/2007 by DTB 8
Chương trình dịch hợp ngữ
Được gọi là ASSEMBLER
Một số chương trình dịch hợp ngữ cho IBM-PC:
MASM – Microsoft Marco Assembler:
Các tệp: MASM.EXE, LINK.EXE, EXE2BIN.EXE ...
TASM – Turbo Assembler:
Các tệp: TASM.EXE, TLINK.EXE ...
Copyright (c) 1/2007 by DTB 9
Các bước lập trình
Bước 1: Phát biểu bài toán
Bước 2: Xây dựng thuật giải
Bước 3: Viết mã chương trình
Bước 4: Dịch và sửa lỗi cú pháp
Bước 5: Chạy thử và hiệu chỉnh chương trình
Copyright (c) 1/2007 by DTB 10
Các cấu trúc lập trình cơ bản
Cấu trúc tuần tự
Cấu trúc rẽ nhánh
Cấu trúc lặp
Copyright (c) 1/2007 by DTB 11
2. Cú pháp của hợp ngữ
Chương trình hợp ngữ gồm các dòng lệnh, mỗi lệnh viết
trên một dòng, mỗi dòng có thể là:
Lệnh của bộ vi xử lý (instruction)
Chỉ dẫn của chương trình dịch ASSEMBLER
Các lệnh hợp ngữ không phân biệt chữ hoa, chữ thường.
Khi dịch thành mã máy thì chỉ có các lệnh của bộ vi xử lý
mới được dịch.
Cấu trúc của một dòng lệnh :
Tên Thao tác Toán hạng Chú thích
( Name Operation Operand Comment )
Giữa các trường phải có ít nhất một dấu cách (hoặc TAB)
Ví dụ:
MAIN PROC
BAT_DAU: MOV CX, 50 ; khoi tao bo dem
Copyright (c) 1/2007 by DTB 12
Ý nghĩa các trường trong lệnh
Trường tên:
Sử dụng cho: nhãn lệnh, tên thủ tục, tên biến
Quy ước đặt tên: dài từ 1 đến 31 ký tự, cho phép sử
dụng:
Chữ cái (không phân biệt chữ hoa và chữ thường)
Chữ số (không được dùng làm ký tự đầu tiên)
Các ký tự khác: ?, @, $, %, . (dấu . chỉ được dùng khi nó là ký tự
đầu tiên).
Copyright (c) 1/2007 by DTB 13
Ý nghĩa các trường trong lệnh
(tiếp)
Trường thao tác:
Nếu là lệnh của vi xử lý thì đó chính là mã lệnh (MOV,
CALL, ADD,...).
Nếu là chỉ dẫn thì đó là lệnh giả của chương trình d ịch
(Pseudo-op).
Copyright (c) 1/2007 by DTB 14
Ý nghĩa các trường trong lệnh
(tiếp)
Trường toán hạng:
Đối với lệnh thì toán hạng xác định dữ liệu bị tác động
bởi mã lệnh.
Một lệnh ...