BÀI GIẢNG LÝ THUYẾT VI XỬ LÝ

20 4 0
BÀI GIẢNG LÝ THUYẾT VI XỬ LÝ

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ÐẠI HỌC CƠNG NGHIỆP TP HỒ CHÍ MINH KHOA CƠNG NGHỆ ðIỆN TỬ BỘ MÔN ðIỆN TỬ CÔNG NGHIỆP BÀI GIẢNG LÝ THUYẾT VI XỬ LÝ Giáo viên: PHẠM QUANG TRÍ TP HỒ CHÍ MINH THÁNG 0909-2009 ÐẠI HỌC CƠNG NGHIỆP TP HỒ CHÍ MINH KHOA CƠNG NGHỆ ðIỆN TỬ BỘ MƠN ðIỆN TỬ CƠNG NGHIỆP CHƯƠNG LẬP TRÌNH HỢP NGỮ CHO 8051 CÁC KIỂU ðỊNH ðỊA CHỈ CÁC KIỂU ðỊNH ðỊA CHỈ ðịnh ñịa ghi (Register Addressing) ðược dùng ñể truy xuất liệu ghi từ R0 ñến R7 Số byte lệnh lệnh:: byte byte Cấu trúc lệnh: lệnh: Ví dụ: dụ: ADD A, R5 ⇒ Lệnh cộng nội dung ghi A với nội dung ghi R5 (Giả sử: sử: (A)= (A)=05 05H, H, (R5 (R5)= )=9 9AH) AH) ⇒ Mã lệnh lệnh:: ⇒ Mô tả lệnh lệnh:: CÁC KIỂU ðỊNH ðỊA CHỈ ðịnh ñịa trực tiếp (Direct Addressing) ðược dùng ñể truy xuất liệu ô nhớ RAM nội (00H 00H - 7FH) FH) SFR (A, B, P0, P1, P2, P3, DPH, DPL, …) hay (80H 80H - FFH FFH)) Số byte lệnh lệnh:: byte byte Cấu trúc lệnh: lệnh: Ví dụ: dụ: ADD A, P1 ADD A, 90H 90H ⇒ Lệnh cộng nội dung ghi A với nội dung Port hay ô nhớ 90H 90H (Giả sử: sử: (A) = 05H, 05H, (P (P1 1) = (90H) 90H) = 9AH) AH) ⇒ Mã lệnh lệnh:: ⇒ Mô tả lệnh lệnh:: CÁC KIỂU ðỊNH ðỊA CHỈ ðịnh ñịa gián tiếp (Indirect Addressing) ðược dùng ñể truy xuất liệu nhớ RAM nội có ñịa thay ñổi liên tục chương trình ñang chạy chạy R0 R1 hoạt ñộng trỏ nội dung chúng ñịa ô nhớ RAM cần truy xuất xuất Số byte lệnh lệnh:: byte byte Cấu trúc lệnh: lệnh: Ví dụ: dụ: ADD A, @R0 ⇒ Lệnh cộng nội dung ghi A với nội dung nhớ có địa chứa ghi R0 (Giả sử sử:: (A) = 05H, 05H, (R0 (R0) = 3BH, (3BH) = 9AH) AH) ⇒ Mã lệnh lệnh:: ⇒ Mô tả lệnh lệnh:: CÁC KIỂU ðỊNH ðỊA CHỈ ðịnh ñịa tức thời (Immediate Addressing) ðược dùng ñể truy xuất số (giá tr bi t tr c) c) thay biến (giá tr không bi t tr c) c) kiểu định địa trên Có thể dùng để nạp liệu vào nhớ ghi (ñối với ghi bit: bit: #00H 00H - #0FFH FFH,, ñối với ghi 16 bit: bit: #0000 0000H H - #0FFFFH FFFFH)) Số byte lệnh lệnh:: byte byte Cấu trúc lệnh: lệnh: Ví dụ: dụ: ADD A, #9AH ⇒ Lệnh cộng nội dung ghi A với giá trị 9AH AH (Giả sử sử:: (A) = 05H 05H) ⇒ Mã lệnh lệnh:: ⇒ Mô tả lệnh lệnh:: CÁC KIỂU ðỊNH ðỊA CHỈ ðịnh ñịa tương ñối (Relative Addressing) ðược sử dụng cho lệnh nhảy (rẽ nhánh) ðịa tương ñối (hay (hay offset) offset) giá trị bit có dấu dấu Tầm nhảy giới hạn là: -128 byte … 127 byte từ vị trí lệnh sau lệnh nhảy Số byte lệnh: byte byte Cấu trúc lệnh: CÁC KIỂU ðỊNH ðỊA CHỈ ðịnh ñịa tương ñối (Relative Addressing) (Giả sử: nhãn AAA ñặt Ví dụ 1: SJMP AAA ⇒ Lệnh nhảy ñến nhãn AAA (Giả trước lệnh ñịa 0107H, lệnh SJMP nằm nhớ ñịa 0100H 0101H) 0101H) ⇒ Mã lệnh lệnh:: ⇒ Mô tả lệnh lệnh:: CÁC KIỂU ðỊNH ðỊA CHỈ ðịnh ñịa tương ñối (Relative Addressing) (Giả sử: nhãn AAA ñặt Ví dụ 2: SJMP AAA ⇒ Lệnh nhảy ñến nhãn AAA (Giả trước lệnh ñịa 203BH, lệnh SJMP nằm nhớ ñịa 2040H 2041H) 2041H) ⇒ Mã lệnh lệnh:: ⇒ Mô tả lệnh lệnh:: CÁC KIỂU ðỊNH ðỊA CHỈ ðịnh ñịa tuyệt ñối (Absolute Addressing) ðược sử dụng cho lệnh nhảy (rẽ nhánh): ACALL AJMP AJMP ðịa tuyệt ñối giá trị 11 bit bit Tầm nhảy giới hạn là: trang 2KB hành hành Số byte lệnh: byte byte Cấu trúc lệnh: CÁC KIỂU ðỊNH ðỊA CHỈ ðịnh ñịa tuyệt ñối (Absolute Addressing) (Giả sử: nhãn AAA đặt Ví dụ: AJMP AAA ⇒ Lệnh nhảy ñến nhãn AAA (Giả trước lệnh ñịa 0F46H, lệnh AJMP nằm nhớ ñịa 0900H 0901H) 0901H) ⇒ Mã lệnh lệnh:: CÁC KIỂU ðỊNH ðỊA CHỈ ðịnh ñịa tuyệt ñối (Absolute Addressing) ⇒ Mô tả lệnh lệnh:: CÁC KIỂU ðỊNH ðỊA CHỈ ðịnh ñịa dài (Long Addressing) ðược sử dụng cho lệnh nhảy (rẽ nhánh): LCALL LJMP LJMP ðịa dài giá trị 16 bit bit Tầm nhảy giới hạn là: tồn khơng gian nhớ 64KB 64KB Số byte lệnh: byte byte Cấu trúc lệnh: CÁC KIỂU ðỊNH ðỊA CHỈ ðịnh ñịa dài (Long Addressing) (Giả sử: nhãn AAA đặt Ví dụ: LJMP AAA ⇒ Lệnh nhảy ñến nhãn AAA (Giả trước lệnh ñịa A209H, lệnh LJMP nằm nhớ ñịa 0100H, 0101H 0102H) 0102H) ⇒ Mã lệnh lệnh:: ⇒ Mô tả lệnh lệnh:: CÁC KIỂU ðỊNH ðỊA CHỈ ðịnh ñịa chỉ số (Indexed Addressing) ðược dùng ứng dụng cần tạo bảng nhảy hay bảng tìm kiếm kiếm Kiểu định địa dùng ghi (PC hay DPTR DPTR)) kết hợp với offset (A) ñể tạo thành dạng ñịa cho lệnh lệnh:: JMP MOVC MOVC Số byte lệnh lệnh:: byte byte Cấu trúc lệnh: lệnh: Ví dụ: dụ: JMP @A+DPTR ⇒ Lệnh nhảy gián tiếp (Giả sử sử:: (A) = 25H 25H (DPTR) = 1234 1234H H ) (A) + (DPTR) = 25H + 1234H = 1259H ⇒ Vậy chương trình nhảy đến thực thi lệnh ñịa 1259H CÁC KIỂU ðỊNH ðỊA CHỈ ðịnh ñịa ghi (Register Addressing) ðịnh ñịa trực tiếp (Direct Addressing) ðịnh ñịa gián tiếp (Indirect Addressing) ðịnh ñịa tức thời (Immediate Addressing) ðịnh ñịa tương ñối (Relative Addressing) ðịnh ñịa tuyệt ñối (Absolute Addressing) ðịnh ñịa dài (Long Addressing) ðịnh ñịa chỉ số (Indexed Addressing) TẬP LỆNH CỦA 8051 Giới thiệu tập lệnh 8051 8051:: Tối ưu hóa cho ứng dụng điều khiển bit bit Có nhiều kiểu ñịnh ñịa ñể truy xuất liệu liệu Hỗ trợ ứng dụng ñiều khiển bit bit Tập lệnh gồm 255 lệnh lệnh:: • 139 lệnh có độ dài byte byte • 92 lệnh có độ dài byte byte • 24 lệnh có độ dài byte byte Tập lệnh chia làm nhóm nhóm:: • • • • • Nhóm lệnh số học (Arithmetic Operations) Operations) Nhóm lệnh logic (Logical Operations) Operations) Nhóm lệnh di chuyển liệu (Data Transfer) Transfer) Nhóm lệnh xử lý bit (Boolean Variable Manipulation) Manipulation) Nhóm lệnh rẽ nhánh (Program Branching) Branching) TẬP LỆNH CỦA 8051 Một số ký hiệu dùng lệnh : Rn direct @Ri source dest #data #data16 bit rel addr11 addr16 ←… (…) ((…)) rrr i dddddddd aaaaaaaa eeeeeeee ðịa ghi sử dụng (R0 (R0 – R7) R7) ðịa trực tiếp byte RAM nội ðịa gián tiếp sử dụng (R0 (R0 R1) R1) Toán hạng nguồn (Rn, (Rn, direct @Ri) @Ri) Tốn hạng đích (Rn, (Rn, direct @Ri) @Ri) Hằng số bit Hằng số 16 bit ðịa trực tiếp bit (địa (địa bit) bit) Offset bit có dấu ðịa 11 bit ðịa 16 bit ðược thay … Nội dung … Nội dung ñược chứa … Thanh ghi dãy ghi (R0 (R0 - R7) R7) ðịa gián tiếp sử dụng (R0 R1) Các bit liệu Các bit ñịa ðịa tương ñối TẬP LỆNH CỦA 8051 NHÓM LỆNH SỐ HỌC Lệnh cộng (Add): (Add): ADD A,

Ngày đăng: 06/09/2021, 15:29

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan