1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài giảng môn vi xử lý chương 3 3

19 6 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 686,11 KB

Nội dung

Nhóm lệnh số học 8051 Võ Thị Thu Hồng Nhóm lệnh số học 8051 Cộng khơng cờ nhớ (ADD) Cộng qua cờ nhớ (ADDC) Trừ (SUBB) Tăng (INC) / giảm (DEC) Nhân (MUL) Chia (DIV) Hiệu chỉnh BCD (DA) Võ Thị Thu Hồng Các lệnh ảnh hưởng cờ Lệnh C Cờ OV AC ADD    ADDC    SUBB    MUL  DIV  DA  Võ Thị Thu Hồng Các lệnh cộng Cộng không cờ nhớ (ADD) Opcode (binary) ADD A, Rn ADD A, direct ADD A, @Ri ADD A, #data Diễn giải Số MC D7 D6 D5 D4 D3 D2 D1 D0 Opcode (HEX) 0 1 n2 n1 n0 28 ÷ 2F A  A + Rn a7 0 a6 a5 a4 0 a3 a2 a1 1 a0 i 25 Byte 26 ÷ 27 A A+(direct) A  A + (Ri) d7 d6 d5 d4 d3 d2 d1 d0 24 Byte A A + data Diễn giải Số MC A  A + Rn + CY A A + (direct) + CY A  A + (Ri) + CY A A + data + CY Mnemonic Cộng qua cờ nhớ ADDC Opcode (binary) D7 D6 D5 D4 D3 D2 D1 D0 Opcode (HEX) 0 1 n2 n1 n0 38 ÷ 3F a7 0 a6 a5 1 a4 a3 a2 a1 1 a0 i 35 Byte 36 ÷ 37 d7 d6 d5 d4 d3 d2 d1 d0 34 Byte Mnemonic ADDC A, Rn ADDC A, direct ADDC A, @Ri ADDC A, #data Võ Thị Thu Hồng 1 Các lệnh cộng (Ví dụ) Lệnh ADD MOV A,#25H; A=25H ADD A,#8BH; A= 25H + 8BH= B0H (Opcode 24H 8BH) C=0 AC=1 AC=1 C=0 OV=0 AC=1 25H + 8BH B0H 0010 0101 + 1000 1011 1011 0000 Võ Thị Thu Hồng (+37) (-117) (-80) Các lệnh cộng (Ví dụ) Lệnh ADD MOV A,# 8CH; A=8CH MOV 6,#0A4H; (06H)= A4H ADD A,R6 ; A=30H (Opcode 2EH) C=1 AC=1 AC=1 C=1 OV=1 Mặc định ghi Rn Bank C=1 1000 1100 + 1010 0100 0011 0000 AC=1 8CH + A4H 30 H Võ Thị Thu Hồng (-116) (-92) (+48) Sai Các lệnh cộng (Ví dụ) Lệnh ADDC MOV A,# 12H; A=12H MOV 4,#0F5H; (04H)= F5H SETB C ; đặt C=1 ADDC A, 4; A=08H (Opcode 35H 04H) C=1 AC=0 AC=0 C=1 OV=0 0001 0010 + 1111 0101 (C) 0000 1000 Võ Thị Thu Hồng 12H + F5H (C) H Các lệnh cộng (Ví dụ) Cộng số nhị phân 16 bits C=1 (4) MOV A, R1 R1 X1 C9H 53H + + R3 R5 D0H 41H (5) ADDC A, R3 (6) MOV R5, A R0 (1) MOV A, R0 X2 R2 (2) ADD A, R2 (3) MOV R4, A 99H 95H Võ Thị Thu Hồng Kết R4 Các lệnh trừ Opcode (binary) D7 D6 D5 D4 D3 D2 D1 D0 Opcode (HEX) 0 1 n2 n1 n0 98 ÷ 9F a7 a6 0 a5 a4 a3 a2 a1 1 a0 i 95 Byte 96 ÷ 97 d7 d6 d5 d4 d3 d2 d1 d0 94 Byte Mnemonic SUBB A, Rn SUBB A, direct SUBB A, @Ri SUBB A, #data SUBB A, Src ; Diễn giải Số MC A A - Rn CY A A - (direct) - CY A  A - (Ri) CY A A - data CY 1 1 A  A – Src – C Chú ý: Nếu muốn trừ khơng qua cờ C, xóa cờ C trước thực lệnh trừ Võ Thị Thu Hồng Lệnh trừ SUBB (ví dụ) MOV A,# 25H; A=25H CLR C ; cho C=0 SUBB A, #60H; A=C5H (Opcode 94H 60H) SUBB A, #0B5H; A=0FH (Opcode 94H B5H) C=1 ( số mượn) – AC=0 C=1 OV=0 – – AC=1 C=0 OV=0 Võ Thị Thu Hồng 25H (+37) 60H (+96) C5H (- 59) B5H (- 75) 10H (+16) 0FH (C) (+15) 10 Lệnh tăng 1/ giảm Lệnh tăng (INC) Opcode (binary) Mnemonic D7 D6 D5 D4 D3 D2 D1 INC A 0 0 0 INC Rn 0 0 n2 n1 n0 a7 0 a6 0 a5 0 a4 0 a3 a2 a1 1 0 INC direct INC @Ri INC DPTR D0 Opcode (HEX) Diễn giải Số MC A←A+1 08 ÷ 0F Rn ← Rn + 1 a0 i 05 Byte 06 ÷ 07 (direct) ← (direct) + (Ri) ← (Ri) + 1 A3 DPTR ← DPTR + 1 04 Lệnh giảm (DEC) Opcode (binary) Mnemonic D7 D6 D5 D4 D3 D2 D1 DEC A 0 1 0 DEC Rn 0 1 n2 n1 n0 a7 0 a6 0 a5 a4 a3 a2 a1 DEC direct DEC @Ri Võ Thị Thu Hồng D0 a0 i Opcode (HEX) Diễn giải Số MC A←A-1 18 ÷ 1F Rn ← Rn - 1 15 Byte 16 ÷ 17 (direct) ← (direct) - (Ri) ← (Ri) - 1 14 11 Lệnh tăng 1/ giảm (Ví dụ) MOV DPTR ,#10FFH INC DPTR ; DPTR =1100H ( DPH= 11H DPL=00H) (Opcode A3H) Chú ý: DEC DPTR để giảm cho DPTR ,giả sử DPTR =1100H: DEC DPL ; DPL=00H-1=FFH MOV A,DPL ; cất DPL vào A ( A=FFH) CJNE A, #0FFH, SKIP ; so sánh A FFH DEC DPH ; khơng nhảy đến SKIP ; A=FFH giảm tiếp DPH -> DPH=10H Võ Thị Thu Hồng 12 Lệnh tăng 1/ giảm (Ví dụ) Ví dụ: Xóa nhớ Ram nội từ địa 30H đến 40H Org 0000H MOV R0, #30H MOV A,#0 LOOP: MOV @R0,A INC R0 CJNE R0,# 41H, LOOP END Ghi Chú: đoạn chương trình có 17 vịng lặp Gợi ý: thử viết lại chương trình dùng lệnh DEC Võ Thị Thu Hồng 13 Lệnh nhân MUL Opcode (binary) Mnemonic MUL AB D7 D6 D5 D4 D3 D2 D1 1 0 D0 Opcode (HEX) Diễn giải Số MC A4 A ← (A x B) ÷ B ← (A x B) 15 ÷ Kết A*B gồm bytes , A

Ngày đăng: 02/11/2022, 09:55