lequy_1996

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





Chương trình con (còn gọi là thủ tục (procedure) hay hàm
(function)):
 Thường gồm một nhóm các lệnh gộp lại;
 Được sử dụng thông qua tên và các tham số.
 Ý nghĩa của việc sử dụng chương trình con:
 Chia chức năng giúp chương trình trong sáng, dễ hiểu, dễ bảo
trì; Chương trình con được viết một lần và có thể sử dụng nhiều
lần.



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
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í

Tóm tắt nội dung tài liệu:


 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Ý
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 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Ý
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 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Ý
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 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Ý
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 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Ý
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 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Ý
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
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
gọn trong một đoạn
 Large (lớn): mã lệnh không gói gọn trong một đoạn, dữ liệu không gói
gọn trong một đoạn, không có mảng lớn hơn 64K
 Huge (rất lớn): mã lệnh không gói gọn trong một đoạn, dữ liệu không
gói gọn trong một đoạn, có mảng lớn hơn 64K
BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ
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
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 đ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 dữ liệu:
.Data
;Định nghĩa các biến và hằng
;Tất cả các biến và hằng phải được khai báo ở đoạn dữ liệu
VD:
.Data
MSG DB ‘Hello!$’
ENTER DB 13
MAX DW 1000
BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ
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 15
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 đoạn mã:
.Code
; Các lệnh của chương trình
VD:
.Code
MAIN Proc ; bắt đầu chương trình chính
; các lệnh của chương trình chính
MAIN Endp ; kết thúc chương trình chính
; các chương trình con – nếu có
End MAIN
BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ
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 16
CHƯƠNG 3 – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088
3.5. Khung chương trình hợp ngữ - tổng hợp
.Model Small
.Stack 100H
.Data
; khai báo các biến và hằng
.Code
MAIN Proc
; khởi đầu cho thanh ghi DS
MOV AX, @Data ; nạp địa chỉ đoạn dữ liệu vào AX
MOV DS, AX ; nạp địa chỉ đoạn dữ liệu vào DS
; các lệnh của chương trình chính
; kết thúc, trở về chương trình gọi dùng hàm 4CH của ngắt 21H
MOV AH, 4CH
INT 21H
MAIN Endp
; các chương trình con (nếu có)
END MAIN ; kết thúc toàn bộ chương trình
BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ
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 17
CHƯƠNG 3 – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088
3.5. Khung chương trình hợp ngữ - ví dụ
; Chương trình in ra thông điệp: Hello World!
.Model Small
.Stack 100H
.Data
; khai báo các biến và hằng
CRLF DB 13, 10, ‘$’ ; xuống dòng
MSG DB ‘Hello World!$’
.Code
MAIN Proc
; khởi đầu cho thanh ghi DS
MOV AX, @Data ; nạp địa chỉ đoạn dữ liệu vào AX
MOV DS, AX ; nạp địa chỉ đoạn dữ liệu vào DS
BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ
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 18
CHƯƠNG 3 – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088
3.5. Khung chương trình hợp ngữ - ví dụ
; xuống dòng
MOV AH, 9
LEA DX, CRLF ; nạp địa chỉ CRLF vào DX
INT 21H
; hiện lời chào dùng hàm 9 của ngắt 21H
MOV AH, 9
LEA DX, MSG ; nạp địa chỉ thông điệp vào DX
INT 21H ; hiện thông điệp
; kết thúc, trở về chương trình gọi dùng hàm 4CH của ngắt 21H
MOV AH, 4CH
INT 21H
MAIN Endp
END MAIN
BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ
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
CHƯƠNG 3 – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088
3.6. 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
BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ
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 20
CHƯƠNG 3 – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088
3.6. 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
1. CMP AX,0
2. JNL GAN
3. NEG AX
4. GAN: MOV BX, AX
Sai
Đúng
Điều kiện
Lệnh
BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ
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 21
CHƯƠNG 3 – LẬP TRÌNH HỢP NGỮ VỚI 8086/8088
3.6. Các cấu trúc điều khiển - IF ... THEN ... ELSE
Gán bít dấu của AX cho CL:
CMP AX, 0 ; AX >0 ?
JNS DG ; đúng
MOV CL, 1 ; không, CL1
JMP RA ; nhảy qua nhánh kia
DG: MOV CL, 0 ; CL0
RA:
Sai Đ...
 

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

Top