Vi xử lý 8086 bưu chính viễn thông

Tài liệu Bài giảng môn Kỹ thuật vi xử lý - Chương 2: 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 KỸ THUẬT VI XỬ LÝ Giảng viên: TS. Hoàng Xuân Dậu Điện thoại/E-mail: Bộ môn: Khoa học máy tính - Khoa CNTT1 Học kỳ/Năm biên soạn: Học kỳ 1 năm học 2009-2010 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 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 2 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 NỘI DUNG 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 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 3 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 1. Sơ đồ khối vi xử lý 8086/8088...

59 trang | Chia sẻ: Khủng Long | Lượt xem: 2160 | Lượt tải: 0

Bạn đang xem trước 20 trang mẫu tài liệu Bài giảng môn Kỹ thuật vi xử lý - Chương 2: Bộ vi xử lý intel 8086/8088, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG BÀI GIẢNG MÔN KỸ THUẬT VI XỬ LÝ Giảng viên: TS. Hoàng Xuân Dậu Điện thoại/E-mail: Bộ môn: Khoa học máy tính - Khoa CNTT1 Học kỳ/Năm biên soạn: Học kỳ 1 năm học 2009-2010 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 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 2 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 NỘI DUNG 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 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 3 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 1. Sơ đồ khối vi xử lý 8086/8088 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 4 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 2. Các đơn vị chức năng của 8088/8086  Đơn vị giao tiếp bus BIU [Bus Interface Unit]  Điều khiển bus hệ thống: đưa địa chỉ ra bus và trao đổi dữ liệu với bus • Đưa ra địa chỉ • Đọc mã lệnh từ bộ nhớ • Đọc/ghi dữ liệu từ/vào bộ nhớ hoặc cổng vào/ra  Các khối: • Bộ cộng để tính địa chỉ • 4 thanh 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 trong 8088 và 6 bytes trong 8086] • Logic điều khiển bus 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 5 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 2. Các đơn vị chức năng của 8088/8086  Đơn vị thực hiện EU [Execution Unit]  Chức năng: EU nhận lệnh & dữ liệu từ BIU để xử lý. Kết quả xử lý lệnh được chuyển ra bộ nhớ hoặc thiết bị I/O thông qua BIU.  Các khối: • ALU • CU • 8 thanh ghi 16-bit: AX, BX, CX, DX, SP, BP, SI, DI • Thanh ghi cờ FR  Bus trong [Internal Bus]: liên kết BIU và EU  16-bit A-BUS trong 8088  16-bit ALU-BUS trong 8086 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 6 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 3. Các thanh ghi của 8086/8088  Các thanh ghi đa năng:  4 thanh ghi 16 bits: • AX: Thanh ghi tổng, thường dùng để lưu kết quả • BX: Thanh ghi cơ sở, thường dùng chứa địa chỉ ô nhớ • CX: Thanh ghi đếm, thường dùng làm con đếm cho các lệnh lặp • DX: Thanh ghi dữ liệu  Hoặc 8 thanh ghi 8 bits: AH AL, BH, BL, CH, CL, DH, DL 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 7 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 3. Các thanh ghi của 8086/8088  Các thanh ghi con trỏ và chỉ số:  SP [Stack Pointer]: con trỏ ngăn xếp. SP luôn chứa địa chỉ đỉnh ngăn xếp  BP [Base Pointer]: Con trỏ cơ sở - sử dụng với đoạn ngăn xếp  SI [Source Index]: Thanh ghi ch ỉ số nguồn. SI thường dùng chứa địa chỉ ô nhớ nguồn trong các thao tác chuyển dữ liệu  DI [Destination Index]: Thanh ghi ch ỉ số đích. DI thường dùng chứa địa chỉ ô nhớ đích trong các thao tác chuyển dữ liệu 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 8 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 3. Các thanh ghi của 8086/8088  Các thanh ghi đoạn:  CS [Code Segment]: Thanh ghi đoạn mã. CS chứa địa chỉ bắt đầu đoạn mã  DS [Data Segment]: Thanh ghi đoạn dữ liệu. DS chứa địa chỉ bắt đầu đoạn dữ liệu  SS [Stack Segment]: Thanh ghi đoạn ngăn xếp. SS chứa địa chỉ bắt đầu đoạn ngăn xếp  ES [Extra Segment]: Thanh ghi đoạn dữ liệu mở rộng. ES chứa địa chỉ bắt đầu đoạn dữ liệu mở rộng. 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 9 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 3. Các thanh ghi của 8086/8088  Con trỏ lệnh và thanh ghi cờ:  IP [Instruction Pointer]: Con tr ỏ lệnh [còn gọi là bộ đếm chương trình PC]. IP luôn chứa địa chỉ của lệnh tiếp theo sẽ được thực hiện;  FR [Flag Register] hoặc SR [Status Register]: Thanh ghi c ờ hoặc thanh ghi trạng thái. • Cờ trạng thái: Các bit của FR lưu các trạng thái của kết quả phép toán ALU thực hiện • Cờ điều khiển: trạng thái của tín hiệu điều khiển. 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 10 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 3. Các thanh ghi của 8086/8088  Các bit của thanh ghi cờ: 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 11 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 3. Các thanh ghi của 8086/8088  Các cờ trạng thái:  C [Carry]: cờ nhớ. C=1 có nhớ; C=0 không nhớ  A [Auxiliary]: cờ nhớ phụ. A=1 có nhớ phụ; A=0 không nhớ phụ  P [Parity]: cờ chẵn lẻ. P=1 khi tổng số bit 1 trong kết quả là lẻ, P=0 khi tổng số bit 1 trong kết quả là chẵn  O [Overflow]: cờ tràn. O=1 khi kết quả bị tràn  Z [Zero]: cờ zero. Z=1 khi kết quả bằng 0; ngược lại Z=0  S [Sign]: cờ dấu. S=1 khi kết quả âm; S=0 khi kết quả không âm  Các cờ điều khiển:  D [Direction]: cờ hướng, chỉ hướng tăng giảm địa chỉ với các lệnh chuyển dữ liệu. D=0  địa chỉ tăng. D=1  địa chỉ giảm.  T [Trap/Trace]: cờ bẫy/lần vết, được dùng khi gỡ rối chương trình. T=1  CPU ở chế độ chạy từng lệnh  I [Interrupt]: cờ ngắt. I=1  cho phép ngắt; I=0  cấm ngắt 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 12 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 Hàng đợi lệnh IQ  Hàng đợi lệnh IQ [Instruction Queue]:  Chứa lệnh đọc từ bộ nhớ cho EU thực hiện.  Trong 8088, IQ có 4 bytes, còn trong 8086, IQ c ó 6 bytes.  IQ là một thành phần quan trọng của cơ chế ống lệnh giúp tăng tốc độ xử lý lệ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 13 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 4. Phân đoạn bộ nhớ trong 8086/8088  VXL 8088/8086 sử dụng 20 bit để địa chỉ hoá bộ nhớ:  Tổng dung lượng tối đa có thể địa chỉ hoá của bộ nhớ là 220 = 1MB;  Địa chỉ được đánh từ 00000h đến FFFFFh. 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 14 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 4. Phân đoạn bộ nhớ trong 8086/8088  Bộ nhớ được chia thành các đoạn [segment]:  Các thanh ghi đoạn [CS, DS, SS, ES] trỏ đến địa chỉ bắt đầu của các đoạn  Vị trí của ô nhớ trong đoạn được xác định bằng địa chỉ lệch Offset: 0000h-FFFFh  Địa chỉ logic đầy đủ của một ô nhớ là Segment:Offset  Địa chỉ vật lý 20-bit của một ô nhớ được xác định bằng phép cộng giữa địa chỉ đoạn 16-bit được dịch trái 4 bít [nhân với 16] và địa chỉ lệch 16-bit.  VD: CS:IP chỉ ra địa chỉ lệnh sắp thực hiện trong đoạn mã. Nếu CS=F000h và IP=FFF0h thì:  CS:IP  F000h x 16 + FFF0h = F0000h + FFF0h = FFFF0h 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 15 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 5. Khái niệm về lệnh và cách mã hoá lệnh  Lệnh [instruction] là gì?  Là một từ nhị phân  Lệnh được lưu trữ trong bộ nhớ  Lệnh được nạp vào CPU để thực hiện  Mỗi lệnh có một nhiệm vụ cụ thể  Các nhóm lệnh thông dụng: vận chuyển dữ liệu, điều khiển chương trình, tính toán, vv.  Các pha [phase] chính thực hiện lệnh:  Đọc lệnh [IF: Instruction Fetch]  Giải mã lệnh [ID: Instruction Decode]  Thực hiện lệnh [EX: Instruction Execution] 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 16 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 5. Khái niệm về lệnh và cách mã hoá lệnh  Chu kỳ lệnh [instruction cycle]  Là khoảng thời gian CPU thực hiện xong 1 lệnh  Mỗi pha của lệnh gồm một số chu kỳ máy  Mỗi chu kỳ máy gồm một số chu kỳ nhịp đồng hồ  Một CK lệnh có thể gồm: • Chu kỳ đọc lệnh • Chu kỳ đọc bộ nhớ [dữ liệu] • Chu kỳ ghi bộ nhớ [dữ liệu] • Chu kỳ đọc I/O [dữ liệu] • Chu kỳ ghi I/O [dữ liệu] • Chu kỳ chấp nhận ngắt • Bus rỗi 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 17 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 5. Khái niệm về lệnh và cách mã hoá lệnh  Dạng lệnh  Dạng tổng quát của lệnh: 2 thành phần: mã lệnh và địa chỉ của các toán hạng  Độ dài của từ lệnh: 8, 16, 24, 32 và 64 bit.  Lệnh của 8086/8088 có thể có độ dài 1-6 byte Opcode Operands Mã lệnh Các toán hạng Mã lệnh Đích, Gốc MOV AX, 100 AX  100 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 18 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 5. Khái niệm về lệnh và cách mã hoá lệnh Mã hoá lệnh  Opcode: mã lệnh gồm 6 bít; Mã lệnh của MOV là 100010  D: bít hướng, chỉ hướng vận chuyển dữ liệu; D=1: dữ liệu đi đến thanh ghi cho bởi 3 bit REG; D=0: dữ liệu đi ra từ thanh ghi cho bởi 3 bit REG;  W: bít chỉ độ rộng toán hạng; W=0: toán hạng 1 byte; W=1: toán hạng 2 bytes 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 19 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 5. Khái niệm về lệnh và cách mã hoá lệnh Mã hoá lệnh  REG: 3 bít là mã của thanh ghi toán hạng theo hướng chuyển dữ liệu D: • Nếu D=1, REG biểu diễn toán hạng Đích • Neu D=0, REG biểu diễn toán hạng Gốc 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 20 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 5. Khái niệm về lệnh và cách mã hoá lệnh Mã hoá lệnh  MOD [2 bit] và R/M [3 bít]: MOD và R/M kết hợp với nhau để biểu diễn các chế độ địa chỉ của 8086/8088  DispL: khoảng dịch chuyển phần thấp  DispH: khoảng dịch chuyển phần cao. 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 21 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 6. Các chế độ địa chỉ của 8086/8088  Chế độ địa chỉ [Addressing Mode] là cách CPU tổ chức các toán hạng của lệnh;  Một bộ vi xử lý có thể có nhiều chế độ địa chỉ.  Vi xử lý 8086/8088 có 7 chế độ địa chỉ: 1. Chế độ địa chỉ thanh ghi [Register Addressing Mode] 2. Chế độ địa chỉ tức thì [Immediate Addressing Mode] 3. Chế độ địa chỉ trực tiếp [Direct Addressing Mode] 4. Chế độ địa chỉ gián tiếp qua thanh ghi [Register Indirect Addressing Mode] 5. Chế độ địa chỉ tương đối cơ sở [Indexed Plus Displacement Addressing Mode] 6. Chế độ địa chỉ tương đối chỉ số [Indexed Plus Displacement Addressing Mode] 7. Chế độ địa chỉ tương đối chỉ số cơ sở [Based Indexed Plus Displacement Addressing Mode ] 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 22 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 6. Các chế độ địa chỉ của 8086/8088  Chế độ địa chỉ thanh ghi:  Sử dụng các thanh ghi bên trong cpu như l à các toán hạng để chứa dữ liệu cần thao tác.  Cả toán hạng nguồn và đích đều là các thanh ghi  VD: mov bx, dx; bx  dx mov ds, ax; ds  ax add al, dl; al  al + dl 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 23 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 6. Các chế độ địa chỉ của 8086/8088  Chế độ địa chỉ tức thì:  Toán hạng đích là một thanh ghi hay một ô nhớ  Toán hạng nguồn là một hằng số  VD: mov cl, 200; cl  100 mov ax, 0ff0h; ax  0ff0h mov ds, ax mox [bx], 200; chuyển 200 vào ô nhớ có địa chỉ là DS:BX 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 24 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 6. Các chế độ địa chỉ của 8086/8088  Chế độ địa chỉ trực tiếp:  Một toán hạng là một hằng biểu diễn địa chỉ lệch [offset] của ô nhớ  Toán hạng còn lại có thể là thanh ghi [không được là ô nhớ]  VD: MOV AL, [8088H] MOV [1234H], DL MOV AX, [1234H] DS là thanh ghi đoạn ngầm định trong chế độ địa chỉ trực tiếp. 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 25 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 6. Các chế độ địa chỉ của 8086/8088  Chế độ địa chỉ gián tiếp qua thanh ghi:  Một toán hạng là một thanh ghi chứa địa chỉ lệch của ô nhớ  Toán hạng còn lại có thể là thanh ghi hoặc hằng [ko được là ô nhớ]  VD: MOV AL, [BX]; AL  [DS:BX] MOV AL, [BP]; AL  [SS:BP] 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 26 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 6. Các chế độ địa chỉ của 8086/8088  Chế độ địa chỉ tương đối cơ sở:  Một toán hạng là đ/c của ô nhớ. • Đ/c của ô nhớ được tạo bởi việc sử dụng thanh ghi cơ sở như BX [đoạn DS] hoặc BP [đoạn SS] và một hằng số. • Hằng số trong địa chỉ tương đối cơ sở biểu diễn các giá trị dịch chuyển [displacement] được dùng để tính địa chỉ hiệu dụng của các toán hạng trong các vùng nhớ DS và SS.  Toán hạng còn lại có thể là thanh ghi [ko được là ô nhớ]  VD: MOV AL, [BX+100]; AL  [DS: BX+100] MOV AL, [BP+200]; AL  [SS: BP+200] 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 27 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 6. Các chế độ địa chỉ của 8086/8088  Chế độ địa chỉ tương đối chỉ số:  Một toán hạng là đ/c của ô nhớ. • Đ/c của ô nhớ được tạo bởi việc sử dụng thanh ghi cơ sở SI hoặc DI và một hằng số. • Hằng số trong địa chỉ tương đối cơ sở biểu diễn các giá trị dịch chuyển [displacement] được dùng để tính địa chỉ hiệu dụng của các toán hạng trong các vùng nhớ DS.  Toán hạng còn lại có thể là thanh ghi [ko được là ô nhớ]  VD: MOV AL, [SI+100]; AL  [DS: BX+100] MOV AL, [DI+200]; AL  [DS: BP+200] 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 28 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 6. Các chế độ địa chỉ của 8086/8088  Chế độ địa chỉ tương đối chỉ số cơ sở:  Một toán hạng là đ/c của ô nhớ. • Đ/c của ô nhớ được tạo bởi việc sử dụng các thanh ghi BX+SI/DI [đoạn DS] hoặc BP+SI/DI [đoạn SS] và một hằng số. • Hằng số trong địa chỉ tương đối cơ sở biểu diễn các giá trị dịch chuyển [displacement] được dùng để tính địa chỉ hiệu dụng của các toán hạng trong các vùng nhớ DS và SS.  Toán hạng còn lại có thể là thanh ghi [ko được là ô nhớ]  VD: MOV AL, [BX+SI+100]; AL[DS:BX+SI+100] MOV AL, [BP+DI+200]; AL[ES:BP+DI+200] 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 29 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 Ánh xạ ngầm định trong các chế độ địa chỉ 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 30 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 Ánh xạ ngầm định giữa thanh ghi đoạn và lệch  Địa chỉ ngầm định: MOV AL, [BX]; AL  [DS:BX] MOV [SI+300], AH; [DS:SI+300]  AH  Địa chỉ tường minh [đầy đủ]: MOV AL, ES:[BX]; AL  [ES:BX] MOV SS:[SI+300], AH; [SS:SI+300]  AH 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 31 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 7. Phân loại tập lệnh của vi xử lý  Tập lệnh phức hợp [CISC] và tập lệnh giảm thiểu [RISC]  CISC [Complex Instruction Set Computers] • Hỗ trợ tập lệnh phong phú -> giảm lượng mã chương trình • Tập lệnh lớn -> khó tối ưu hoá cho chương trình dịch • Các lệnh có độ dài và thời gian thực hiện khác nhau -> giảm hiệu năng của cơ chế ống lệnh [pipeline]  RISC [Reduced Instruction Set Computers] • Tập lệnh tối thiểu: số lượng lệnh, các chế độ đ/c khuôn dạng lệnh và thời gian thực hiện • Tăng được hiệu năng của cơ chế ống lệnh [pipeline] • Dễ tối ưu hoá trong chương trình dịch • Chương trình thường dài, cần nhiều bộ nhớ và tăng thời gian truy cập bộ 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 32 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 7. Phân loại tập lệnh của vi xử lý  Phân loại tập lệnh của vi xử lý họ CISC  Vận chuyển DL  Số học nguyên và logic  Dịch và quay  Chuyển điều khiển  Xử lý bit  Điều khiển hệ thống  Thao tác dấu phảy động  Các lệnh của các đơn vị chức năng đặc biệt 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 33 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 8. Mô tả tập lệnh của 8086/8088  Các lệnh vận chuyển dữ liệu: vận chuyển dữ liệu giữa thanh ghi – thanh ghi; thanh ghi–ô nhớ; thanh ghi – thiết bị vào ra.  Các lệnh: MOV, IN, OUT  Các lệnh vận chuyển dữ liệu không ảnh hưởng đến các cờ trạng thái của thanh ghi cờ  Lệnh MOV:  Dạng lệnh: MOV Đích, Gốc; Đích  Gốc  Ý nghĩa: chuyển [sao chép] dữ liệu từ Gốc sang Đích  Ví dụ: MOV AL, 100; AL  100 MOV [BX], AH; [DS:BX]  AH MOV DS, AX; DS  AX 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 34 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 8. Tập lệnh - Các lệnh vận chuyển dữ liệu  Lệnh IN:  Dạng lệnh: IN ,  Ý nghĩa: đọc dữ liệu từ lưu vào  Ví dụ: IN AL, 03F8H; AL  [03F8h] MOV DX, 02F8H IN AL, DX; AL  [DX] 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 35 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 8. Tập lệnh - Các lệnh vận chuyển dữ liệu  Lệnh OUT:  Dạng lệnh: OUT ,  Ý nghĩa: Lưu dữ liệu từ Gốc ra  Ví dụ: OUT 03F8H, AL; [03F8h]  AL MOV DX, 02F8H IN DX, AL; [DX]  AL 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 36 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 8. Tập lệnh - Các lệnh số học  Là các lệnh thực hiện các phép toán số học: cộng [ADD], trừ [SUB], nhân [MUL] và chia [DIV];  Lệnh ADD – cộng các số nguyên:  Dạng lệnh: ADD , ; Đích  Đích + Gốc  Ý nghĩa: Lấy Gốc cộng với Đích, kết quả lưu vào Đích  Lệnh ADD ảnh hưởng đến các cờ: C, Z, S, P, O, A  Ví dụ: ADD AX, BX; AX  AX + BX ADD AL, 10; AL  AL + 10 ADD [BX], AL; [DS:BX]  [DS:BX] + AL 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 37 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 8. Tập lệnh - Các lệnh số học  Lệnh SUB – trừ các số nguyên:  Dạng lệnh: SUB , ; Đích  Đích - Gốc  Ý nghĩa: Lấy Đích trừ Gốc, kết quả lưu vào Đích  Lệnh SUB ảnh hưởng đến các cờ: C, Z, S, P, O, A  Ví dụ: SUB AX, BX; AX  AX - BX SUB AL, 10; AL  AL - 10 SUB [BX], AL; [DS:BX]  [DS:BX] - AL 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 38 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 8. Tập lệnh - Các lệnh số học  Lệnh MUL – nhân các số nguyên:  Dạng lệnh: MUL ;  Gốc phải là một thanh ghi hoặc địa chỉ ô nhớ  Ý nghĩa: • Nếu Gốc là 8 bit: AX  AL * Gốc • Nếu Gốc là 16 bit: DXAX  AX * Gốc  Lệnh MUL ảnh hưởng đến các cờ: Z, S, P  Ví dụ: tính 10 * 30 MOV AL, 10; AL  10 MOV BL, 30; BL  30 MUL BL; AX  AL * BL 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 39 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 8. Tập lệnh - Các lệnh số học  Lệnh DIV – chia các số nguyên:  Dạng lệnh: DIV ;  Gốc phải là một thanh ghi hoặc địa chỉ ô nhớ  Ý nghĩa: • Nếu Gốc là 8 bit: AX : Gốc; AL chứa thương và AH chứa phần dư • Nếu Gốc là 16 bit: DXAX : Gốc; AX chứa thương và DX chứa phần dư  Lệnh MUL ảnh hưởng đến các cờ: Z, S, P  Ví dụ: tính 100 : 30 MOV AX, 100; AL  100 MOV BL, 30; BL  30 DIV BL; AX : BL; AL = 3, AH = 10 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 40 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 8. Tập lệnh - Các lệnh logic  Các lệnh logic: NOT [phủ định], AND [và], OR [hoặc] và XOR [hoặc loại trừ]. Bảng giá trị của các phép toán logic: 011011 110001 110110 000100 XORORANDNOTYX 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 41 CHƯƠNG 2 – BỘ VI XỬ LÝ INTEL 8086/8088 8. Tập lệnh - Các lệnh logic  Lệnh NOT  Dạng: NOT  Ý nghĩa: Đảo các bít của toán hạng Đích  Lệnh NOT ảnh hưởng đến các cờ: Z, S, P  VD: MOV AL, 80H; 80H = 1000 0000B NOT AL; 7FH = 0111 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 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 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 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]. 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 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

Các file đính kèm theo tài liệu này:

  • tailieu.pdf

Chủ Đề