Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 26 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
26
Dung lượng
1,28 MB
Nội dung
CHƯƠNG TẬP LỆNH MCS - 51 Chương TẬP LỆNH HỌ VI ĐIỀU KHIỂN MCS-51 I Giới thiệu: Tập lệnh họ MCS-51 tối ưu hóa cho ứng dụng điều khiển bit Tập lệnh có 255 lệnh gồm: - 139 lệnh byte - 92 lệnh byte - 24 lệnh byte - Đa số lệnh qua A, bank ghi, xử lý bit dài 1MC, lệnh khác 2MC, lệnh nhân/chia 4MC Bài giảng môn Vi xử lý GV: Lê Thị Kim Anh Ý nghĩa ký hiệu viết tắt tập lệnh Ký hiệu Ý nghĩa Rn Định địa ghi ghi R0 đến R7 direct Địa trực tiếp bit (00H đến FFH) @Ri Định địa gián tiếp dùng ghi R0 R1 #data Hằng số bit Chú ý: với số HEX bắt đầu chữ phải thêm số phía trước chữ #data16 Hằng số 16 bit Chú ý: với số HEX bắt đầu chữ phải thêm số phía trước chữ rel Offset bit có dấu định địa tương đối addr11 Định địa tuyệt đối 11 bit trang 2K hành addr16 Địa 16 bit src Tốn hạng nguồn (source), Rn, direct,#data @Ri dest Tốn hạng đích (destination), Rn, direct @Ri X Nội dung X Ví dụ: A nội dung ghi A (X) Nội dung nhớ có địa nội dung X Ví dụ: (20H) nội dung nhớ có địa 20H Tham khảo tập lệnh Mnemonic: cú pháp lệnh Instruction code: định dạng mã máy Hexa-Decimal: mã máy(số hex) Explanation: Thao tác lệnh No of MC: thời gian thực thi lệnh Bài giảng môn Vi xử lý GV: Lê Thị Kim Anh II CÁC PHƯƠNG PHÁP ĐỊNH ĐỊA CHỈ - Tức thời (Immediate) - Thanh ghi (Register) - Trực tiếp (Direct) - Gián tiếp (Indirect) - Tương đối (Relative) - Tuyệt đối (Absolute) - Dài (Long) - Chỉ số (Index) Bài giảng môn Vi xử lý GV: Lê Thị Kim Anh ĐỊNH ĐỊA CHỈ TỨC THỜI (#data, #data16) - Toán hạng số, sử dụng dấu # MOV A,#0C4H MOV DPTR,#2000H - Định dạng mã lệnh cho pp byte , trừ trường hợp data16 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 ĐỊNH ĐỊA CHỈ THANH GHI (Rn) - Toán hạng nội dung ghi MOV A, R1 - Định dạng mã lệnh cho pp byte Ví dụ MOV A,R1 Mã máy: E9 Bài giảng môn Vi xử lý GV: Lê Thị Kim Anh ĐỊNH ĐỊA CHỈ TRỰC TIẾP (direct) Truy xuất đến RAM nội ghi chức đặc biệt (ACC(E0H),PSW(D0H),P1(90H), P0(80H)…) Vùng RAM đa dụng Vùng RAM định vị bit Vùng bank ghi Các ghi chức đặc biệt ĐỊNH ĐỊA CHỈ TRỰC TIẾP (direct) - Tốn hạng nội dung nhớ có địa direct MOV MOV A, 40H A, PSW - Định dạng mã lệnh cho pp byte Ví dụ MOV A, 40H Mã máy: E5 40 MOV A, PSW Mã máy: E5 D0 Bài giảng môn Vi xử lý GV: Lê Thị Kim Anh SỰ KHÁC NHAU GIỮA PHƯƠNG PHÁP ĐỊNH ĐỊA CHỈ TRỰC TIẾP VÀ TỨC THỜI MOV A,30H A MOV A,#30H A 30H Trực tiếp 0 1 0 0 Tức thời Bài giảng môn Vi xử lý GV: Lê Thị Kim Anh 10 ĐỊNH ĐỊA CHỈ GIÁN TIẾP (@Ri (i=0,1), @DPTR) - Toán hạng nội dung nhớ có địa chứa ghi R1 0 1 0 0 Internal RAM 7FH 30H 1 1 0 0 A MOV R1,#30H MOV A,@R1 00H - Định dạng mã lệnh cho pp byte Ví dụ MOV A, @R1 Mã máy: E7 Bài giảng môn Vi xử lý GV: Lê Thị Kim Anh 12 SỰ KHÁC NHAU GIỮA PHƯƠNG PHÁP ĐỊNH ĐỊA CHỈ THANH GHI VÀ GIÁN TIẾP MOV A,R1 Thanh ghi A R1 Internal RAM R1 7FH MOV A,@R1 Gián tiếp A 00H Bài giảng môn Vi xử lý GV: Lê Thị Kim Anh 13 ĐỊNH ĐỊA CHỈ TƯƠNG ĐỐI (rel) - Tốn hạng offset (độ dời có dấu bit) - Được sử dụng lệnh nhảy ngắn hoặc rẽ nhánh: SJMP, CJNE, DJNZ, JB, JNB … - Phạm vi thực : -128 ~ +127 - Cách tính offset (độ dời): offset = byte thấp của(đ.chỉ nhảy đến – đ.chỉ lệnh kế (PCHH)) = rel Bài giảng môn Vi xử lý GV: Lê Thị Kim Anh 14 Ví dụ BNCT PCHH 0000H 0000H ……… …… CHƯƠNG TRÌNH …………… PHẠM VI … 0F82H BACK1: … 1000H 1000H SJMP 1002H … BACK2: (-128) BACK1 hoặc BACK2 BACK1 1002H BACK2 (+127) … 1081H … FFFFH - Định dạng mã lệnh cho pp byte Ví dụ SJMP LABEL Giả sử lệnh lưu nhớ vị trí 0100H 0101H hình bên LABEL đặt địa 0107H rel = byte thấp(LABEL – PCHH) = 0107 – 0102 = 05 Mã máy: 80 05 Trường hợp offset số âm LABEL PCHH rel = byte thấp (LABEL – PCHH) = 2038 – 2042 = F6H (-10) Mã máy: 80 F6 Bài giảng môn Vi xử lý GV: Lê Thị Kim Anh 17 ĐỊNH ĐỊA CHỈ TUYỆT ĐỐI (addr11) - Được sử dụng AJMP, ACALL - Phạm vi: trang 2K với địa PC lệnh kế Bài giảng môn Vi xử lý GV: Lê Thị Kim Anh 18 Ví dụ CHƯƠNG TRÌNH PHẠM VI BNCT PCHH 0000H 0000H ……… …… 0FFFH 1000H 1000H 1000H 1006H … …… 1006H ACALL 1008H … DELAY DELAY … END … 17FFH 1800H …… FFFFH - Định dạng mã lệnh cho pp byte Ví dụ CHƯƠNG TRÌNH BNCT PCHH 0000H 0000H ……… …… 2000H 2000H … … …… 2006H 2006H ACALL 2008H … DELAY … END Xem lệnh ACALL chương trình trên, phạm vi nhãn DELAY phép nằm trang nhớ chương trình Giả sử nhãn DELAY đặt địa 20FFH có hợp lý khơng, mã máy tính gì? Địa nhãn: DELAY = 20FFH addr11 a15 a14 a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 0 0 0 1 1 1 1 Mã máy: 11 FF ĐỊNH ĐỊA CHỈ DÀI (addr16) - Được sử dụng LJMP, LCALL - Phạm vi: 64K Ví dụ LJMP LABEL LCALL SUBROUTINE Trong đó: LABEL SUBROUTINE phép đặt vị trí 64K nhớ chương trình Bài giảng môn Vi xử lý GV: Lê Thị Kim Anh 22 - Định dạng mã lệnh cho pp byte Ví dụ Hãy xác định mã máy cho lệnh LJMP MAIN, biết nhãn MAIN đặt địa 2040H Mã máy: 02 20 40 ĐỊNH ĐỊA CHỈ CHỈ SỐ (@A + DPTR , @A + PC) - Sử dụng ghi (PC, DPTR) offset (thanh ghi A) tạo thành địa hiệu dụng cho lệnh MOVC hoặc JMP - Ví dụ lệnh sau: MOVC A, @A+DPTR (addr = DPTR + A) MOVC A, @A+PC (addr = PC +A) JMP @A+DPTR (addr = DPTR + A) - PP có mã lệnh cố định, địa tốn hạng xác định bởi: Ví dụ: với ghi DPTR CHƯƠNG TRÌNH BNCT PCHH 0000H 0000H ……… …… ……… 1000H 1000H MOV A, #n(0÷255) … 1002H MOV DPTR, #TAB 1005H 1005H MOVC A,@A+DPTR 1006H … ……… 10F0H TAB: DB data1,data2,data3… END MOVC A,@A+DPTR : DPTR = 10F0H, giả sử n = Địa thật = 10F0H + = 10F0H A = data1 Ví dụ: với ghi PC CHƯƠNG TRÌNH BNCT PCHH 0000H 0000H ……… …… ……… 1000H 1000H MOV A, #n(0÷255) 1002H ACALL READ_TABLE …… ………… 1080H READ_TABLE: INC 1081H MOVC 1082H RET 1083H TAB: A A,@A+PC DB data1,data2,data3… … MOVC A,@A+PC : PCHH = 1082H, giả sử n = Địa thật = 1082H + = 1083H A = data1 ... giảng môn Vi xử lý GV: Lê Thị Kim Anh SỰ KHÁC NHAU GIỮA PHƯƠNG PHÁP ĐỊNH ĐỊA CHỈ TRỰC TIẾP VÀ TỨC THỜI MOV A ,30 H A MOV A, #30 H A 30 H Trực tiếp 0 1 0 0 Tức thời Bài giảng môn Vi xử lý GV: Lê... môn Vi xử lý GV: Lê Thị Kim Anh 17 ĐỊNH ĐỊA CHỈ TUYỆT ĐỐI (addr11) - Được sử dụng AJMP, ACALL - Phạm vi: trang 2K với địa PC lệnh kế Bài giảng môn Vi xử lý GV: Lê Thị Kim Anh 18 Ví dụ CHƯƠNG... giảng môn Vi xử lý GV: Lê Thị Kim Anh ĐỊNH ĐỊA CHỈ THANH GHI (Rn) - Toán hạng nội dung ghi MOV A, R1 - Định dạng mã lệnh cho pp byte Ví dụ MOV A,R1 Mã máy: E9 Bài giảng môn Vi xử lý GV: