1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÀI TẬP LỚN MÔN HỌC KIẾN TRÚC MÁY TÍNH: NGHIÊN CỨU TÌM HIỂU VỀ TẬP LỆNH VI XỬ LÝ 8086

20 43 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 774 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Cách đây 30 năm, Intel tung ra bộ vi xử lý 8086, giới thiệu kiến trúc x86, làm nền tảng cho tất cả các PC bao gồm Windows, Mac hay Linux được sản xuất ngày nay. Sự ra đời của bộ vi xử lý Intel 8086 năm 1978 là một sự kiện trọng đại đối với ngành công nghiệp máy tính. Bộ vi xử lý 8086 là trung tâm của bất kỳ máy tính nào, từ Windows, Mac hay Linux, đã biến Intel từ một công ty sản xuất chip bán dẫn nhỏ thành một tên tuổi nổi tiếng nhất trên thế giới. Điều ngạc nhiên về sự thành công kỳ diệu của 8086 là rất ít người kỳ vọng về nó khi 8086 còn đang được “thai nghén”. Lịch sử của bộ vi xử lý cách mạng này là một câu chuyện kinh điển về một nhóm nhỏ các kỹ sư thiên tài có thể đạt được thành công khi họ được tự do làm công việc nghiên cứu theo những cách sáng tạo

Trang 1

Trường đại học công nghiệp Hà Nội

Khoa Công Nghệ Thông Tin

- -BÀI TIỂU LUẬN MÔN HỌC: KIẾN TRÚC MÁY TÍNH

ĐỀ TÀI: Nghiên cứu tìm hiểu về tập lệnh vi xử lý 8086

Giáo viên hướng dẫn: Nguyễn Thanh Hải

Lớp: Đại học KTPM3-K9

Nhóm số: 7

Hà Nội, ngày 15 tháng 10 năm 2015

Trang 2

Trường đại học công nghiệp Hà Nội Khoa Công Nghệ Thông Tin

Báo cáo bài tập lớn môn học Kiến trúc Máy tính

ĐỀ TÀI: Nghiên cứu tìm hiểu về tập lệnh vi xử lý 8086

Nhóm thực hiện: Nhóm 7–Lớp KTPM3-K9 Thành viên trong nhóm: 1 Hoàng Tấn Phát

2 Thân Thế Văn

3 Lê Thanh Trà

4 Ngô Văn Chường

5 Nguyễn Hữu Minh

6 Lê Quốc Bình

Giáo viên hướng dẫn: Nguyễn Thanh Hải

(GV Kiến Trúc Máy Tính)

Hà Nội ,ngày 15 tháng 10 năm 2015

Trang 3

MỤC LỤC Nội dung Trang

Trang 4

Mở đầu

1 Nhiệm vụ của bài

Nghiên cứu tìm hiểu về tập lệnh vi xử lý 8086.

2 Bố cục

* Trình bày sơ đồ khối chức năng bên trong CPU 8086.

* Đặc điểm chức năng các thanh trong CPU 8086.

* Cấu trúc lệnh cùng tập lệnh của 8086.

Nội dung

I LỊCH SỬ RA ĐỜI BỘ VI XỬ LÝ 8086

Cách đây 30 năm, Intel tung ra bộ vi xử lý 8086, giới thiệu kiến trúc x86, làm nền tảng cho tất cả các PC bao gồm Windows, Mac hay Linux được sản xuất ngày nay

Sự ra đời của bộ vi xử lý Intel 8086 năm 1978 là một sự kiện trọng đại đối với ngành công nghiệp máy tính Bộ vi xử lý 8086 là trung tâm của bất kỳ máy tính nào, từ Windows, Mac hay Linux, đã biến Intel từ một công ty sản xuất chip bán dẫn nhỏ thành một tên tuổi nổi tiếng nhất trên thế giới

Điều ngạc nhiên về sự thành công kỳ diệu của 8086 là rất ít người kỳ vọng về nó khi 8086 còn đang được “thai nghén” Lịch sử của bộ vi xử lý cách mạng này là một câu chuyện kinh điển về một nhóm nhỏ các kỹ sư thiên tài có thể đạt được thành công khi họ được tự do làm công việc nghiên cứu theo những cách sáng tạo

