Đại học Công nghiệp Hà NộiBài tập lớn Nghiên cứu và tìm hiểu về tập lệnh vi xử lý 8086GV hướng dẫn: Nguyễn Thanh HảiCHƯƠNG 1. MỞ ĐẦU41.1Giới thiệu chung về vi xử lý41.1.1Lịch sử phát triển41.1.2Ứng dụng của vi xử lý51.2Giới thiệu chung về vi xử lý 808651.2.1Cấu trúc của bộ vi xử lý 808661.2.2Các chế độ định địa chỉ của bộ vi xử lý 808610CHƯƠNG 2. TẬP LỆNH VI XỬ LÝ 8086132.1Giới thiệu chung về tập lệnh vi xử lý 8086132.2Tập lệnh vi xử lý 8086132.2.1Nhóm các lệnh vận chuyển (sao chép) dữ liệu132.2.2Nhóm các lệnh tính toán số học, dịch, quay toán hạng172.2.3Nhóm các lệnh tính toán logic182.2.4Nhóm lệnh điều khiển vào ra232.2.5Nhóm các lệnh điều khiển (rẽ nhánh)242.2.6Nhóm các lệnh điều khiển302.2.7Nhóm các lệnh xử lý dữ liệu chuyên dụng322.2.8Nhóm các lệnh xử lý dấu chấm động33CHƯƠNG 3. KẾT LUẬN34
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI ﻣKHOA CÔNG NGHỆ THÔNG TIN ﻣ BÀI TẬP LỚN HỌC PHẦN: KIẾN TRÚC MÁY TÍNH Chủ đề: Nghiên cứu tìm hiểu tập lệnh vi xử lý 8086 Giáo viên hướng dẫn: Nguyễn Thanh Hải Sinh viên thực hiện: Lớp: Hà Nội - 2023 MỤC LỤC CHƯƠNG MỞ ĐẦU 1.1 Giới thiệu chung vi xử lý 1.1.1 Lịch sử phát triển 1.1.2 Ứng dụng vi xử lý 1.2 Giới thiệu chung vi xử lý 8086 1.2.1 Cấu trúc vi xử lý 8086 1.2.2 Các chế độ định địa vi xử lý 8086 10 CHƯƠNG TẬP LỆNH VI XỬ LÝ 8086 13 2.1 Giới thiệu chung tập lệnh vi xử lý 8086 13 2.2 Tập lệnh vi xử lý 8086 13 2.2.1 Nhóm lệnh vận chuyển (sao chép) liệu .13 2.2.2 Nhóm lệnh tính tốn số học, dịch, quay tốn hạng 17 2.2.3 Nhóm lệnh tính tốn logic 18 2.2.4 Nhóm lệnh điều khiển vào 23 2.2.5 Nhóm lệnh điều khiển (rẽ nhánh) .24 2.2.6 Nhóm lệnh điều khiển 30 2.2.7 Nhóm lệnh xử lý liệu chuyên dụng .32 2.2.8 Nhóm lệnh xử lý dấu chấm động 33 CHƯƠNG KẾT LUẬN 34 DANH MỤC HÌNH ẢNH Hình 1.1: Sơ đồ cấu trúc bên vi xử lý 8086 Hình 1.2: Cơ cấu nhận lệnh thực lệnh vi xử lý 8086/8088 .8 Hình 1.3: Sơ đồ chân vi xử lý 8086 Lời nói đầu Trong lĩnh vực cơng nghệ máy tính, vi xử lý 8086 đóng vai trò then chốt việc mở kỷ nguyên Đây bước đệm quan trọng, khởi đầu cho phát triển kiến trúc x86 sở để xây dựng vi xử lý đại ngày Đề tài hướng chúng em vào tập lệnh đa dạng phong phú vi xử lý 8086, từ giúp chúng em hiểu rõ cách thức hoạt động ứng dụng lập trình Trong trình nghiên cứu, chúng em tìm hiểu loại lệnh lệnh liệu chuyển đổi, lệnh toán học, lệnh luận lý lệnh nhảy Điều giúp chúng em có nhìn tổng quan cách xử lý liệu điều khiển luồng chương trình vi xử lý 8086 Chúng em khám phá cấu trúc mã hóa lệnh vi xử lý 8086 Q trình địi hỏi tỉ mỉ cẩn trọng việc phân tích bit mã lệnh, giúp chúng em hiểu rõ ý nghĩa tác dụng chúng Để nắm vững việc viết mã lệnh x86 truyền thống, chúng em thực hành viết chương trình mẫu tảng vi xử lý 8086 Q trình khơng rèn luyện kỹ lập trình, mà cịn giúp chúng em hiểu rõ cách tối ưu hóa debug chương trình Đề tài "Nghiên cứu tìm hiểu tập lệnh vi xử lý 8086" hội để chúng em khám phá thêm lĩnh vực cơng nghệ máy tính vi xử lý Điều quan trọng không kiến thức mà chúng em thu thập được, mà đam mê cống hiến hành trình nghiên cứu Chúng em xin chân thành cảm ơn hỗ trợ, động viên đồng hành thầy Nguyễn Thanh Hải bạn bè suốt trình nghiên cứu Đề tài khơng thể hồn thành mà khơng có đóng góp tất người Mong đề tài mang lại giá trị cống hiến vào lĩnh vực công nghệ máy tính vi xử lý Kính mong nhận quan tâm góp ý từ thầy bạn để chúng em hồn thiện bước CHƯƠNG MỞ ĐẦU 1.1 Giới thiệu chung vi xử lý Vi xử lý (tiếng Anh microprocessor hay microprocessor unit, viết tắt µP hay uP), đơi cịn gọi vi xử lý, linh kiện điện tử máy tính chế tạo từ transistor thu nhỏ tích hợp lên vi mạch tích hợp đơn Vi xử lý thường sử dụng thiết bị máy tính cá nhân, điện thoại thơng minh, máy tính bảng, đồng hồ thông minh nhiều thiết bị điện tử khác Nó trái tim hầu hết thiết bị di động máy tính cá nhân ngày nay, thực phép tính quản lý hoạt động hệ thống 1.1.1 Lịch sử phát triển Năm 1971: Intel 4004 - Được coi vi xử lý giới, Intel 4004 mắt Intel Corporation Nó có 4-bit sử dụng ứng dụng máy tính cá nhân sản phẩm điện tử tiêu dùng Năm 1972: Intel 8008 - Là vi xử lý 8-bit Intel, cung cấp hiệu cao trở thành vi xử lý tiên tiến so với Intel 4004 Năm 1974: Intel 8080 - Được coi vi xử lý 8-bit phổ biến dùng máy tính cá nhân Nó tạo cách mạng ngành công nghiệp máy tính tiếp tục phát triển nhiều phiên khác Năm 1978: Intel 8086 - Được giới thiệu vi xử lý 16-bit Nó dẫn đến việc đời kiến trúc xử lý x86, vốn sử dụng rộng rãi máy tính cá nhân ngày Năm 1982: Intel 80286 - Tiếp tục mở rộng kiến trúc x86 với việc giới thiệu vi xử lý 16-bit/32-bit Nó cung cấp khả xử lý nhanh hỗ trợ nhớ 16 MB Năm 1985: Intel 386 - Được xem bước đột phá đáng kể lịch sử phát triển microprocessor Intel 386 vi xử lý 32-bit đầu tiên, mang lại hiệu suất xử lý cao khả hỗ trợ multitasking Năm 1993: Intel Pentium - Được xem bước tiến lớn hiệu suất xử lý, vi xử lý Pentium trở thành biểu tượng giới máy tính gắn liền với thương hiệu Intel Năm 2003: Intel Pentium - Được xem bước tiến việc tăng tốc độ xử lý, Pentium đạt đến tốc độ xung lên đến GHz Năm 2005: Intel Core - Dòng vi xử lý Intel Core mắt, đánh dấu chuyển đổi từ kiến trúc NetBurst Pentium sang kiến trúc hiệu cao tiêu thụ lượng 10 Năm 2006: AMD Ryzen - AMD mắt dòng vi xử lý Ryzen, cạnh tranh mạnh mẽ với Intel thị trường vi xử lý máy tính 1.1.2 Ứng dụng vi xử lý Vi xử lý có nhiều ứng dụng sống đại, chủ yếu nhờ tính nhỏ gọn, hiệu cao khả tích hợp vào nhiều thiết bị Dưới số ứng dụng microprocessor: Máy tính cá nhân: Vi xử lý thành phần quan trọng máy tính cá nhân (PC) Nó thực tất phép tính điều khiển hoạt động máy tính, cho phép thực nhiều nhiệm vụ lướt web, xem video, chơi game, xử lý liệu, nhiều công việc khác Thiết bị di động: Vi xử lý chạy điện thoại thơng minh, máy tính bảng, đồng hồ thơng minh nhiều thiết bị di động khác Nó điều khiển hỗ trợ ứng dụng di động, gọi điện, truyền thông, chụp ảnh, quay video cung cấp nhiều tính thơng minh khác Ơ tơ thơng minh: Trong tơ đại, vi xử lý đóng vai trò quan trọng hệ thống điều khiển định vị GPS, hỗ trợ lái tự động (autopilot), hệ thống giám sát giảm thiểu tai nạn, hệ thống thơng tin giải trí, tính kết nối thông minh Thiết bị gia dụng: Vi xử lý tích hợp thiết bị gia dụng tivi thơng minh, tủ lạnh thơng minh, máy giặt, lị vi sóng, máy pha cà phê tự động, thiết bị điện tử gia dụng khác Chúng cung cấp tính tự động hóa kết nối thơng minh, giúp tối ưu hóa tiện ích tiết kiệm lượng Công nghiệp dân dụng: Trong ngành công nghiệp, vi xử lý sử dụng máy CNC (Computer Numerical Control), máy hàn tự động, máy in 3D, hệ thống kiểm sốt tự động hóa quy trình sản xuất Trong dân dụng, chúng sử dụng hệ thống an ninh, điều khiển nhiệt độ, hệ thống giám sát, nhiều ứng dụng khác Thiết bị y tế: Trong lĩnh vực y tế, vi xử lý sử dụng thiết bị y tế di động, máy đo huyết áp tự động, máy đo đường huyết, thiết bị hỗ trợ thính giác, thiết bị y tế điện tử khác Công nghệ mạng viễn thơng: Vi xử lý đóng vai trị quan trọng hệ thống viễn thơng mạng, giúp xử lý liệu tăng cường hiệu suất truyền thông Trên thực tế, vi xử lý tiếp tục có ảnh hưởng mạnh mẽ lĩnh vực sống, từ công nghiệp đến gia đình cá nhân, giúp thúc đẩy phát triển công nghệ sống đại 1.2 Giới thiệu chung vi xử lý 8086 Bộ vi xử lý 8086, giới thiệu năm 1978, vi xử lý 16 bit đầu tiên, mở đầu cho họ vi xử lý x86 Bên vi xử lý 8086 29000 transistor, sản xuất công nghệ NMOS CMOS với ba phiên bản: - 8086: hoạt động tần số 4.77 MHz - 8086-8: hoạt động tần số MHz - 8086-10: hoạt động tần số 10 MHz Cả ba phiên đóng gói dạng DIP 40 chân, điện áp ni 5V 1.2.1 Cấu trúc vi xử lý 8086 1.2.1.1 Tổng quan Đây vi xử lý tiếng thời hãng Intel sử dụng nhiều lĩnh vực khác Các chương trình viết cho 80x86 chạy trên hệ tiên tiến sau Các họ vi xử lý hãng có khác xét cho có nhiều điểm chủ yếu giống nhau, nắm vững vấn đề kỹ thuật 8086 ta có sở để nắm bắt vi xử lý khác họ Intel họ khác Về góc độ sư phạm vi xử lý đơn giản việc hiểu tương đối đơn giản cho người bắt đầu gia nhập vào lĩnh vực Các thông số 8086 sau: - Năm sản xuất: 6/1978 - fclockmax (xung nhịp tối đa): 10 MHz - MIPS (triệu lệnh/giây): 0.33 - Số transistor: 29000 - Bus số liệu: 16 bit - Bus địa chỉ: 20 bit - Khả địa chỉ: MB - Số chân: 40 - Độ dài nhớ đệm lệnh (hàng đợi): byte - Có thể thao tác với bit, byte, word, dword Có khả thực phép tính với số 16 bit có dấu khơng có dấu dạng nhị phân thập phân, bao gồm phép chia phép nhân 1.2.1.2 Cấu trúc bên hoạt động vi xử lý 8086 Sau sơ đồ khối cấu trúc bên vi xử lý 8086: - EU: Execution Unit (khối thực lệnh) - BIU: Bus Interface Unit (khối phối ghép bus) - ALU: Arithmetic and Logic Unit (khối số học logic) Hình 1.1: Sơ đồ cấu trúc bên vi xử lý 8086 BIU: Cung cấp chức liên quan đến việc nhận lệnh xếp hàng lệnh, lưu trữ toán hạng định vị địa Khối cung cấp chức điều khiển BUS sở Trong hầu hết trường hợp thời gian thực lệnh lấy lệnh thực lệnh trùng Chính điều làm tăng khả hoạt động vi xử lý thông qua việc cải thiện Bus Trong khối thực lệnh bận rộn với lệnh thời BIU bắt đầu việc lấy lệnh từ nhớ phần cuối chúng đặt RAM nội tốc độ cao gọi hàng đợi Độ dài hàng đợi với vi xử lý 8086 6byte Kỹ thuật hàng đợi lệnh cho phép BIU sử dụng nhớ hiệu BIU lấy mã lệnh nhớ đưa vào hàng đợi Theo cách BIU cung cấp lệnh cách liên tục mà không độc chiếm BIU Điều làm giảm đáng kể thời gian chết Bus Hàng đợi lệnh làm việc đệm lệnh FIFO (First In First Out, vào trước trước) Nếu có vào/ra liên tục dịng mã lệnh đệm có nghĩa có phối hợp hoạt động hiệu hai khối EU BIU theo chế xử lý xen kẽ liên tục dòng mã lệnh để làm tăng tốc độ xử lý tổng thể Kỹ thuật xen kẽ liên tục dịng mã lệnh khơng cịn tác dụng tăng tốc độ xử lý CPU đệm lệnh có chứa mã lệnh lệnh CALL (gọi chương trình con) JMP (nhảy), lúc gặp lệnh nội dung cũ đệm lệnh bị xoá thay vào nội dung nạp lệnh lệnh nhảy gọi định Việc tiêu tốn nhiều thời gian so với trường hợp đệm có mã lệnh lệnh EU: Nhận lệnh lấy trước từ hàng đợi lệnh cung cấp toán hạng, địa cho BIU để khối đọc lệnh liệu Trong thân EU giải mã lệnh, thực hiện, lại chuyển kết tới BIU để lưu trữ Thao tác thực trước tiên EU việc giải mã lệnh khoảng thời gian lãng phí CPU mà dường chẳng có hoạt động mặt điện diễn Bus Nhưng thực tế, khoảng thời gian khoảng thời gian BIU khai thác để lấy trước câu lệnh mô tả Các lệnh chứa hàng đợi lệnh lệnh cất nhớ liên tiếp lệnh thực Nếu EU thực lệnh chuyển điều khiển đến nơi khác BIU xố hàng đợi, lấy lệnh từ địa mới, chuyển cho EU lại bắt đầu lấy tiếp lệnh để đưa vào hàng đợi Hình 1.2: Cơ cấu nhận lệnh thực lệnh vi xử lý 8086/8088 Chỉ dẫn lệnh: - Lệnh (đã có sẵn): Thực ghi kết - Lệnh 2: Chỉ thực lệnh - Lệnh 3: Đọc toán hạng thực Khối EU tạo thành từ ghi chung vi xử lý 8086/8088 Như biết, tất ghi đường truyền liệu nội có độ rộng 16 bit khơng có giao tiếp trực tiếp EU mơi trường bên ngồi mà nhận lệnh từ “hàng đợi” BIU cung cấp (EU không nối với Bus hệ thống mà lấy lệnh từ hàng đợi) Khi lệnh yêu cầu truy nhập tới nhớ I/O, khối EU lệnh cho khối BIU truyền/nhận liệu Tất liệu EU điều khiển địa 16 bit Nhưng thơng qua việc di chuyển vị trí nhớ BIU thực (định vị lại địa chỉ) khối EU truy cập tới tồn bộ nhớ MB ALU: Đây tập EU, thực tế giống phần có cấu trúc độc lập, chịu trách nhiệm thực thao tác số học thao tác logic Các tốn hạng liệu tức thì, liệu từ ghi liệu lưu trữ nhớ Trong kết lại định vị ghi nhớ cờ trạng thái cập nhật dựa kết thao tác 1.2.1.3 Mô tả chức chân vi xử lý 8086 Hình 1.3: Sơ đồ chân vi xử lý 8086 - - AD0 – AD15 [I/O]: Các chân dồn kênh cho tín hiệu bus liệu bus địa Xung ALE báo cho mạch biết đường có liệu (ALE=0) có địa (ALE=1) Tín hiệu chuyển sang trạng thái trở kháng cao (nhằm tránh gây xung đột liệu do) Bus nội nhận tín hiêu treo A16/S3, A17/S4, A18/S5, A19/S6 [O]: Địa chỉ/ trạng thái Đây đường địa cao Khi ALE=1, chân mang tín hiệu địa Khi ALE=0, chân dùng để truyền tín hiệu trạng thái