Tập lệnh vi điều khiển 8051 STT Mã Số chu máy kỳ máy Mã gợi nhớ Chức A Nhóm lệnh chuyển số liệu 10 11 12 13 14 15 16 17 18 19 20 21 22 CLR MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV A A R0 R1 R2 R3 R4 R5 R6 R7 @R0 @R1 addr DPTR A A A A A A A A , , , , , , , , , , , , , , , , , , , , , #data #data #data #data #data #data #data #data #data #data #data #data #data16 R0 R1 R2 R3 R4 R5 R6 R7 E4 74 78 79 7A 7B 7C 7D 7E 7F 76 77 75 90 E8 E9 EA EB EC ED EE EF 2 2 2 2 2 2 1 1 1 1 Xoá trực tiếp nội dung chứa Chuyển trực tiếp số liệu byte thứ hai lệnh vào chứa Chuyển trực tiếp số liệu byte thứ hai lệnh vào ghi Ri băng ghi đợc chọn Chuyển trực tiếp số liệu byte thứ hai lệnh vào ghi có địa đợc trỏ ghi R0 (R1) băng ghi đợc chọn Chuyển trực tiếp số liệu vào ghi Nạp trực tiếp giá trị địa 16 bit cho trỏ liệu DPTR Chuyển trực tiếp nội dung ghi Ri băng ghi đợc chọn sang chứa 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R0 R1 R2 R3 R4 R5 R6 R7 A A @R0 @R1 adr A R0 R1 R2 R3 R4 R5 R6 R7 adr adr adr adr adr adr adr adr , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , A A A A A A A A @R0 @R1 A A A adr adr adr adr adr adr adr adr adr R0 R1 R2 R3 R4 R5 R6 R7 F8 F9 FA FB FC FD FE FF E6 E7 D6 D7 F5 E5 A8 A9 AA AB AC AD AE AF 88 89 8A 8B 8C 8S 8E 8F 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 Chuyển nội dung chứa sang ghi Ri băng ghi đợc chọn Chuyển nội dung ghi có địa đợc trỏ nội dung ghi R0 (R1) băng ghi đợc chọn sang chứa Chuyển nội dung chứa sang ghi có địa đợc trỏ nội dung ghi R0 (R1) băng ghi đợc chọn Chuyển nội dung chứa sang ghi Chuyển nội dung ghi sang chứa Chuyển nội dung ghi có địa trực tiếp sang ghi Ri băng ghi đợc chọn Chuyển nội dung ghi Ri băng ghi đợc chọn sang ghi có địa trực tiếp 53 54 55 56 57 MOV MOV MOV MOV MOV 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 PUSH POP MOVX MOVX MOVX MOVX MOVX MOVX MOVC MOVC XCH XCH XCH XCH XCH XCH XCH XCH XCH XCH XCH XCHD XCHD SWAP adr adr @R0 @R1 adr1 adr adr A A @R0 @R1 A @DPTR A A A A A A A A A A A A A A A A , , , , , , , , , , , , , , , , , , , , , , , , , , @R0 @R1 adr adr adr2 @R0 @R1 A A @DPTR A @A+DPTR @A+PC adr R0 R1 R2 R3 R4 R5 R6 R7 @R0 @R1 @R0 @R1 86 87 A6 A7 85 2 2 C0 D0 E2 E3 F2 F3 E0 F0 93 E3 C5 C8 C9 CA CB CC CD CE CF C6 C7 D6 D7 C4 2 2 2 2 2 1 1 1 1 1 1 1 Chuyển nội dung ghi có địa đợc trỏ nội dung ghi R0 (R1) sang ghi có địa trực tiếp Chuyển nội dung ghi có địa trực tiếp sang ghi có địa đợc trỏ nội dung ghi R0 (R1) Chuyển nội dung ghi có địa trực tiếp sang ghi khác có địa trực tiếp Cất nội dung ghi có địa trực tiếp vào ngăn xếp Trả nội dung ghi có địa trực tiếp từ ngăn xếp Chuyển nội dung ô nhớ cóđịa phần thấp trỏ nội dung R0 R1 phần cao xác định cổng P2 sang chứa Chuyển nội dung chứa sang ô nhớ cóđịa phần thấp trỏ nội dung R0 R1 phần cao xác định cổng P2 Chuyển nội dung chứa sang ô nhớ có địa xác định trỏ dã liệu ngợc lại Chuyển nội dung ô nhớ có địa tổng nội dung chứa trỏ liệu đếm chơng trình vào chứa Trao đổi nội dung chứa với ghi có địa trực tiếp Trao đổi nội dung chứa với ghi Ri băng ghi đợc chọn Trao đổi nội dung chứa với ghi có địa trỏ nội dung R0 R1 Trao đổi nội dung nửa thấp chứa với ghi có địa trỏ nội dung R0 R1 Xoay đổi vị trí nửa thấp nửa cao chứa B Nhóm lệnh logic 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 ANL ANL ANL ANL ANL ANL ANL ANL ORL ORL ORL ORL ORL ORL ORL ORL XRL XRL XRL XRL XRL XRL XRL XRL ANL ANL ORL ORL XRL XRL A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , R0 R1 R2 R3 R4 R5 R6 R7 R0 R1 R2 R3 R4 R5 R6 R7 R0 R1 R2 R3 R4 R5 R6 R7 @R0 @R1 @R0 @R1 @R0 @R1 58 59 5A 5B 5C 5D 5E 5F 48 49 4A 4B 4C 4D 4E 4F 68 69 6A 6B 6C 6D 6E 6F 56 57 46 47 66 67 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Thực phép (AND) logic nội dung chứa với nội dung ghi Ri băng ghi đợc chọn, kết lu chứa Thực phép (OR) logic nội dung chứa với nội dung ghi Ri băng ghi đợc chọn, kết lu chứa Thực phép loại trừ (EXCLUSIVE-OR) logic nội dung chứa với nội dung ghi Ri băng ghi đợc chọn, kết lu chứa Thực phép (AND) logic chứa với ghi có địa nội dung R0 (R1), kết lu chứa Thực phép (OR) logic chứa với ghi có địa nội dung R0 (R1), kết lu chứa Thực phép loại trừ logic chứa với ghi có địa nội dung R0 (R1), kết lu chứa 112 113 114 115 116 117 118 119 120 121 122 123 124 ANL ORL XRL ANL ORL XRL ANL ORL XRL ANL ORL XRL CPL A A A A A A adr adr adr adr adr adr A , , , , , , , , , , , , #data #data #data adr adr adr A A A #data #data #data 54 44 64 55 45 65 52 42 62 53 43 63 F4 2 2 2 2 2 2 Thực phép (AND), (OR), loại trừ (XOR) logic chứa với số liệu tức thời, kết lu chứa 28 29 2A 2B 2C 2D 2E 2F 38 39 3A 3B 3C 3D 3E 3F 1 1 1 1 1 1 1 1 Cộng nội dung chứa với ghi Ri băng ghi đợc chọn Kết lu vào chứa Thực phép (AND), (OR), loại trừ (XOR) logic chứa với số liệu tức thời, kết lu chứa Thực phép (AND), (OR), loại trừ logic chứa với ghi có địa trực tiếp, kết lu vào ghi Thực phép (AND), (OR), loại trừ ghi có địa trực tiếp với số liệu tực thời, kết lu vào ghi Lấy bù (đảo) nội dung chứa C Nhóm lệnh số học 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 ADD ADD ADD ADD ADD ADD ADD ADD ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC A A A A A A A A A A A A A A A A , , , , , , , , , , , , , , , , R0 R1 R2 R3 R4 R5 R6 R7 R0 R1 R2 R3 R4 R5 R6 R7 Cộng có nhớ (cộng cờ nhớ C) nội dung chứa với ghi Ri ciat băng ghi đợc chọn Kết lu vào chứa 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 ADD ADD ADDC ADDC ADD ADDC ADD ADDC DA SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB MUL A A A A A A A A A A A A A A A A A A A A A AB 163 DIV 164 165 166 167 168 169 INC INC INC INC INC INC , , , , , , , , @R0 @R1 @R0 @R1 #data #data adr adr 26 27 36 37 24 34 25 35 57 98 99 9A 9B 9C 9D 9E 9F 96 97 94 95 A4 1 1 1 1 1 1 1 1 1 1 , , , , , , , , , , , , R0 R1 R2 R3 R4 R5 R6 R7 @R0 @R1 #data adr AB 84 R0 R1 R2 R3 R4 R5 08 09 0A 0B 0C 0D 1 1 1 Cộng nội dung chứa với ghi có địa trỏ bới R0 (R1) Kết lu vào chứa Cộng có nhớ nội dung chứa với ghi có địa trỏ bới R0 (R1) Kết lu vào chứa Cộng (có nhớ) nội dung chứa với số liệu tức thời, kết qủa lu chứa Cộng (có nhớ) nội dung chứa với ghi có địa chỉa trực tiếp, kết qủa lu chứa Hiệu chỉnh thập phân nội dung chứa Lấy nội dung chứa trừ nội dung ghi Ri băng ghi đợc chọn, kết lu vào chứa Lấy nội dung chứa trừ nội dung ghi có địa trỏ R0 (R1), kết lu vào chứa Lấy nội dung chứa trừ số liệu tức thời, kết lu vào chứa Lấy nội dung chứa trừ ghi địa trực tiếp Nhân nội dung chứa với ghi B, phần thấp kết lu chứa, phần cao lu ghi B Chia nội dung chứa cho ghi B, kết chứa chứa số d lu chi B Tăng nội dung ghi Ri băng ghi đợc chọn thêm 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 INC INC DEC DEC DEC DEC DEC DEC DEC DEC INC DEC INC INC DEC DEC INC DEC INR RR RL RRC RLC R6 R7 R0 R1 R2 R3 R4 R5 R6 R7 A A @R0 @R1 @R0 @R1 adr adr DPTR A A A A 0E 0F 18 19 1A 1B 1C 1D 1E 1F 04 14 06 07 16 17 05 15 A3 03 23 13 33 1 1 1 1 1 1 1 1 1 1 1 Tăng nội dung chứa thêm Giảm nội dung chứa Tăng nội dung ghi có địa trỏ nội dung ghi R0 (R1) lên Giảm nội dung ghi có địa trỏ nội dung ghi R0 (R1) Tăng nội dung ghi có địa trực tiếp thêm Giảm nội dung ghi có địa trực tiếp Tăng trỏ liệu lên Quay phải nội dung chứa Quay trái nội dung chứa Quay phải nội dung chứa có qua cờ nhớ Quay trái nội dung chứa có qua cờ nhớ C3 B3 D3 C2 B2 D2 1 1 1 Xoá cờ nhớ Lấy bù (đảo) cờ nhớ Lập cờ nhớ lên Xoá bit Lấy bù (đảo) bit Lập bit lên Giảm nội dung ghi Ri băng ghi đợc chọn D Nhóm lệnh xử lý bit 193 194 195 196 197 198 CLR CPL SETB CLR CPL SETB C C C bit bit bit 199 200 201 202 203 204 MOV MOV ANL ANL ORL ORL C bit C C C C , , , , , , bit C bit /bit bit /bit A2 92 82 B0 72 A0 1 1 1 Chuyển nội dung bit sang cờ nhớ Chuyển nội dung cờ nhớ sang bit Thực phép logic cờ nhớ bit, kết lu cờ nhớ Thực phép logic cờ nhớ đảo bit, kết lu cờ nhớ Thực phép logic cờ nhớ bit, kết lu cờ nhớ Thực phép logic cờ nhớ đảo bit, kết lu cờ nhớ 02 01 21 41 61 81 A1 C1 E1 80 73 10 20 30 40 50 60 70 B4 B5 B8 B9 BA 2 2 2 2 2 2 2 2 2 2 2 Nhảy đến địa 16 bit Nhảy đến địa tuyệt đối Địa nhảy đến đợc kết hợp nh sau: bit cao PC, bit cao (bit 5, bit6 bit 7) byte mã lệnh 8bit byte thứ hai lệnh Nh lênh thực nhảy khoảng địa 11 bit tức 2K nhớ chơng trình địa lệnh sau lệnh AJMP E Nhóm lệnh rẽ nhánh (Nhảy) 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 LJMP AJMP AJMP AJMP AJMP AJMP AJMP AJMP AJMP SJMP JMP JBC JB JNB JC JNC JZ JNZ CJNE CJNE CJNE CJNE CJNE adr adr11 adr11 adr11 adr11 adr11 adr11 adr11 adr11 rel @A+DPTR bit bit bit rel rel rel rel A,#data A,adr R0,#data R1,#data R2,#data , , , rel rel rel , , , , , rel rel rel rel rel Nhảy khoảng 128 byte phía trứơc 127 byte phía sau lệnh Nhảy đến địa có giá trị tổng nội dung chứa với DPTR Nhảy tơng đối khoảng -128/+127 byte bit =1 xoá bit Nhảy tơng đối khoảng -128/+127 byte bit =1 Nhảy tơng đối khoảng -128/+127 byte bit =0 Nhảy tơng đối khoảng -128/+127 byte cờ nhớ =1 Nhảy tơng đối khoảng -128/+127 byte cờ nhớ =0 Nhảy tơng đối khoảng -128/+127 byte chứa =0 Nhảy tơng đối khoảng -128/+127 byte chứa khác Nhảy tơng đối nội dung chứa khác số liệu tức thời Nhảy tơng đối nội dung chứa khác ghi địa trực tiếp Nhảy tơng đối nội dung ghi Ri băng ghi đợc chọn khác số liệu tức thời 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 CJNE CJNE CJNE CJNE CJNE CJNE CJNE DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ 244 245 246 247 248 249 250 251 252 253 254 255 LCALL ACALL ACALL ACALL ACALL ACALL ACALL ACALL ACALL RETI RET NOP R3,#data R4,#data R5,#data R6,#data R7,#data @R0,#data @R1,#data R0 R1 R2 R3 R4 R5 R6 R7 adr adr , , , , , , , , , , , , , , , , , , , , , , , , rel rel rel rel rel rel rel rel rel rel rel rel rel rel rel rel adr adr adr adr adr adr adr adr BB BC BD BE BF B6 B7 D8 D9 DA DB DC DD DE DF D5 2 2 2 2 2 2 2 2 12 11 31 51 71 91 B1 D1 F1 32 22 00 2 2 2 2 2 Nhảy tơng đối nội dung ghi đợc trỏ R0 (R1) khác số liệu tức thời Giảm nội dung ghi Ri băng ghi đợc chọnvà nhảy tơng đối nội dung ghi cha Giảm nội dung ghi có địa trực tiếp nhảy tơng đối nội dung ghi cha Gọi chơng trình có địa 16 bit đợc xác định lệnh Gọi chơng trình có địa tuyệt đối 11 bit Tăng PC thêm để 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) tăng SP thêm Địa gọi chơng trình xác định bit cao PC cũ, bit cao byte mã lệnh 8bit byte thứ hai lệnh Trở từ chơng trình phục vụ ngắt Lập lại PC từ ngăn xếp, giảm SP Trở từ chơng trình Lập lại PC từ ngăn xếp, giảm SP Không làm Các cờ ghi không bị ảnh hởng