Khi sự phát triển của 8086 bắt đầu vào tháng 5 năm 1976, các giám đốc điểu hành của Intel chưa bao giờ tưởng tượng được sự tác động ngoạn mục mà 8086 mang lại Công ty xem 8086 như một dự án lấp chỗ trống trong khi công ty đang kỳ vọng vào một bộ vi xử lý phức tạp và khác biệt là 8800 (tên sau đó là iAPX 432) Trong một

kỷ nguyên mà hầu hết các dòng chip đều sử dụng 8-bit dữ liệu, 8800 đã nhảy vọt lên

32 bit Khả năng xử lý đa nhiệm nâng cao và mạch quản lý bộ nhớ có thể được xây dựng tạo thành CPU, cho phép hệ điều hành chạy ít dòng mã điều khiển hơn

Nhưng dự án 8800 gặp khó khăn Dự án này đã vấp phải rất nhiều sự trì hoãn khi các kỹ sư Intel nhận thấy rằng thiết kế phức tạp của chip rất khó có thể chế tạo với công nghệ chip hiện thời Vấn đề của Intel chưa dừng ở đó, Intel bị “chọc sườn” bởi công ty Zilog (công ty được thành lập từ những kỹ sư xuất phát từ Intel) Zilog nhanh chóng chiếm thị phần cho dòng vi xử lý bậc trung với sản phẩm Z80 CPU Ra đời tháng 7, năm 1976 Z80 là phiên bản nhái nâng cao của dòng chip Intel 8080 - dòng chip đã khởi nguồn cho cuộc cách mạng máy tính cá nhân Intel đã phải đưa ra câu câu trả lời cho Z80

Kỹ sư kì cựu của Intel – Stephen Morse là tác giả của những đoạn mã trong 8086

Trang 5

Các giám đốc điều hành của Intel vẫn duy trì niềm tin vào 8800 nhưng biết rằng công

ty cần câu trả lời cho mối nguy từ Zilog Họ quay sang Stephen Morse, người kỹ sư điện tử 36 tuổi, người đã gây ấn tượng với họ về sự nghiên cứu kỹ càng tới các lỗi trong thiết kế chip 8800 Công ty chỉ định Morse làm kỹ sư duy nhất cho dự án 8086

“Nếu ban giám đốc Intel có một ý niệm mơ hồ nào đó rằng kiến trúc này sẽ tồn tại cho rất nhiều thế hệ và trong các bộ vi xử lý… ngày nay thì họ sẽ không bao giờ tin tưởng giao công việc này cho duy nhất một người” ông Morse hồi tưởng lại

Bổ nhiệm Morse là một lý do ngạc nhiên khác Ông ta là kỹ sư phần mềm Trước đây, thiết kế CPU ở Intel là miền đất chỉ cho các kỹ sư phần cứng “Lần đầu tiên, chúng tôi nhìn các tính năng của bộ vi xử lý từ các khía cạnh của phần mềm Câu hỏi không phải là những tính năng gì chúng ta có thể phát triển mà là những tính năng gì chúng ta muốn để làm cho phần mềm hiệu quả hơn.” Morse nói Hướng tiếp cận tập trung vào phần mềm đã chứng minh cho cuộc cách mạng trong ngành công nghiệp này

Mặc dù 8086 là dự án “con cưng” của Morse, nhưng ông ta không làm việc đơn độc Tham gia vào nhóm của Morse là các nhân viên của Intel, bao gồm Bill Pohlman, Jim McKevitt và Bruce Ravenel, tất cả đã góp sức đưa 8086 bước ra thị trường vào mùa hè năm 1978

Vượt ra ngoài việc chỉ dừng lại ở một số yêu cầu cơ bản, 8086 tương thích với các phần mềm viết cho 8080 và có khả năng hỗ trợ 128KB bộ nhớ - các nhà lãnh đạo của Intel không can thiệp vào công việc của Morse “Bởi vì không ai mong đợi thiết kế

