Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 15 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
15
Dung lượng
304,33 KB
Nội dung
CHƢƠNG II: TẬP LỆNH 8951 I NHÓM LỆNH DI CHUYỂN DỮ LiỆU: Lệnh di chuyển liệu trực tiếp: - Cú pháp: MOV , Trong đó: : ghi, địa nhớ vùng RAM nội : ghi, địa ô nhớ vùng RAM nội # - Thực hiện: di chuyển nội dung vào - Ví dụ: MOV A, 120 MOV B, #24 MOV 120,#10110010B MOV R3, A MOV P3,#3EH Nhóm lệnh di chuyển liệu gián tiếp: a Liên quan đến vùng nhớ RAM nội: + Lệnh đọc nhớ: - Cú pháp: MOV , @Rp Trong đó: : ghi, ô nhớ Rp: ghi R0 R1 - Thực hiện: lấy nội dung ô nhớ vùng RAM nội có địa nội dung ghi Rp đặt vào - Ví dụ: MOV 120,#47 MOV R1,#120 MOV A,@R1 ; sau thực xong đoạn lệnh nội dung ghi A chứa giá trị 47 + Lệnh ghi nhớ: - Cú pháp: MOV @Rp, Trong đó: : ghi, nhớ # Rp: ghi R0 R1 - Thực hiện: đặt nội dung vào ô nhớ vùng RAM nội có địa nội dung ghi Rp - Ví dụ 1: MOV R0,#100 MOV @R0, #0E3H ; sau thực xong đoạn lệnh nội dung ô nhớ 100 chứa giá trị E3H - Ví dụ 2: MOV A, #49 MOV R1,#127 MOV @R1, A ; (127) = 49 b Liên quan đến vùng nhớ liệu ngoài: + Lệnh đọc nhớ: - Cú pháp: MOVX A, @DPTR - Thực hiện: lấy nội dung nhớ vùng liệu ngồi có địa nội dung ghi DPTR đặt vào ghi A - Ví dụ: MOV DPTR,#1000 MOVX A, @DPTR ; A (1000) + Lệnh đọc nhớ: - Cú pháp: MOVX @DPTR, A - Thực hiện: lấy nội dung A đặt vào ô nhớ vùng liệu ngồi có địa nội dung ghi DPTR - Ví dụ: MOV DPTR,#1000 MOV A, #4EH MOVX @DPTR, A ; ghi giá trị 4EH vào ô nhớ ngồi có địa 1000 c Lệnh liên quan đến vùng nhớ chƣơng trình (đọc mã lệnh): - Cú pháp: MOVC A,@A+DPTR - Thực hiện: lấy nội dung ô nhớ vùng nhớ chương trình có địa nội dung ghi A + DPTR đặt vào ghi A - Ví dụ 1: MOV A,#2 MOV DPTR,#500 MOVC A,@A+DPTR ; A (502) - Ví dụ 2: MOV A, #4 MOV DPTR,#TABLE MOVC A, @A+DPTR TABLE: DB 12H, 4EH, 0C7H, 084H, 055H,…… Nhóm lệnh liên quan đến ngăn xếp: + Ghi vào ngăn xếp: - Cú pháp: PUSH Thanh ghi/ địa - Thực hiện: cất nội dung ghi ô nhớ vào đỉnh ngăn xếp + Đọc ngăn xếp: - Cú pháp: POP Thanh ghi/ địa - Thực hiện: lấy nội dung đỉnh ngăn xếp gán vào ghi, nhớ + ví dụ: MOV A,#100 MOV 100,#3EH PUSH ACC PUSH 100 MOV A, #21H MOV 100, #40 POP 100 POP ACC Lệnh trao đổi liệu: - Cú pháp: XCH A, Trong đó: ghi, nhớ @Rp - Thực hiện: trao đổi nội dung ghi A II NHÓM LỆNH SỐ HỌC Lệnh cộng: a Cộng không nhớ: - Cú pháp: ADD A, Trong đó: ghi, ô nhớ, # @Rp - Thực hiện: A A + b Cộng có nhớ: - Cú pháp: ADDC A, Trong đó: ghi, ô nhớ, # @Rp - Thực hiện: A A + + C Lệnh trừ: - Cú pháp: SUBB A, Trong đó: ghi, nhớ, # @Rp - Thực hiện: A A - - C (carry bit) Lệnh nhân: - Cú pháp: MUL AB - Thực hiện: A * B = BA (B: byte cao của kết quả; A: byte thấp của kết quả) Lệnh chia: - Cú pháp: DIV AB - Thực hiện: A : B = A dư B (A: chứa phần nguyên; B: chứa phần dư) Lệnh tăng đơn vị: - Cú pháp: INC Trong đó: ghi, nhớ - Thực hiện: = + Lệnh giảm đơn vị: - Cú pháp: DEC Trong đó: ghi, nhớ - Thực hiện: = - III NHĨM LỆNH NHẢY: Lệnh nhảy không điều kiện: a Nhảy gần: - Cú pháp: SJMP Trong đó: từ, hay nhóm từ viết liền nhau, theo sau bằng dấu ”:” dùng để đánh dấu vị trí chương trình - Thực hiện: nhày khơng điều kiện đến vị trí chương trình được định , khoảng cách từ lệnh đến không vượt 128 byte mã lệnh b Nhảy xa: - Cú pháp: LJMP - Thực hiện: nhảy đến vị trí được định , nằm vị trí chương trình Lệnh nhảy có điều kiện: a Lệnh so sánh và nhảy nếu không bằng (compare and jump if not equal) - Cú pháp: CJNE A, , Trong ghi, ô nhớ # - Thực hiện: So sánh A , nếu: + A ≠ : nhảy đến nếu: A > : bit C = A < : bit C = + A = : thực lệnh - Một dạng khác của lệnh: CJNE Ri/@Rp, #, b Lệnh giảm nội dung Ri đơn vị và nhảy nếu bằng zero (decrement Ri by and jump if not zero): - Cú pháp: DJNZ Ri, - Thực hiện: Ri = Ri - 1, nếu: + Ri > 0: nhảy đến + Ri =0: thực lệnh c Lệnh nhảy phụ thuộc vào trạng thái bit kiểm tra: - Cú pháp: JB/ JNB BIT, Trong đó: BIT bit của ghi chân I/O của vi điều khiển - Thực hiện: nhảy đến vị trí chương trình được định BIT bằng bằng d Lệnh nhảy thông qua việc kiểm tra cờ CARRY: - Cú pháp: JC/ JNC - Thực hiện: nhảy đến vị trí chương trình được định C bằng bằng e Lệnh nhảy thông qua việc kiểm tra cờ ZERO: - Cú pháp: JZ/ JNZ - Thực hiện: nhảy đến vị trí chương trình được định Z bằng bằng IV NHÓM LỆNH LOGIC: ANL A, ORL A, XRL A, CLR A ; xóa nội dung ghi A CPL A ; đảo BIT ghi A ; lệnh không thực hiện, bỏ qua gặp lệnh NOP SWAP A ; đảo vị trí bit cao bit thấp ghi A Nhóm lệnh quay vòng: a Quay phải ghi A - Cú pháp: RR A - Thực hiện: Bit >- bit b Lệnh quay trái ghi A: - Cú pháp: RL A - Thực hiện: Bit < - bit c Lệnh quay trái ghi A với cờ C: - Cú pháp: RLC A - Thực hiện: C Bit < - bit d Lệnh quay phải ghi A với cờ C: - Cú pháp: RRC A - Thực hiện: C Bit > - bit V NHÓM LỆNH THAO TÁC BIT: CLR BIT ; xóa BIT = SETB BIT ; đặt BIT = CPL BIT ; đảo nội dung của BIT Lệnh di chuyển BIT - MOV C, BIT ; C BIT - MOV BIT, C ; BIT C VI NHÓM LỆNH LIÊN QUAN ĐẾN CHƢƠNG TRÌNH CON: CALL ; gọi chương trình RET ; kết thúc chương trình RETI ; kết thúc chương trình ngắt ... Trong đó: BIT bit của ghi chân I/O của vi điều khiển - Thực hiện: nhảy đến vị trí chương trình được định BIT bằng bằng d Lệnh nhảy thông qua vi ̣c kiểm tra cờ CARRY: - Cú pháp:... lệnh - Một dạng khác của lệnh: CJNE Ri/@Rp, #, b Lệnh giảm nội dung Ri đơn vi và nhảy nếu bằng zero (decrement Ri by and jump if not zero): - Cú pháp: DJNZ Ri, ... nhảy khơng điều kiện: a Nhảy gần: - Cú pháp: SJMP Trong đó: từ, hay nhóm từ vi t liền nhau, theo sau bằng dấu ”:” dùng để đánh dấu vị trí chương trình - Thực hiện: nhày khơng