Bài giảng Kỹ thuật vi xử lý - Chương 2: Bộ vi xử lý Intel 8086/8088
A. Kiến trúc bên trong của 8086/8088
1. Sơ đồ khối
2. Các đơn vị chức năng của 8088/8086
3. Các thanh ghi của 8086/8088
4. Phân đoạn bộ nhớ trong 8086/8088
B. Tập lệnh của 8088/8086
5. Khái niệm về lệnh và cách mã hoá lệnh
6. Các chếđộđịa chỉ của vi xử lý 8086/8088
7. Phân loại tập lệnh của vi xử lý
8. Mô tả tập lệnh của 8086/8088
A HỌC MÁY TÍNH - KHOA CNTT1 Trang 42 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 8. Tập lệnh - Các lệnh logic Lệnh AND Dạng: AND , Ý nghĩa: Nhân các cặp bít của 2 toán hạng Đích, Gốc, kết quả chuyển vào Đích Lệnh AND ảnh hưởng đến các cờ: Z, S, P VD: xoá bít thứ 3 của thanh ghi AL (0-7) AND AL, F7H; F7H = 1111 0111B xoá bít thứ 4 bit phần cao của thanh ghi AL (0-7) AND AL, 0FH; 0FH = 0000 1111B BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ www.ptit.edu.vn GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 43 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 8. Tập lệnh - Các lệnh logic Lệnh OR Dạng: OR , Ý nghĩa: Cộng các cặp bít của 2 toán hạng Đích, Gốc, kết quả chuyển vào Đích Lệnh OR ảnh hưởng đến các cờ: Z, S, P VD: lập bít thứ 3 của thanh ghi AL (0-7) OR AL, 08H; 08H = 0000 1000B lập bít thứ 7 của thanh ghi AL (0-7) OR AL, 80H; 80H = 1000 0000B BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ www.ptit.edu.vn GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 44 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 8. Tập lệnh - Các lệnh logic Lệnh XOR Dạng: XOR , Ý nghĩa: Cộng đảo các cặp bít của 2 toán hạng Đích, Gốc, kết quả chuyển vào Đích Lệnh XOR ảnh hưởng đến các cờ: Z, S, P VD: xoá thanh ghi AL XOR AL, AL; AL 0 xoá thanh ghi BX XOR BX, BX; BX 0 12 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ www.ptit.edu.vn GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 45 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 8. Tập lệnh - Các lệnh dịch và quay Gồm các lệnh: Dịch trái: SHL (Shilf Left) Dịch phải: SHR (Shilf Right) Quay trái: ROL (Rotate Left) Quay phải: ROR (Rotate Right) Các lệnh dịch thường được dùng để thay cho phép nhân (dịch trái) và thay cho phép chia (dịch phải) Các lệnh dịch và quay còn có thể được sử dụng khi cần xử lý từng bit. BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ www.ptit.edu.vn GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 46 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 8. Tập lệnh - Các lệnh dịch và quay Lệnh dịch trái SHL Dạng: SHL , 1 SHL , CL Ý nghĩa: Dịch trái một bít hoặc dịch trái số bit lưu trong thanh ghi CL nếu số bit cần dịch lớn hơn 1. • MSB (Most Significant Bit) chuyển sang cờ nhớ CF • 0 được điền vào LSB (Least Significant Bit) • Các bít giữa MSB và LSB được dịch sang trái 1 bit VD: MOV AL, 08H; 0000 1000B (8) SHL AL, 1; 0001 0000B (16) MOV CL, 2 SHL AL, CL; 0100 0000B (64) CF MSB LSB 0 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ www.ptit.edu.vn GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 47 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 8. Tập lệnh - Các lệnh dịch và quay Lệnh dịch phải SHR Dạng: SHR , 1 SHR , CL Ý nghĩa: Dịch phải một bít hoặc dịch phải số bit lưu trong thanh ghi CL nếu số bit cần dịch lớn hơn 1. • LSB (Least Significant Bit) chuyển sang cờ nhớ CF • 0 được điền vào MSB (Most Significant Bit) • Các bít giữa MSB và LSB được dịch sang phải 1 bit VD: MOV AL, 80H; 1000 0000B (128) SHR AL, 1; 0100 0000B (64) MOV CL, 2 SHR AL, CL; 0001 0000B (16) CFMSB LSB0 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ www.ptit.edu.vn GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 48 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 8. Tập lệnh - Các lệnh dịch và quay Lệnh quay trái ROL Dạng: ROL , 1 ROL , CL Ý nghĩa: Quay trái một bít hoặc quay trái số bit lưu trong thanh ghi CL nếu số bit cần quay lớn hơn 1. • MSB (Most Significant Bit) chuyển sang cờ nhớ CF • MSB được chuyển đến LSB (Least Significant Bit) • Các bít giữa MSB và LSB được dịch sang trái 1 bit VD: MOV AL, 88H; 1000 1000B ROL AL, 1; 0001 0001B MOV CL, 2 ROL AL, CL; 0100 0100B CF MSB LSB 13 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ www.ptit.edu.vn GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 49 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 8. Tập lệnh - Các lệnh dịch và quay Lệnh quay phải ROR Dạng: ROR , 1 ROR , CL Ý nghĩa: Quay phải một bít hoặc quay phải số bit lưu trong thanh ghi CL nếu số bit cần quay lớn hơn 1. • LSB (Least Significant Bit) chuyển sang cờ nhớ CF • LSB được chuyển đến MSB (Most Significant Bit) • Các bít giữa MSB và LSB được dịch sang phải 1 bit VD: MOV AL, 88H; 1000 1000B ROR AL, 1; 0100 0100B MOV CL, 2 ROR AL, CL; 0001 0001B CFMSB LSB BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ www.ptit.edu.vn GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 50 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 8. Tập lệnh - Các lệnh chuyển điều khiển Các lệnh chuyển điều khiển (program flow control instructions) là các lệnh làm thay đổi trật tự thực hiện chương trình; Gồm các lệnh: Lệnh nhảy không điều kiện JMP Lệnh nhảy có điều kiện JE, JZ, JNE, JNZ, JL, JG, ... Lệnh lặp LOOP, LOOPE, LOOPZ Lệnh gọi thực hiện chương trình con CALL Lệnh trở về từ chương trình con RET BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ www.ptit.edu.vn GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 51 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 8. Tập lệnh - Các lệnh chuyển điều khiển Lệnh nhảy không điều kiện JMP Dạng lệnh: JMP Ý nghĩa: chuyển đến thực hiện lệnh nằm ngay sau là một tên được đặt trước một lệnh, phân cách bằng dấu hai chấm (:). Khoảng nhảy của JMP có thể là ngắn (-128 +127), gần (- 32768 +32767) và xa (sử dụng địa chỉ đầy đủ CS:IP). VD: START: ADD AX, BX SUB BX, 1 ...... JMP START ; chuyển đến thực hiện lệnh nằm sau nhãn START BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ www.ptit.edu.vn GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 52 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 8. Tập lệnh - Các lệnh chuyển điều khiển Lệnh nhảy có điều kiện JE, JZ, JNE, JNZ, JL, JG Dạng lệnh: JE : nhảy nếu bằng nhau hoặc kết quả bằng 0 JZ : nhảy nếu bằng nhau hoặc kết quả bằng 0 JNE : nhảy nếu không bằng nhau hoặc kết quả khác 0 JNZ : nhảy nếu không bằng nhau hoặc kết quả khác 0 JL : nhảy nếu bé hơn JG : nhảy nếu lớn hơn Khoảng nhảy của các lệnh nhảy có điều kiện là ngắn (-128 +127). 14 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ www.ptit.edu.vn GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 53 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 8. Tập lệnh - Các lệnh chuyển điều khiển Lệnh nhảy có điều kiện JE, JZ, JNE, JNZ, JL, JG VD: viết đoạn chương trình tính tổng các số từ 1-20 MOV AX, 0 ; AX chứa tổng MOV BX, 20 ; đặt giá trị cho biến đếm BX START: ADD AX, BX ; cộng dồn SUB BX, 1 ; giảm biến đếm JZ STOP ; dừng nếu BX = 0 JMP START ; quay lại vòng lặp tiếp STOP: .... BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ www.ptit.edu.vn GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 54 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 8. Tập lệnh - Các lệnh chuyển điều khiển Lệnh lặp LOOP Dạng lệnh: LOOP Ý nghĩa: chuyển đến thực hiện lệnh nằm ngay sau nếu giá trị trong thanh ghi CX khác 0. Tự động giảm giá trị của CX 1 đơn vị khi thực hiện. VD: viết đoạn chương trình tính tổng các số từ 1-20 MOV AX, 0 ; AX chứa tổng MOV CX, 20 ; đặt giá trị cho biến đếm CX START: ADD AX, CX ; cộng dồn LOOP START ; kiểm tra CX, nếu CX=0 dừng ; nếu CX khác 0: CX CX-1 và quay lại ; bắt đầu vòng lặp mới từ vị trí của START BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ www.ptit.edu.vn GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 55 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 8. Tập lệnh - Các lệnh chuyển điều khiển Lệnh CALL và RET Dạng lệnh: • CALL : gọi thực hiện chương trình con • RET : trở về từ chương trình con; thường đặt ở cuối chương trình con VD: CALL GIAITHUA ; gọi thực hiện chương trình con GIAITHUA ..... ; phần mã của chương trình con PROC GIAITHUA ; bắt đầu mã CT con ..... RET ; trở về chương trình gọi GIAITHUA ENDP ; kết thúc mã CT con BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ www.ptit.edu.vn GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 56 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 8. Tập lệnh - Các lệnh xử lý bit Gồm nhóm các lệnh xử lý một số bít (D, C, I) của thanh ghi cờ FR; Các lệnh lập cờ (đặt bit cờ bằng 1) STD: lập cờ hướng D STC: lập cờ nhớ C STI: lập cờ ngắt I Các lệnh xoá cờ (đặt bit cờ bằng 0) CLD: xoá cờ hướng D CLC: xoá cờ nhớ C CLI: xoá cờ ngắt I 15 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ www.ptit.edu.vn GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 57 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 8. Tập lệnh - Các lệnh điều khiển hệ thống Gồm 2 lệnh: Lệnh NOP (No Operation): • NOP không thực hiện nhiệm vụ cụ thể, chỉ tiêu tốn thời gian bằng 1 chu kỳ lệnh Lệnh HLT (Halt) • HLT dừng việc thực hiện chương trình BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ www.ptit.edu.vn GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 58 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 8. Tập lệnh – Một số lệnh khác Lệnh tăng INC Dạng: INC ; Đích Đích + 1 Lệnh giảm DEC Dạng: DEC ; Đích Đích – 1 Lệnh so sánh CMP Dạng: CMP , Ý nghĩa: Tính toán Đích - Gốc, kết quả chỉ dùng cập nhật các bít cờ trạng thái, không lưu vào Đích: Trường hợp C Z S Đích > Gốc 0 0 0 Đích = Gốc 0 1 0 Đích < Gốc 1 0 1 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ www.ptit.edu.vn GIẢNG VIÊN: TS. HOÀNG XUÂN DẬU BỘ MÔN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 59 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 8. Tập lệnh – Một số lệnh khác Lệnh PUSH – đẩy dữ liệu vào ngăn xếp Dạng: PUSH Ý nghĩa: Nạp Gốc vào đỉnh ngăn xếp; Gốc phải là toán hạng 2 bytes. Diễn giải: SP SP + 2 ; tăng con trỏ ngăn xếp SP {SP} Gốc ; nạp dữ liệu vào ngăn xếp VD: PUSH AX Lệnh POP – lấy dữ liệu ra khỏi ngăn xếp Dạng: POP Ý nghĩa: Lấy dữ liệu từ đỉnh ngăn xếp lưu vào Đích; Đích phải là toán hạng 2 bytes. Diễn giải: Đích {SP} ; lấy dữ liệu ra khỏi ngăn xếp SP SP - 2 ; giảm con trỏ ngăn xếp SP VD: POP BX
File đính kèm:
- Bài giảng Kỹ thuật vi xử lý - Chương 2 Bộ vi xử lý Intel 80868088.pdf