sẽ tồn tại lâu dài, không rào cản nào ngáng chân công việc của tôi, tôi tự do làm những

gì mình muốn” ông nói

II TỔ CHỨC BỘ XỬ LÝ INTEL 8086

1 Khái niệm

Vi xử lý là một bộ phận trung tâm của máy tính, nó có nhiệm vụ xử lý thông tin, vào ra

dữ liệu, điều khiển các thiết bị ngoại vi,… Một máy tính có cấu trúc bao gồm: chip vi xử lý trung tâm (CPU), bộ nhớ ROM, RAM và các thiết bị ngoại vi có nhiệm vụ giao tiếp giữa máy tính với con người

Sơ đồ khối cấu trúc máy tinh như sau:

Trang 6

a Các bộ phậncủa cấu trúc máy tính :

• Bộ vi xử lý (CPU- Central Processin Unit)

Với vai trò là bộ xử lý trung tâm, là đầu não của một máy tính, bộ vi xử lý phải thực thi nhiều nhiệm vụ từ việc vào/ra dữ liệu, xử lý thông tin, tính toán số liệu, điều khiển các thiết bị ngoại vi,…

• Bộ nhớ

- Bộ nhớ được chia thành RAM và ROM:

+ RAM (Random Access Memory): là bộ nhớ có thể ghi/đọc, có nghĩa là ta có thể đọc thông tin từ bộ nhớ, xóa thông tin cũ trong bộ nhớ hoặc ghi thông tin mới vào bộ nhớ;

+ ROM (Read Only Memory) :dùng để chứa các chương trình điều khiển hệ thống như chương trình để kiểm tra các thiết bị mỗi khi bật nguồn, chương trình khởi động máy… Nội dung bên trong ROM không bị mất đi khi bị mất nguồn

• Mạch ghép nối vào/ra

Mạch ghép nối vào/ra có nhiệm vụ tạo ra khả năng giao tiếp giữa hệ vi xử lý với thế giới bên ngoài Bao gồm các thiết bị như : thiết bị vào (bàn phím, chuột, máy

quét….).thiết bị ra(màn hình, máy in, … )

• Bus hệ thống

Gồm có:

+ Bus điều khiển:là các đương dây mạng các tín hiệu điều khiển hoạt động hoặc phản ánh trạng thái của các khối như /RD, /WR, /INT…

+ Bus dữ liệu là các đường dây mang số liệu mà vi xử lý đang trao đổi với thiết bị nhớ hoặc thiết bị ra/vào

+ Bus địa chỉ : mang thông tin về địa chỉ của ô nhớ hay một thiết bị vào/ra

b phần cứng và phần mềm:

Trang 7

• Phần cứng

Phần cứng (hardware) là thuật ngữ dùng để chỉ toàn bộ những thiết bị cơ khí, điện tử tạo nên máy tính như các ổ đĩa, màn hình,…

• Phần mềm

Phần mềm (software) là thuật ngữ dùng để chỉ các chương trình máy tính, nó được thực thi trên phần cứng bằng cách điều khiển sự hoạt động của phần cứng

Các phần mền được chia thành các loại sau:

Hệ điều hành như DOS, Windows,…

Trình tiện ích như NC, NU, BKAV,…

Chương trình ứng dụng như MS Word, Protel,……

Ngôn ngữ lập trình pascal, C, C++, Java,…

2 Cấu tạo và chức năng của 8086

a Sơ đồ khối của 8086

* Đặc điểm chức năng các thanh ghi trong CUP 8086

Trang 8

CPU-8086 có 16 thanh ghi, mỗi thanh ghi là 16 bit, có thể chia 4 nhóm sau:

1 Thanh ghi đoạn: Gồm 4 thanh ghi 16 bit: CS, DS, ES, SS Đây là những thanh ghi

dùng để chứa địa chỉ đoạn của các ô nhớ khi cần truy xuất Mỗi thanh ghi đoạn quản lý

