Chương 2 : TẬP LỆNH 89C51
2.1. CÁC CHẾ ĐỘ ĐỊA CHỈ (Addressing Mode) :cho phép
ta xác đònh nguồn và đích của dữ liệu. Khi 1 lệnh được
thực thi và lện này cần dữ liệu, câu hỏi đặt ra “ dữ liệu
chứa ở đâu ? “ các chế độ đòa chỉ trả lời câu hỏi này.
có 8 chế độ đònh đòa chỉnhư sau :
Thanh ghi. (Register)
Ví dụ :
ADD A, R5
Trực tiếp. (Direct)
Ví dụ :
ADD A, 25h
Gián tiếp. (Indirect)
Ví dụ :
ADD A, @R5
Tức thời. (Immediate) Ví dụ :
ADD A, #25h
Tương đối. (Relative)
Ví dụ :
SJMP nhan
Tuyệt đối. (Absolute)
Ví dụ :
AJMP nhan
Dài.
(Long)
Ví dụ :
LJMP nhan
Chỉsố.
(Index)Ví dụ :
MOVC A, @A +PC
Thanh ghi R0 có đòa chỉ00H. Nội dung thanh ghi R0 =12H. 12H
chính là đòa chỉô nhớ. Nội dung của ô nhớ này là 80
80H là opcode của
mã lệnh JMP; 05H
chính là giá trò offset
sẽ cộng với giá trò
trong bộ đếm chương
trình PC để tính đòa
chỉcủa lệnh tiếo
sẽhực hiện.
2.2. TẬP LỆNH 89C51
89c51 là vi xử lý 8 bit. Vì vậy
bộ lệnh gồm có 256 lệnh. Trong
thực tế chỉ có đònh nghóa 255 lệnh.
Bộ lệnh chia thành 5 nhóm :
+ Nhóm lệnh số học.
+ Nhóm lệnh logic.
+ Nhóm lệnh di chuyển dữ liệu.
+ Nhóm lệnh xử lý bit.
+ Nhóm lệnh rẽ nhánh.
2.2.3. Nhóm lệnh chuyển dữ liệu: ( Data
Transfer )
Tro n g ra m n o ä i
MOV
<dest>, <Source>
Các đòa chỉ nằm trong vùng 128 byte cao chỉ
được truy xuất bằng kiểu đònh đòa chỉ gián
tiếp ngọai trừ các thanh ghi chức năng đặt
biệt.
- Giữa 2 thanh ghi
MOV A, R1
- Đưa dữ liệu tức thời vào 1 thanh ghi
MOV A,#15
- Chuyển nội dung nội nhớ vào 1
thanh ghi
MOV A,15H
- Chuyển nội dung vào thanh ghi có
Ở RAM ngoài
Dữ liệu phải được chứa trong thanh
ghi A và đòa chỉ phải chứa ở
trong Ri (i = 0,1) hoặc DPTR
Đ/ c 8 bit Dùng thanh ghi Ri=(0 , 1)
MOV R0 , # 3Eh
MOV A,# 0FFh
MOVX @R0 , A
Đ/ c 16 bit Dùng thanh ghi DPTR
MOV DPTR , # 0123h
MOV A,# 0FFh
MOVX @DPTR, A
2.2.3.3 TRA BẢNG TÌM
KIẾM
Dùng lệnh MOVC (Move Const) :
Truy xuất một bảng có 256 điểm (0
-255). Số của điểm muốn truy xuất
được để trong thanh ghi A (offset). Đòa
chỉ đầu bảng (nền) chứa trong
DPTR. Có 2 chế độ
MOCV A, @ A + PC
; PC ( program
counter) Bộ đếm chương trình
MOVC R1 , @A + DPTR
; DPTR
( data pointer) Con trỏ dữ liệu
2.2.4. NHOÙM CAÙC LEÄNH REÕ
NHAÙNH
2.2.5. NHÓM LỆNH XỬ LÝ BIT
Cho phép thao tác trên từng bit.
SETB
SETB P1.0
CLR
CLR P1.0
NOT
CPL P1.0
ANL
ANL C,#1
ORL
ORL C,15H
MOV
MOV C,#0