Chương 3 Lập trình hợp ngữ thuộc bài giảng Vi điều khiển giới thiệu đến các bạn những kiến thức về khuôn dạng chương trình hợp ngữ, các ký hiệu đặc biệt, cấu trúc tổng quát của 1 dòng lệnh,... Mời các bạn cùng tham khảo nội dung bài giảng để có thêm tài liệu học tập và nghiên cứu.
Trang 1Chương 3 : LẬP TRÌNH HỢP NGỮ
Trang 2 Ngôn ngữ cấp cao : Sử dụng các từ
và các phát biểu dễ hiểu đối với con người mặc dù còn khá xa mới đạt
được mức độ dễ hiểu như ngôn ngữ tự nhiên Ví dụ C, Pascal
Ngôn ngữ máy (Machine Language) : Là một chuỗi các mã nhị phân được
phần cứng thực thi
Hợp ngữ (Assembly Language) : thay thế các mã nhị phân bằng các từ gợi
nhớ để cho việc lập trình dễ dàng hơn.
Ví dụ : thực hiện việc cộng nội dung của thanh ghi A với nội dung của R7, kết
quả bỏ vào A
Ngôn ngữ cấp cao (C) : 2+5
Hợp ngữ : ADD A,R7
Mã máy : 11101 111B
Trang 3 chỉ dẫn ORG 0H ; địa chỉ bắt đầu
Khởi động Stack MOV SP,#30H
.lệnh 1
Chương
Chính
.lệnh n
Chương trình con:
RET
Kết thúc CT END
KHUÔN DẠNG CHƯƠNG TRÌNH HỢP
Trang 4Trong 1 chương trình hợp ngữ chứa :
• Các dòng lệnh : Là các mã gợi nhớ của các lệnh thực thi được (MOV)
• Các chỉ dẫn : là các lệnh của trình dịch hợp ngữ dùng để định nghĩa cấu trúc chương trình (ORG, END)
• Các điều khiển : Thiết lập chế độ của trình dịch hợp ngữ và các luồng hợp dịch trực tiếp Phải được đứng trước bởi $
• Các chú thích : đưa ra các giải thích về mục đích và họat động của các chuỗi
Trang 5[Trường nhãn] [Trường mã gợi nhơ] [Trường toán hạng] [Trường chú thích]
- Trường nhãn : Biểu thị địa chỉ của
lệnh theo sau
- Trường mã gợi nhớ : Là các mã gợi nhớ của lệnh : ADD
- Trường toán hạng :Chứa địa chỉ hoặc dữ liệu mà lệnh sẽ sử dụng
- Trường chú thích : Là các ghi chú làm rõ chương trình Phải được bắt đầu
bằng dấu ;
Trang 6• Điều khiển trạng thái : ORG, END
• Định nghĩa ký hiệu : EQU
• Dành trước vùng nhớ / khởi động
vùng nhớ DBIT, DB, DW
ORG (Set origin)
Cú pháp : ORG Biểu thức
ORG thay đổi nội dung bộ đếm vị trí để thiết lập một gốc mới của chương trình cho các phát biểu theo sau
Ví dụ : ORG 100h ; bộ đếm vị trí được thiết lập bằng100h
Trang 7END : Cú pháp END Đây là phát biểu cuối cùng của chương trình nguồn
EQU (Equal) : Dùng để gán giá trị số cho tên ký hiệu được định nghĩa
Hang EQU 50 ; Hang có giá trị là 50
Message EQU ‘chao cac ban’
DB (Define Byte) : khởi động vùng nhớ mã cùng với các giá trị của byte
nhãn : DB biểu thức 1, biểu thức 2…
SQUARE: DB 0, 1, 4, 9, 16, 25
DW (Define word) : Giống như DB ngọai trừ
2 byte được gán cho mỗi thành phần dữ liệu
Trang 8- Nhảy tại chỗ $
ADD A, @R0 MOVC A, @A+ PC
MOV A, #0FFh
MOV A, 45h
Các ký hiệu tiền định nghĩa có thể được sử dụng thay cho địa chỉ các thanh ghi đặc biệt
99h
Trang 9- Địa chỉ bit :
Có 3 cách để xác định địa chỉ bit + Dùng địa chỉ bit đã biết trước + Sử dụng toán tử dot (.) giữa địa chỉ byte và vị trí bit
+ Sử dụng ký hiệu tiền định nghĩa
Ví dụ :
SETB 0E7h SETB ACC.7
Trang 10- LẬP TRÌNH HIỂN THỊ LED
- LẬP TRÌNH ĐIỀU KHIỂN LED