1 đoạn tối đa 64K ô nhớ trong bộ nhớ trong Người sử dụng chỉ được phép truy xuất ô nhớ dựa vào địa chỉ tương đối CPU (cụ thể là BIU) có nhiệm vụ chuyển đổi địa chỉ tương đối thành địa chỉ tuyệt đối để truy xuất vào ô nhớ tuyệt đối tương ứng trong bộ

nhớ

CS: Thanh ghi đoạn mã lệnh, lưu địa chỉ đoạn chứa mã lệnh chương trình của người sử dụng

DS: Thanh ghi đoạn dữ liệu, lưu địa chỉ đoạn chứa dữ liệu (các biến) trong chương trình

ES: Thanh ghi đoạn dữ liệu thêm, lưu địa chỉ đoạn chứa dữ liệu thêm trong chương trình

SS: Thanh ghi đoạn ngăn xếp, lưu địa chỉ đoạn của vùng ngăn xếp

CS:Code Segment

DS:Data Segment

ES:Extra data Segment

SS:Stack Segment

Thông thường bốn thanh ghi này có thể chứa những giá trị khác nhau, do đó chương trình có thể được truy cập trên bốn đoạn khác nhau và chương trình chỉ có thể truy cập cùng 1 lúc tối đa bốn đoạn Mặc khác, đối với những chương trình nhỏ, chỉ sử dụng 1 đoạn duy nhất, khi đó cả bốn thanh ghi đều chứa cùng giá trị địa chỉ đoạn, gọi là đoạn chung

2 Thanh ghi đa dụng (General Register): Bao gồm bốn thanh ghi đa dụng 16 bit (AX,

BX, CX, DX) Mỗi thanh ghi đa dụng có thể được sử dụng với nhiều mục đích khác nhau, tuy nhiên từng thanh ghi có công dụng riêng của nó

AX : Là thanh ghi tích lũy cơ bản Mọi tác vụ vào/ra đều dùng thanh ghi này, tác vụ dùng số liệu tức thời, một số tác vụ chuỗi ký tự và các lệnh tính toán đều dùng thanh AX

Trang 9

BX: Thanh ghi nền dùng để tính toán địa chỉ ô nhớ.

CX: Là thanh ghi đếm, thường dùng để đếm số lần trong một lệnh vòng lặp hoặc lệnh xử lý chuổi ký tự

DX: Thanh ghi dữ liệu, thường chứa địa chỉ của một số lệnh vào/ra, lệnh tính toán số học (kể cả lệnh nhân và chia)

Mỗi thanh ghi 16 bit có thể chia đôi thành 2 thanh ghi 8 bit Do đó, CPU-8086 có 8 thanh ghi 8 bit là: AH, AL; BH, BL; CH, CL; DH, DL (thanh ghi AH và AL tương ứng với byte cao và byte thấp của thanh ghi AX, tương tự cho các thanh ghi 8 bit còn

lại)

Ví dụ: AX = 1234h => AH = 12h, AL = 34h

3 Thanh ghi con trỏ và chỉ số (Pointer & Index register): Chức năng chung của nhóm thanh ghi này là chứa địa chỉ độ dời của ô nhớ trong vùng dữ liệu hay ngăn xếp

SI : Thanh ghi chỉ số nguồn

DI : Thanh ghi chỉ số đích

BP: Thanh ghi con trỏ nền dùng để lấy số liệu từ ngăn xếp

SP : Thanh ghi con trỏ ngăn xếp luôn chỉ vào đỉnh ngăn xếp

SI:Source Index Reg

DI:Destination Index Reg

BP:Base Pointer Reg

SP:Stack Pointer Reg

SI và DI chứa địa chỉ độ dời của ô nhớ tương ứng trong đoạn có địa chỉ chứa trong DS hoặc ES (dữ liệu, còn gọi là Biến) Còn BP và SP chứa địa chỉ độ dời của ô nhớ tương ứng trong đoạn có địa chỉ chứa trong SS, dùng để thâm nhập số liệu trong ngăn xếp

