Nhóm lệnh chuyển số liệu 1 CLR A E4 1 Xoá trực tiếp nội dung thanh chứa 2 MOV A , #data 74 2 Chuyển trực tiếp số liệu là byte thứ hai của lệnh vào thanh chứa Chuyển trực tiếp số liệu là
Trang 1Tập lệnh vi điều khiển 8051
máy
Số chu
A Nhóm lệnh chuyển số liệu
1 CLR A E4 1 Xoá trực tiếp nội dung thanh chứa
2 MOV A , #data 74 2 Chuyển trực tiếp số liệu là byte thứ hai của lệnh vào thanh chứa
Chuyển trực tiếp số liệu là byte thứ hai của lệnh vào thanh ghi Ri của băng thanh ghi đang đ−ợc chọn
Chuyển trực tiếp số liệu là byte thứ hai của lệnh vào thanh ghi trong có địa chỉ đ−ợc trỏ bởi thanh ghi R0 (R1) của băng thanh ghi đang đ−ợc chọn
13 MOV addr , #data 75 2 Chuyển trực tiếp số liệu vào thanh ghi trong
14 MOV DPTR , #data16 90 2 Nạp trực tiếp giá trị địa chỉ 16 bit cho con trỏ dữ liệu DPTR
Chuyển trực tiếp nội dung của thanh ghi Ri của băng thanh ghi đang đ−ợc chọn sang thanh chứa
Trang 223 MOV R0 , A F8 1
Chuyển nội dung của thanh chứa sang thanh ghi Ri của băng thanh ghi đang
đ−ợc chọn
Chuyển nội dung của thanh ghi trong có địa chỉ đ−ợc trỏ bởi nội dung thanh ghi R0 (R1) của băng thanh ghi đang đ−ợc chọn sang thanh chứa
Chuyển nội dung của thanh chứa sang thanh ghi trong có địa chỉ đ−ợc trỏ bởi nội dung thanh ghi R0 (R1) của băng thanh ghi đang đ−ợc chọn
35 MOV adr , A F5 1 Chuyển nội dung của thanh chứa sang thanh ghi trong
36 MOV A , adr E5 1 Chuyển nội dung của thanh ghi trong sang thanh chứa
Chuyển nội dung của thanh ghi trong có địa chỉ trực tiếp sang thanh ghi Ri của băng thanh ghi đang đ−ợc chọn
Chuyển nội dung của thanh ghi Ri của băng thanh ghi đang đ−ợc chọn sang thanh ghi trong có địa chỉ trực tiếp
Trang 353 MOV adr , @R0 86 2
Chuyển nội dung của thanh ghi trong có địa chỉ được trỏ bởi nội dung thanh ghi R0 (R1) sang thanh ghi trong có địa chỉ trực tiếp
Chuyển nội dung của thanh ghi trong có địa chỉ trực tiếp sang thanh ghi trong
có địa chỉ được trỏ bởi nội dung thanh ghi R0 (R1)
57 MOV adr1 , adr2 85 2 Chuyển nội dung của thanh ghi trong có địa chỉ trực tiếp sang thanh ghi trong
khác có địa chỉ trực tiếp
58 PUSH adr C0 2 Cất nội dung của thanh ghi trong có địa chỉ trực tiếp vào ngăn xếp
59 POP adr D0 2 Trả nội dung của thanh ghi trong có địa chỉ trực tiếp từ ngăn xếp
Chuyển nội dung của ô nhớ ngoài cóđịa chỉ phần thấp trỏ bởi nội dung của R0 hoặc R1 phần cao xác định bởi cổng P2 sang thanh chứa
Chuyển nội dung của thanh chứa sang ô nhớ ngoài cóđịa chỉ phần thấp trỏ bởi nội dung của R0 hoặc R1 phần cao xác định bởi cổng P2
Chuyển nội dung của thanh chứa sang ô nhớ ngoài có địa chỉ xác định bởi con trỏ dã liệu hoặc ngược lại
Chuyển nội dung của ô nhớ ngoài có địa chỉ là tổng nội dung thanh chứa và con trỏ dữ liệu hoặc bộ đếm chương trình vào thanh chứa
68 XCH A , adr C5 1 Trao đổi nội dung của thanh chứa với thanh ghi trong có địa chỉ trực tiếp
Trao đổi nội dung của thanh chứa với thanh ghi Ri của băng thanh ghi đang
được chọn
Trao đổi nội dung của thanh chứa với thanh ghi trong có địa chỉ trỏ bởi nội dung R0 hoặc R1
Trao đổi nội dung nửa thấp của thanh chứa với thanh ghi trong có địa chỉ trỏ bởi nội dung R0 hoặc R1
81 SWAP A C4 1 Xoay đổi vị trí nửa thấp và nửa cao thanh chứa
Trang 4B Nhóm lệnh logic
Thực hiện phép và (AND) logic nội dung thanh chứa với nội dung thanh ghi
Ri của băng thanh ghi đang được chọn, kết quả lưu trong thanh chứa
Thực hiện phép hoặc (OR) logic nội dung thanh chứa với nội dung thanh ghi
Ri của băng thanh ghi đang được chọn, kết quả lưu trong thanh chứa
Thực hiện phép hoặc loại trừ (EXCLUSIVE-OR) logic nội dung thanh chứa với nội dung thanh ghi Ri của băng thanh ghi đang được chọn, kết quả lưu trong thanh chứa
Thực hiện phép và (AND) logic thanh chứa với thanh ghi trong có địa chỉ là nội dung của R0 (R1), kết quả lưu trong thanh chứa
Thực hiện phép hoặc (OR) logic thanh chứa với thanh ghi trong có địa chỉ là nội dung của R0 (R1), kết quả lưu trong thanh chứa
Thực hiện phép hoặc loại trừ logic thanh chứa với thanh ghi trong có địa chỉ
là nội dung của R0 (R1), kết quả lưu trong thanh chứa
Trang 5112 ANL A , #data 54 2
Thực hiện phép và (AND), và (OR), hoặc loại trừ (XOR) logic thanh chứa với số liệu tức thời, kết quả lưu trong thanh chứa
Thực hiện phép và (AND), và (OR), hoặc loại trừ (XOR) logic thanh chứa với số liệu tức thời, kết quả lưu trong thanh chứa
Thực hiện phép và (AND), và (OR), hoặc loại trừ logic thanh chứa với thanh ghi trong có địa chỉ trực tiếp, kết quả lưu vào thanh ghi trong đó
Thực hiện phép và (AND), và (OR), hoặc loại trừ thanh ghi trong có địa chỉ trực tiếp với số liệu tực thời, kết quả lưu vào thanh ghi trong đó
124 CPL A F4 1 Lấy bù (đảo) nội dung thanh chứa
C Nhóm lệnh số học
Cộng nội dung thanh chứa với thanh ghi Ri của băng thanh ghi đang được chọn Kết quả lưu vào thanh chứa
Cộng có nhớ (cộng cả cờ nhớ C) nội dung thanh chứa với thanh ghi Ri ciat băng thanh ghi đang được chọn Kết quả lưu vào thanh chứa
Trang 6141 ADD A , @R0 26 1
Cộng nội dung thanh chứa với thanh ghi trong có địa chỉ trỏ bới R0 (R1) Kết quả lưu vào thanh chứa
Cộng có nhớ nội dung thanh chứa với thanh ghi trong có địa chỉ trỏ bới R0 (R1) Kết quả lưu vào thanh chứa
Cộng (có nhớ) nội dung thanh chứa với số liệu tức thời, kết qủa lưu trong thanh chứa
Cộng (có nhớ) nội dung thanh chứa với thanh ghi trong có địa chỉa trực tiếp, kết qủa lưu trong thanh chứa
149 DA A 57 1 Hiệu chỉnh thập phân nội dung thanh chứa
Lấy nội dung thanh chứa trừ nội dung thanh ghi Ri của băng thanh ghi đang
được chọn, kết quả lưu vào thanh chứa
Lấy nội dung thanh chứa trừ nội dung thanh ghi trong có địa chỉ trỏ bởi R0 (R1), kết quả lưu vào thanh chứa
160 SUBB A , #data 94 1 Lấy nội dung thanh chứa trừ số liệu tức thời, kết quả lưu vào thanh chứa
161 SUBB A , adr 95 1 Lấy nội dung thanh chứa trừ thanh ghi địa chỉ trực tiếp
162 MUL AB A4 4 Nhân nội dung thanh chứa với thanh ghi B, phần thấp kết quả lưu trong thanh
chứa, phần cao lưu trong thanh ghi B
163 DIV AB 84 4 Chia nội dung thanh chứa cho thanh ghi B, kết quả chứa trong thanh chứa còn
số dư lưu trong thanh chi B
Tăng nội dung thanh ghi Ri của băng thanh ghi đang được chọn thêm 1
Trang 7170 INC R6 0E 1
Giảm nội dung thanh ghi Ri của băng thanh ghi đang đ−ợc chọn đi 1
180 INC A 04 1 Tăng nội dung thanh chứa thêm 1
181 DEC A 14 1 Giảm nội dung thanh chứa đi 1
Tăng nội dung thanh ghi trong có địa chỉ trỏ bởi nội dung thanh ghi R0 (R1) lên 1
Giảm nội dung thanh ghi trong có địa chỉ trỏ bởi nội dung thanh ghi R0 (R1)
đi 1
186 INC adr 05 1 Tăng nội dung thanh ghi trong có địa chỉ trực tiếp thêm 1
187 DEC adr 15 1 Giảm nội dung thanh ghi trong có địa chỉ trực tiếp đi 1
188 INR DPTR A3 1 Tăng con trỏ dữ liệu lên 1
189 RR A 03 1 Quay phải nội dung thanh chứa
190 RL A 23 1 Quay trái nội dung thanh chứa
191 RRC A 13 1 Quay phải nội dung thanh chứa có qua cờ nhớ
192 RLC A 33 1 Quay trái nội dung thanh chứa có qua cờ nhớ
D Nhóm lệnh xử lý bit
Trang 8199 MOV C , bit A2 1 Chuyển nội dung bit sang cờ nhớ
200 MOV bit , C 92 1 Chuyển nội dung cờ nhớ sang bit
201 ANL C , bit 82 1 Thực hiện phép và logic cờ nhớ và bit, kết quả lưu trong cờ nhớ
202 ANL C , /bit B0 1 Thực hiện phép và logic cờ nhớ và đảo của bit, kết quả lưu trong cờ nhớ
203 ORL C , bit 72 1 Thực hiện phép hoặc logic cờ nhớ và bit, kết quả lưu trong cờ nhớ
204 ORL C , /bit A0 1 Thực hiện phép hoặc logic cờ nhớ và đảo của bit, kết quả lưu trong cờ nhớ
E Nhóm lệnh rẽ nhánh (Nhảy)
205 LJMP adr 02 2 Nhảy đến địa chỉ 16 bit
Nhảy đến địa chỉ tuyệt đối Địa chỉ nhảy đến được kết hợp như sau: 5 bit cao của PC, 3 bit cao (bit 5, bit6 và bit 7) của byte mã lệnh và 8bit của byte thứ hai của lệnh Như vậy lênh này thực hiện nhảy trong khoảng địa chỉ 11 bit tức 2K của bộ nhớ chương trình bắt đầu từ địa chỉ của lệnh sau lệnh AJMP
214 SJMP rel 80 2 Nhảy trong khoảng 128 byte về phía trứơc và 127 byte về phía sau lệnh
215 JMP @A+DPTR 73 2 Nhảy đến địa chỉ có giá trị bằng tổng nội dung thanh chứa với DPTR
216 JBC bit , rel 10 2 Nhảy tương đối trong khoảng -128/+127 byte nếu bit =1 và xoá bit về 0
217 JB bit , rel 20 2 Nhảy tương đối trong khoảng -128/+127 byte nếu bit =1
218 JNB bit , rel 30 2 Nhảy tương đối trong khoảng -128/+127 byte nếu bit =0
219 JC rel 40 2 Nhảy tương đối trong khoảng -128/+127 byte nếu cờ nhớ =1
220 JNC rel 50 2 Nhảy tương đối trong khoảng -128/+127 byte nếu cờ nhớ =0
221 JZ rel 60 2 Nhảy tương đối trong khoảng -128/+127 byte nếu thanh chứa =0
222 JNZ rel 70 2 Nhảy tương đối trong khoảng -128/+127 byte nếu thanh chứa khác 0
223 CJNE A,#data , rel B4 2 Nhảy tương đối nếu nội dung thanh chứa khác số liệu tức thời
224 CJNE A,adr , rel B5 2 Nhảy tương đối nếu nội dung thanh chứa khác thanh ghi địa chỉ trực tiếp
Nhảy tương đối nếu nội dung thanh ghi Ri của băng thanh ghi đang được chọn khác số liệu tức thời
Trang 9228 CJNE R3,#data , rel BB 2
Nhảy tương đối nếu nội dung thanh ghi trong được trỏ bởi R0 (R1) của khác
số liệu tức thời
Giảm nội dung thanh ghi Ri của băng thanh ghi đang được chọnvà nhảy tương đối nếu nội dung thanh ghi chưa bằng 0
243 DJNZ adr , rel D5 2 Giảm nội dung thanh ghi có địa chỉ trực tiếp nhảy tương đối nếu nội dung
thanh ghi chưa bằng 0
244 LCALL adr 12 2 Gọi chương trình con có địa chỉ 16 bit được xác định ngay trong lệnh
Gọi chương trình con có địa chỉ tuyệt đối 11 bit Tăng PC thêm 2 để trỏ tới lệnh tiếp sau sau ACALL, cất PC vào ngăn xếp (thấp trước, cao sau) và tăng
SP thêm 2 Địa chỉ gọi chương trình con xác định bởi 5 bit cao của PC cũ, 3 bit cao của byte mã lệnh và 8bit byte thứ hai của lệnh
253 RETI 32 2 Trở về từ chương trình phục vụ ngắt Lập lại PC từ ngăn xếp, giảm SP đi 2
254 RET 22 2 Trở về từ chương trình con Lập lại PC từ ngăn xếp, giảm SP đi 2
255 NOP 00 1 Không làm gì Các cờ và thanh ghi không bị ảnh hưởng