Hai thanh ghi ñöôïc söû duïng, vuøng R/M laø vuøng REG Baûng 3-9 Baûng lieät keâ giaù trò cuûa MOD.

Một phần của tài liệu GIÁO TRÌNH VI XỬ LÝ 1 - CHƯƠNG 3. CẤU TRÚC VI XỬ LÝ 16 BIT 8086 pdf (Trang 34 - 41)

III. TAÄP LEÄNH:

11Hai thanh ghi ñöôïc söû duïng, vuøng R/M laø vuøng REG Baûng 3-9 Baûng lieät keâ giaù trò cuûa MOD.

Bảng 3-9. Bảng liệt kê giá trị của MOD.

Truong DH SPKT TP. HCM http://www.hcmute.edu.vn

Vùng R/M (register/memory) :

Nếu vùng MOD = 11 thì vùng R/M là thanh ghi nguồn dùng các mã của vùng REG, ngược lại thì: R/M Kiểu 000 DS:[BX+SI+d] 001 DS:[BX+DI+d] 010 SS:[BP+SI+d] 011 SS:[BP+DI+d] 100 DS:[SI+d] 101 DS:[DI+d] 110 DS:[BP+d] 111 DS:[BX+d]

Bảng 3-10. Bảng liệt kê giá trị của R/M.

2. Tổng quan về tập lệnh vi xử lý 8086/8088:

Trong phần này chúng ta sẽ khảo sát các lệnh của vi xử lý và sử dụng các toán hạng hay chỉ dẫn assembler dựa trên trình biên dịch hợp ngữ của Microsoft (MASM 6.0).

Vi xử lý 8086 có 90 lệnh cơ bản (không kể các lệnh biến đổi về cách định địa chỉ), được chia làm 6 nhóm lệnh như sau: nhóm lệnh chuyển dữ liệu, nhóm lệnh số học, nhóm lệnh xử lý chuỗi, nhóm lệnh chuyển quyền điều khiển và nhóm lệnh điều khiển vi xử lý.

Nhóm lệnh chuyển dữ liệu: gồm có 14 lệnh như sau: MOV, PUSH, POP, XCHG, IN, OUT, XLAT, LEA, LDS, LES, LAHF, SAHF, PUSHF, POPF.

Nhóm lệnh số học: gồm có 20 lệnh như sau:

ADD, ADC, INC AAA, BAA, SUB, SSB, DEC, NEG, CMP, AAS, DAS, MUL, IMUL, AAM, DIV, IDIV, AAD, CBW, CWD. Nhóm lệnh LOGIC: gồm có 12 lệnh như sau:

NOT, SHL, SAL, SHR, SAR, ROL, ROR, RCL, RCR, AND, TEST, OR, XOR. Nhóm lệnh xử lý chuỗi: gồm có 6 lệnh như sau:

REP, MOVS, XMPS, SCAS, LODS, STOS.

Nhóm lệnh chuyển điều khiển: gồm có 26 lệnh như sau: CALL, JMP, RET, JE/JZ, JL/JNGE, JLE/JNG, JB/JNAE,

JBE/JNA, JP/JPE, JO, JS, JNE/JNZ, JNL/JGE, JNLE/JG,JNB/JAE,

JNBE/JA, JNP/JPO, JNO, JNS, LOOP, LOOPZ/LOOPE, CJXZ, INT, INTO, IRETR. Nhóm lệnh điều khiển VI XỬ LÝ : gồm có 12 lệnh như sau:

CLR, CMC, STC, CLD, STD, CLI, STI, HLT, WAIT, ESC, LOCK, NOP. Mã lệnh bao gồm những thông tin như mã lệnh, địa chỉ, dữ liệu.

Số lượng chu kỳ xung clock cần để thực hiện lệnh phụ thuộc vào cách định địa chỉ. Với hệ thống 8086/8088 thì quá trình tính toán địa chỉ thật (20bit) cần nhiều xung clock – với những vi xử lý từ 80286 trở về sau thì không còn tính toán địa chỉ nên không phải mất nhiều chu kỳ xung

Chương 3: Cấu trúc vi xử lý 8086/8088. SPKT

Trực tiếp MOV CL,DATA 3

Chỉ số nền MOV BL,[BP+DI] 7

Chỉ số nền (có độ dời) MOV CX,[BP+DI+DATA] 11 Tiếp đầu ngữ viết chồng đoạn MOV AL,ES:DATA EA+2

Bảng 3-11. Bảng liệt kê chu kỳ thực hiện của các lệnh. Tóm tắt tập lệnh của vi xử lý 8086/8088:

Truong DH SPKT TP. HCM http://www.hcmute.edu.vn

Chương 3: Cấu trúc vi xử lý 8086/8088. SPKT

Truong DH SPKT TP. HCM http://www.hcmute.edu.vn

Chương 3: Cấu trúc vi xử lý 8086/8088. SPKT

3. Khảo sát tập lệnh vi xử lý 8086/8088:

Sau khi đã khảo sát lệnh tóm tắt đã trình bày ở trên thì việc tính toán ra mã lệnh do trình biên dịch assembler thực hiện, người lập trình chỉ cần biết có bao nhiêu lệnh và chức năng xử lý dữ liệu của từng lệnh để viết trình.

Do có rất nhiều lệnh và mỗi lệnh đều có ví dụ minh hoạ nên phần này được trình bày ở phần phụ lục.

Truong DH SPKT TP. HCM http://www.hcmute.edu.vn (adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu GIÁO TRÌNH VI XỬ LÝ 1 - CHƯƠNG 3. CẤU TRÚC VI XỬ LÝ 16 BIT 8086 pdf (Trang 34 - 41)