4 Thanh ghi Đếm chương trình và thanh ghi trạng thái (Cờ):

F:Flag Register

IP:Intrucstion Pointer Reg

* Thanh ghi con trỏ lệnh IP (còn gọi là PC – đếm chương trình) là thanh ghi 16 bit chứa địa chỉ của lệnh kế tiếp mà CPU sẽ thực hiện trong Các lệnh của chương trình có địa chỉ đoạn trong CS

* Thanh ghi Cờ (F) dài 16 bit, mỗi bit là một cờ Mỗi cờ có giá trị 1 (gọi là SET –Đặt) hoặc 0 (gọi là CLEAR – Xóa) Hình 1.2 mô tả 9 bit trong số 16 bit tương ứng với 9 cờ trạng thái (các bit còn lại dùng cho dự trữ mở rộng khi thiết kế các CPU khác)

Trang 10

Thanh ghi cờ được chia thành hai nhóm:

* Nhóm cờ điều khiển (bảng 1.1) bao gồm các cờ dùng để điều khiển sự hoạt động của CPU và giá trị của cờ được thiết lập bằng các lệnh phần mềm

* Nhóm cờ trạng thái (bảng 1.2) bao gồm các cờ phản ánh kết quả thực hiện lệnh cũng như trạng thái của CPU

b Sơ đồ chân của 8086

Vi xử lý 8086 được thiết kế để hoạt động một trong hai chế độ, tùy thuộc vào mức điện áp đặt ở chân số 33 (chân MN/MX):

Chế độ tối thiểu (chế độ MIN) đươc thiết lập nếu điện áp ở chân số 33 ở mức 5V Chế độ tối đa (chế độ MAX) được thiết lập nếu điện áp ở chân số 33 ở mức 0V

Vi xử lý 8086 có 20 đường địa chỉ từ A0 đến A19 tong đó 16 đường dây địa chỉ thấp

từ A0 đến A15 được ghép kênh dữ liệu từ D0 đến D15 trên các chân từ AD0 đến AD15 ; còn 4 đường dây địa chỉ cao nhất từ A16 đến A19 được ghép kênh với tín hiệu trạng thái từ S3 đến S6 trên các chân A16/S3 đến A19/S6

- Vi xử lý 8086 có 16 đường dây dữ liệu từ Do đến D15 được ghép kênh với 16 đường địa chỉ thấp từ D0 đến D15 Khi hoạt động ở chu kỳ bus dữ liệu thì các đường dây này mang thông tin về dữ liệu, là dữ liệu đọc ra hay vào bộ nhớ

- Bốn đường dây địa chỉ cao nhất từ A16 đến A19 của 8086 cũng được ghép kênh , nhưng trong trường hợp này nó được ghép kênh với các tín hiệu trạng thái từ S3 đến S6 Các bít trang thái này được đưa ra cùng thời điểm với các dữ liệu được truyền trên các chân AD0 đén AD15

Trang 11

- READY: Tín hiệu báo cho CPU biết tình trạng sẵn sàng của thiết bị ngoại vi hay bộ nhớ Khi READY = 1 thì CPU thực hiện đọc/ghi dữ liệu Khi các thiết bị ngoại

vi hay bộ nhớ có tốc độ chậm, chúng có thể đưa tín hiệu READY = 0 để báo cho CPU biết mà chờ chúng

- ALE: [I] Address Latch Enable Xung cho phép chốt địa chỉ Khi ALE = 1 có nghĩa là trên các chân ghép kênh AD có địa chỉ của thiết bị vào/ra hoặc ônhớ Khi CPU chấp nhận treo chân này không ở trạng thái trở kháng cao mà ALE = 0

- : [O] Data bus Enable Kích hoạt các bộ đệm bus dữ liệu

- : Chọn bộ nhớ (= 0) hoặc thiếtbị vào/ra (= 1) làm việc với CPU Khi đó trên bus địa chỉ sẽ có địa chỉ tương ứng của các thiết bị đó Chân này ở trạng thái trở kháng cao khi CPU chấp nhận treo

