Professional Documents
Culture Documents
VXL Chuong3 Tap Lenh 8051 P1
VXL Chuong3 Tap Lenh 8051 P1
TẬP LỆNH
MCS - 51
Chương 3
TẬP LỆNH HỌ VI ĐIỀU KHIỂN MCS-51
I. Giới thiệu:
Tập lệnh của họ MCS-51 được tối ưu hóa cho các ứng dụng
điều khiển 8 bit.
Tập lệnh có 255 lệnh gồm:
- 139 lệnh 1 byte
- 92 lệnh 2 byte
- 24 lệnh 3 byte
- Đa số các lệnh qua A, bank thanh ghi, xử lý bit dài 1MC,
các lệnh khác 2MC, lệnh nhân/chia 4MC
Ví dụ
MOV A,#0C4H
Mã máy: 74 C4
MOV DPTR,#2000H
Mã máy: 98 20 00
Bài giảng môn Vi xử lý
GV: Lê Thị Kim Anh 6
ĐỊNH ĐỊA CHỈ THANH GHI (Rn)
- Toán hạng là nội dung của một thanh
ghi.
MOV A, R1
Mã máy: E9
Vùng RAM đa
dụng
Vùng
RAM
định vị
bit
Vùng
bank
thanh
ghi
Các thanh ghi chức năng đặc biệt
ĐỊNH ĐỊA CHỈ TRỰC TIẾP (direct)
- Toán hạng là nội dung của một ô nhớ có địa chỉ là direct.
MOV A, 40H
MOV A, PSW
- Định dạng mã lệnh cho pp này là 2 byte.
Ví dụ
MOV A, 40H
Mã máy: E5 40
MOV A, PSW
Mã máy: E5 D0
A 30H A 0 0 1 1 0 0 0 0
Internal RAM
R1 0 0 1 1 0 0 0 0
7FH
A 30H 1 1 1 1 0 0 0 0
MOV A,R1
A R1
Thanh ghi
Internal RAM
R1
7FH
MOV A,@R1
Gián tiếp A
00H
offset = byte thấp của(đ.chỉ nhảy đến – đ.chỉ lệnh kế (PCHH)) = rel
FFFFH
- Định dạng mã lệnh cho pp này là 2 byte.
Ví dụ
SJMP LABEL
Giả sử lệnh này được lưu trong
bộ nhớ tại vị trí 0100H và
0101H như hình bên. LABEL
được đặt tại địa chỉ 0107H
LABEL
PCHH
….
END
….. 17FFH
1800H
……
FFFFH
- Định dạng mã lệnh cho pp này là 2 byte.
Ví dụ
BNCT PCHH CHƯƠNG TRÌNH
0000H 0000H
……….. ……
2000H 2000H
…. ….. …….
2006H 2006H ACALL DELAY
2008H ….
….
END
Xem lệnh ACALL trong chương trình trên, phạm vi của nhãn DELAY sẽ
chỉ được phép nằm trong trang nào của bộ nhớ chương trình. Giả sử nhãn
DELAY đặt tại địa chỉ 20FFH thì có hợp lý không, khi đó mã máy được
tính là gì?
Địa chỉ nhãn: DELAY = 20FFH
addr11
Mã máy: 11 FF
ĐỊNH ĐỊA CHỈ DÀI (addr16)
- Được sử dụng trong LJMP, LCALL
- Phạm vi: 64K.
Ví dụ
LJMP LABEL
LCALL SUBROUTINE
Trong đó:
LABEL và SUBROUTINE được phép đặt ở bất cứ vị trí nào
trong 64K bộ nhớ chương trình.
Ví dụ
Hãy xác định mã máy cho lệnh LJMP MAIN, biết rằng nhãn
MAIN được đặt tại địa chỉ 2040H.
Mã máy: 02 20 40
ĐỊNH ĐỊA CHỈ CHỈ SỐ (@A + DPTR , @A + PC)
- Sử dụng một thanh ghi nền (PC, DPTR) và một offset (thanh
ghi A) tạo thành địa chỉ hiệu dụng cho lệnh MOVC hoặc JMP.
- Ví dụ như các lệnh sau:
MOVC A, @A+DPTR (addr = DPTR + A)
MOVC A, @A+PC (addr = PC +A)
JMP @A+DPTR (addr = DPTR + A)
- PP này có mã lệnh cố định, địa chỉ của toán hạng được xác định bởi: