Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 68 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
68
Dung lượng
524,53 KB
Nội dung
BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – BỘ VI XỬ LÝ INTEL 8086/8088 HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THƠNG BÀI GIẢNG MƠN HỌC KỸ THUẬT VI XỬ LÝ CHƯƠNG – BỘ VI XỬ LÝ INTEL 8086/8088 Giảng viên: TS Hoàng Xuân Dậu Điện thoại/E-mail: dauhx@ptit.edu.vn Khoa: Công nghệ thông tin Trang BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – BỘ VI XỬ LÝ INTEL 8086/8088 NỘI DUNG A Kiến trúc bên 8086/8088 Sơ đồ khối Các đơn vị chức 8088/8086 Các ghi 8086/8088 Phân đoạn nhớ 8086/8088 B Tập lệnh 8088/8086 Khái niệm lệnh cách mã hoá lệnh Các chế độ địa vi xử lý 8086/8088 Phân loại tập lệnh vi xử lý Mô tả tập lệnh 8086/8088 Trang BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – BỘ VI XỬ LÝ INTEL 8086/8088 Sơ đồ khối vi xử lý 8086/8088 Trang BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – BỘ VI XỬ LÝ INTEL 8086/8088 Các đơn vị chức 8088/8086 ❖ Đơn vị giao tiếp bus BIU (Bus Interface Unit) ▪ Điều khiển bus hệ thống: đưa địa bus trao đổi liệu với bus • Đưa địa • Đọc mã lệnh từ nhớ • Đọc/ghi liệu từ/vào nhớ cổng vào/ra ▪ Các khối: • • • • • Bộ cộng để tính địa ghi đoạn 16-bit: CS, DS, SS, ES Bộ đếm chương trình/con trỏ lệnh 16-bit (PC/IP) Hàng đợi lệnh IQ (4 bytes 8088 bytes 8086) Logic điều khiển bus Trang BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – BỘ VI XỬ LÝ INTEL 8086/8088 Các đơn vị chức 8088/8086 ❖ Đơn vị thực EU (Execution Unit) ▪ Chức năng: EU nhận lệnh & liệu từ BIU để xử lý Kết xử lý lệnh chuyển nhớ thiết bị I/O thông qua BIU ▪ Các khối: • • • • ALU CU ghi 16-bit: AX, BX, CX, DX, SP, BP, SI, DI Thanh ghi cờ FR ❖ Bus (Internal Bus): liên kết BIU EU ▪ 16-bit A-BUS 8088 ▪ 16-bit ALU-BUS 8086 Trang BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – BỘ VI XỬ LÝ INTEL 8086/8088 Các ghi 8086/8088 ❖ Các ghi đa năng: ▪ ghi 16 bits: • • • • AX: Thanh ghi tổng, thường dùng để lưu kết BX: Thanh ghi sở, thường dùng chứa địa ô nhớ CX: Thanh ghi đếm, thường dùng làm đếm cho lệnh lặp DX: Thanh ghi liệu ▪ Hoặc ghi bits: AH AL, BH, BL, CH, CL, DH, DL Trang BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – BỘ VI XỬ LÝ INTEL 8086/8088 Các ghi 8086/8088 ❖ Các ghi trỏ số: ▪ SP (Stack Pointer): trỏ ngăn xếp SP chứa địa đỉnh ngăn xếp ▪ BP (Base Pointer): Con trỏ sở - sử dụng với đoạn ngăn xếp ▪ SI (Source Index): Thanh ghi số nguồn SI thường dùng chứa địa ô nhớ nguồn thao tác chuyển liệu ▪ DI (Destination Index): Thanh ghi số đích DI thường dùng chứa địa nhớ đích thao tác chuyển liệu Trang BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – BỘ VI XỬ LÝ INTEL 8086/8088 Các ghi 8086/8088 ❖ Các ghi đoạn: ▪ CS (Code Segment): Thanh ghi đoạn mã CS chứa địa bắt đầu đoạn mã ▪ DS (Data Segment): Thanh ghi đoạn liệu DS chứa địa bắt đầu đoạn liệu ▪ SS (Stack Segment): Thanh ghi đoạn ngăn xếp SS chứa địa bắt đầu đoạn ngăn xếp ▪ ES (Extra Segment): Thanh ghi đoạn liệu mở rộng ES chứa địa bắt đầu đoạn liệu mở rộng Trang BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – BỘ VI XỬ LÝ INTEL 8086/8088 Các ghi 8086/8088 ❖ Con trỏ lệnh ghi cờ: ▪ IP (Instruction Pointer): Con trỏ lệnh (cịn gọi đếm chương trình PC) IP chứa địa lệnh thực hiện; ▪ FR (Flag Register) SR (Status Register): Thanh ghi cờ ghi trạng thái • Cờ trạng thái: Các bit FR lưu trạng thái kết phép tốn ALU thực • Cờ điều khiển: trạng thái tín hiệu điều khiển Trang BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – BỘ VI XỬ LÝ INTEL 8086/8088 Các ghi 8086/8088 ❖ Các bit ghi cờ: Trang 10 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – BỘ VI XỬ LÝ INTEL 8086/8088 Tập lệnh - Các lệnh dịch quay ❖ Lệnh quay trái ROL ▪ Dạng: ROL , ROL , CL ▪ Ý nghĩa: Quay trái bít quay trái số bit lưu ghi CL số bit cần quay lớn • MSB (Most Significant Bit) chuyển sang cờ nhớ CF • MSB chuyển đến LSB (Least Significant Bit) • Các bít MSB LSB dịch sang trái bit ▪ VD: MOV AL, 88H; ROL AL, 1; MOV CL, ROL AL, CL; CF 1000 1000B 0001 0001B 0100 0100B MSB LSB Trang 54 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – BỘ VI XỬ LÝ INTEL 8086/8088 Tập lệnh - Các lệnh dịch quay ❖ Lệnh quay phải ROR ▪ Dạng: ROR , ROR , CL ▪ Ý nghĩa: Quay phải bít quay phải số bit lưu ghi CL số bit cần quay lớn • LSB (Least Significant Bit) chuyển sang cờ nhớ CF • LSB chuyển đến MSB (Most Significant Bit) • Các bít MSB LSB dịch sang phải bit ▪ VD: MOV AL, 88H; ROR AL, 1; MOV CL, ROR AL, CL; MSB 1000 1000B 0100 0100B 0001 0001B LSB CF Trang 55 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – BỘ VI XỬ LÝ INTEL 8086/8088 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ệnh làm thay đổi trật tự thực chương trình; ❖ Gồm 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, JLE, JG, JGE, Lệnh lặp LOOP, LOOPE, LOOPZ Lệnh gọi thực chương trình CALL Lệnh trở từ chương trình RET Trang 56 BÀI GIẢNG MƠN KỸ THUẬT VI XỬ LÝ CHƯƠNG – BỘ VI XỬ LÝ INTEL 8086/8088 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 lệnh nằm sau ▪ tên đặt trước lệnh, phân cách dấu hai chấm (:) Khoảng nhảy JMP ngắn (-128 +127), gần (32768 +32767) xa (sử dụng địa đầy đủ CS:IP) ▪ VD: START: ADD AX, BX SUB BX, JMP START ; chuyển đến thực lệnh nằm sau nhãn START Trang 57 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – BỘ VI XỬ LÝ INTEL 8086/8088 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 kết JZ : nhảy kết JNE : nhảy không kết khác JNZ : nhảy không kết khác JL : nhảy bé JLE : nhảy bé JG : nhảy lớn JGE : nhảy lớn ▪ Khoảng nhảy lệnh nhảy có điều kiện ngắn (-128 +127) Trang 58 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – BỘ VI XỬ LÝ INTEL 8086/8088 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 số từ 1-20 MOV AX, MOV BX, 20 START: ADD AX, BX SUB BX, JZ STOP JMP START STOP: ; AX chứa tổng ; đặt giá trị cho biến đếm BX ; cộng dồn ; giảm biến đếm ; dừng BX = ; quay lại vòng lặp tiếp Trang 59 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – BỘ VI XỬ LÝ INTEL 8086/8088 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 lệnh nằm sau giá trị ghi CX khác Tự động giảm giá trị CX đơn vị thực ▪ VD: viết đoạn chương trình tính tổng số từ 1-20 MOV AX, MOV CX, 20 START: ADD AX, CX LOOP START ; AX chứa tổng ; đặt giá trị cho biến đếm CX ; cộng dồn ; kiểm tra CX, CX=0 → dừng ; CX khác 0: CX CX-1 quay lại ; bắt đầu vịng lặp từ vị trí START Trang 60 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – BỘ VI XỬ LÝ INTEL 8086/8088 Tập lệnh - Các lệnh chuyển điều khiển ❖ Lệnh CALL RET ▪ Dạng lệnh: • CALL : gọi thực chương trình • RET : trở từ chương trình con; thường đặt cuối chương trình ▪ VD: CALL GIAITHUA ; gọi thực chương trình GIAITHUA ; phần mã chương trình PROC GIAITHUA ; bắt đầu mã CT RET ; trở chương trình gọi GIAITHUA ENDP ; kết thúc mã CT Trang 61 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – BỘ VI XỬ LÝ INTEL 8086/8088 Tập lệnh - Các lệnh xử lý bit ❖ Gồm nhóm lệnh xử lý số bít (D, C, I) ghi cờ FR; ❖ Các lệnh lập cờ (đặt bit cờ 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ờ 0) CLD: xoá cờ hướng D CLC: xoá cờ nhớ C CLI: xố cờ ngắt I Trang 62 BÀI GIẢNG MƠN KỸ THUẬT VI XỬ LÝ CHƯƠNG – BỘ VI XỬ LÝ INTEL 8086/8088 Tập lệnh - Các lệnh điều khiển hệ thống ❖ Gồm lệnh: ▪ Lệnh NOP (No Operation): • NOP khơng thực nhiệm vụ cụ thể, tiêu tốn thời gian chu kỳ lệnh ▪ Lệnh HLT (Halt) • HLT dừng việc thực chương trình Trang 63 BÀI GIẢNG MƠN KỸ THUẬT VI XỬ LÝ CHƯƠNG – BỘ VI XỬ LÝ INTEL 8086/8088 Tập lệnh – Một số lệnh khác ❖ Lệnh tăng INC ▪ Dạng: INC ; Đích Đích + ❖ Lệnh giảm DEC ▪ Dạng: DEC ; Đích Đích – ❖ Lệnh so sánh CMP ▪ Dạng: CMP , ▪ Ý nghĩa: Tính tốn Đích - Gốc, kết dùng cập nhật 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 Đích = Gốc Đích < Gốc 1 Trang 64 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – BỘ VI XỬ LÝ INTEL 8086/8088 Tập lệnh – Một số lệnh khác ❖ Lệnh PUSH – đẩy 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 toán hạng bytes Diễn giải: SP SP + ; tăng trỏ ngăn xếp SP {SP} Gốc ; nạp liệu vào ngăn xếp ▪ VD: PUSH AX ❖ Lệnh POP – lấy liệu khỏi ngăn xếp ▪ Dạng: POP ▪ Ý nghĩa: Lấy liệu từ đỉnh ngăn xếp lưu vào Đích; Đích phải tốn hạng bytes Diễn giải: Đích {SP} ; lấy liệu khỏi ngăn xếp SP SP - ; giảm trỏ ngăn xếp SP ▪ VD: POP BX Trang 65 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – BỘ VI XỬ LÝ INTEL 8086/8088 Tập lệnh – Một số lệnh khác ❖ Lệnh NEG – đảo dấu giá trị toán hạng ▪ Dạng: NEG ▪ Ý nghĩa: Đảo dấu giá trị lưu Đích ▪ VD: MOV AX, 1000; AX 1000 NEG AX; AX - (AX) = -1000 ❖ Lệnh XCHG – Tráo đổi giá trị hai toán hạng ▪ Dạng: XCHG , < Operand2> ▪ Ý nghĩa: Tráo đổi giá trị hai toán hạng < Operand2> ▪ VD: MOV BX, 100 MOV AX, 200 XCHG AX, BX; AX 100, BX 200 Trang 66 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – BỘ VI XỬ LÝ INTEL 8086/8088 Tập lệnh – Một số lệnh khác ❖ Lệnh REP – lặp việc thực lệnh MOVSB, MOVSW, LODSB, LODSW, STOSB, STOSW số lần – số lần lưu ghi CX ▪ Dạng: REP ▪ Ý nghĩa: Lặp CX lần việc thực lệnh khác ▪ VD: MOV SI, 1000; Đặt địa nguồn MOV DI, 2000; Đặt địa đích MOV CX, 10; Đặt số lần lặp cho REP REP MOVSB; Thực MOVSB 10 lần: chuyển nội dung 10 ô nhớ DS:SI sang 10 ô nhớ ES:DI Trang 67 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – BỘ VI XỬ LÝ INTEL 8086/8088 Tập lệnh – Một số lệnh khác ❖ Lệnh INT – Triệu gọi dịch vụ ngắt ▪ Dạng: INT ▪ Ý nghĩa: Gọi thực chương trình phục vụ ngắt tương ứng với ▪ VD: MOV AH, 4Ch; Nạp hàm 4Ch INT 21h; Gọi ngắt DOS số 21h Trang 68 ... BIU ▪ Các khối: • • • • ALU CU ghi 16-bit: AX, BX, CX, DX, SP, BP, SI, DI Thanh ghi cờ FR ❖ Bus (Internal Bus): liên kết BIU EU ▪ 16-bit A-BUS 8088 ▪ 16-bit ALU-BUS 8086 Trang BÀI GIẢNG MÔN KỸ THUẬT... địa lệch Offset: 0000h-FFFFh ▪ Địa logic đầy đủ ô nhớ Segment:Offset ❖ Địa vật lý 20 -bit ô nhớ xác định phép cộng địa đoạn 16-bit dịch trái bít (nhân với 16) địa lệch 16-bit ▪ VD: CS:IP địa lệnh... Trang 12 BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ CHƯƠNG – BỘ VI XỬ LÝ INTEL 8086/8088 Phân đoạn nhớ 8086/8088 ❖ VXL 8088/8086 sử dụng 20 bit để địa hoá nhớ: ▪ Tổng dung lượng tối đa địa hố nhớ 22 0 = 1MB;