- :[O] Data Transmit/Receive Tín hiệu này cho biết bus dữ liệu đang vận chuyển

dữ liệu vào CPU hay ra khỏi CPU Tín hiệu này cũng dùng để điều khiển các bộ đệm 2 chiều của bus dữ liệu

- : Dùng để báo rằng đang truy cập năng cao hay băng thấp của bộ nhớ

- :[O] Read signal Xung cho phép đọc Khi RD = 0 thì bus dữ liệu nhận dữ liệu

từ bộ nhớ hoặc thiết bị ngoại vi

- INTR: [I] Interrupt request Khi có yêu cầu ngắt (INTR = 1) mà cờ cho phép ngắt IF = 1 thì CPU kết thúc lệnh đang làm dở, sau đó đi vào chu kỳ chấp nhận ngắt và đưa ra bên ngoài tín hiệu INTA = 0

- :[I] Tín hiệu tại chân này được kiểm tra bởi lệnh WAIT Khi CPU thực hiện lệnh WAIT mà lúc đó tín hiệu TEST = 1 thì nó sẽ chờ cho đến khi tín hiệu TEST = 0 thì mới thực hiện lệnh tiếp theo

- NMI: [I] None-Maskable Interrupt Tín hiệu yêu cầu ngắt không che được

- RESET: Dùng để thiết lập lại phần cứng cho CPU Chuyển RESET xuống mức logic 0 dùng để khởi tạo các thanh ghi nội của vi xử lý và khởi tạo chương trình con phục vụ thiết lập hệ thống

c Các hàm ngắt và tập lệnh của 8086:

• Tập lệnh của 8086

+ Lệnh XCHG: toán hạng đích và nguồn được đổi lẫn cho nhau

XHCG đích, nguồn

Trang 12

+ Lệnh XLAT: XLAT nhãn_nguồn

+ Lệnh ADD, SUB: ADD đích,nguồn - cộng nguồn vào đích

+ Lệnh ADC: cờ nhớ được cộng vào toán hạng đích và nguồn

ADC đích,nguồn

+ Lệnh DIV: thực hiện phép chia không dấu, toán hạng nguồn có thể là một ô nhớ hay đoạn ghi Nếu toán hạng nguồn là 8 bit thì thương số nằm trong AL, số dư nằm trong AH; nếu toán hạng nguồn là 16 bit, thì thương số nằm trong AX còn số dư nằm trong DX

DIV nguồn;

+ Lệnh IDIV (integer divide): thực hiện phép chia có dấu

IDIV nguồn;

+ Lệnh IMUL: thực hiện phép nhân có dấu

IMUL nguồn;

+ Lệnh INT : dùng để gọi các hàm của DOS và BIOS ;

Cú pháp : int 21h

+ Lệnh MOV: chuyển dữ liệu từ toán hạng nguồn vào toán hạng đích

MOV đích, nguồn

+ Lệnh OUT: xuất dữ liệu từ đoạn chứa ra cổng

OUT cộng,đoạn_chứa

+ Lệnh IN: đọc dữ liệu từ cổng vào đoạn ghi

IN đoạn ghi, cổng

+ Các lệnh AND, OR, XOR và TEST

AND đích, nguồn ;AND đích với nguồn, kết quả lưu ở đích

OR đích, nguồn ;OR đích với nguồn, kết quả lưu ở đích

XOR đích, nguồn;XOR đích với nguồn, kết quả lưu ở đích

TEST đích, nguồn ;AND đích với nguồn, kết quả không lưu lại

+ Lệnh HLT (HaLT): đưa bộ vi xử lý vào trạng thái dừng để chờ ngắt ngoài Dạng lệnh: HLT

+ Lệnh LOCK: khóa bus trong môi trường có nhiều bộ vi xử lý

+ Lệnh NOP: không thực hiện một thao tác nào

+ Lệnh STI: IF được thiết lập 1

+ Lệnh WAIT: Bộ vi xử lý ở trạng thái chờ cho đến khi ngắt ngoài

Ngày đăng: 14/12/2021, 15:59

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w