Bài giảng Kỹ thuật vi xử lý- Chương Bộ vi xử lý Intel 8088 - pdf 16

Download miễn phí Bài giảng Kỹ thuật vi xử lý- Chương Bộ vi xử lý Intel 8088



Các lệnh của bộvi xửlý được ghi bằng các ký tựdưới dạng gợi nhớ(mnemonic) đểngười
sửdụng dễnhận biết. Tuy nhiên đối với bản thân bộvi xửlý thì các lệnh cho nó được mã hoá
dưới dạng các số0 và 1 (còn gọi là mã máy), vì đây là dạng biểu diễn thông tin duy nhất mà
máy hiểu được. Bởi vậy các lệnh dưới dạng các ký tựgợi nhớphải được dịch ra mã máy. Việc
dịch này được thực hiện bằng các chương trình dịch hợp ngữnhưMASM, TASM.
Vì lệnh cho bộvi xửlý được cho dưới dạng mã máy nên sau khi nhận lệnh bộvi xửlý phải
thực hiện giải mã lệnh rồi sau đó mới thực hiện lệnh. Một lệnh vi xửlý có thểdài một vài byte
tuỳtheo bộvi xửlý. Đối với bộvi xửlý 8088 một lệnh có độdài từ1 - 6 byte. Ví dụ, lệnh
MOV dạng mã máy cần ít nhất là 2 byte, trong đó 6 bit của byte đầu dùng đểchứa mã lệnh.
Ví dụ:Dạng mã máy của lệnh MOV



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

Bài giảng kỹ thuật vi xử lý - GV. Ngô Công Thắng Chương 2 Bộ vi xử lý Intel 8088
- 10 -
CHƯƠNG 2 BỘ VI XỬ LÝ INTEL 8088
Sở dĩ chúng ta chọn bộ vi xử lý 8088 của Intel để nghiên cứu là vì bộ vi xử lý này khá đơn
giản nên việc hiểu nó là tương đối dễ đối với những người mới bắt đầu thâm nhập vào lĩnh
vực này. Lý do thứ hai là nhờ có tính kế thừa của các sản phẩm trong họ vi xử lý 80x86 nên
các chương trình viết cho 8088 vẫn có thể chạy được trên các hệ vi xử lý tiên tiến sau này. Lý
do thứ ba là các họ vi xử lý của các hãng khác nhau tuy có khác nhau nhưng xét cho cùng có
khá nhiều điểm chủ yếu rất giống nhau. Vì vậy, một khi đã nắm được các vấn đề kỹ thuật của
8086 ta sẽ có cơ sở để tìm hiểu các bộ vi xử lý khác cùng họ 80x86 hay các bộ vi xử lý của
các hãng khác.
I - CẤU TRÚC BÊN TRONG VÀ NGUYÊN LÝ HOẠT ĐỘNG CỦA BỘ VI XỬ LÝ 8088
1. Sơ đồ khối của bộ vi xử lý 8088
EU (Execution Unit) BIU (Bus Interface Unit)
AX
BX
CX
DX
SP
BP
SI
DI
CS
DS
SS
ES
IP

Logic điều
khiển bus
ALU
Các thanh ghi tạm thời
Thanh ghi cờ
Khối điều
khiển EU
Các thanh
ghi đa năng
Các thanh
ghi con trỏ
và chỉ số
Các thanh
ghi đoạn
và con trỏ
lệnh
Bus dữ liệu ALU (16 bit)
Bus địa chỉ (20 bit)
B
us dữ liệu (8 bit)
B
us địa chỉ (20 bit)
Bus
ngoài
Hàng đợi lệnh
(4 byte)
8 bit
dữ liệu
Bài giảng kỹ thuật vi xử lý - GV. Ngô Công Thắng Chương 2 Bộ vi xử lý Intel 8088
- 11 -
Nhìn vài sơ đồ ta thấy, bên trong CPU 8088 có hai khối chính: khối phối ghép bus (Bus
Interface Unit, BIU) và khối thực hiện lệnh (Execution Unit, EU). Trong khối BIU có các
thanh ghi đoạn và thanh ghi con trỏ lệnh IP, khối logic điều khiển bus, bộ cộng, bus dữ liệu 8
bit và bus địa chỉ 20 bit. Trong khối EU có các thanh ghi đa năng, các thanh ghi con trỏ và chỉ
số, khối tính toán số học và logic ALU, khối điều khiển CU, bus dữ liệu 16 bit của ALU, bus
tín hiệu điều khiển. Việc chia CPU thành hai phần làm việc đồng thời có liên hệ với nhau qua
hàng đợi lệnh làm tăng tốc độ đáng kể của CPU.
2. Nguyên lý hoạt động
BIU có nhiệm vụ đưa ra địa chỉ, đọc mã lệnh từ bộ nhớ, đọc/ghi dữ liệu từ/vào cổng hay
bộ nhớ. Bên trong BIU còn có bộ nhớ đệm lệnh (còn gọi là hàng đợi lệnh) với dung lượng 4
byte dùng để chứa các lệnh đã đọc được nằm sẵn chờ EU xử lý. Đây là một cấu trúc mới được
cấy vào bộ vi xử lý 8086/88 để thực hiện cơ chế xử lý liên tục dòng mã lệnh (instruction
pipelining). Pipeline là một cơ chế đã được ứng dụng từ những năm 60 trong các máy tính
lớn.
EU có nhiệm vụ cung cấp địa chỉ cho BIU để khối này đọc lệnh và dữ liệu, còn bản thân
nó thì giải mã lệnh và thực hiện lệnh. Mã lệnh đọc vào từ bộ nhớ được đưa đến đầu vào của
bộ giải mã (nằm trong khối điều khiển CU), các thông tin thu được từ đầu ra của bộ giải mã sẽ
được đưa đến mạch tạo xung điều khiển để tạo ra các dãy xung khác nhau (tùy từng lệnh) điều
khiển hoạt động của các bộ phận bên trong và bên ngoài CPU. Trong EU còn có khối tính
toán số học và logic ALU dùng để thực hiện các thao tác khác nhau với các toán hạng của
lệnh.
II - CÁC THANH GHI VÀ CÁC CHẾ ĐỘ ĐỊA CHỈ
1. Các thanh ghi
Bên trong CPU có một số ô nhớ được gọi là thanh ghi (register). Các thanh ghi có độ dài
16 bit và được chia thành: thanh ghi đoạn, thanh ghi đa năng, thanh ghi con trỏ và chỉ số,
thanh ghi cờ.
a) Thanh ghi đoạn
Bộ vi xử lý 8086/88 làm việc ở chế độ thực, với 20 bit địa chỉ bộ vi xử lý này có khả năng
đánh địa chỉ cho 220 = 1 M ô nhớ = 1 MB. Trong 1 MB bộ nhớ người ta chia thành các đoạn
64 KB khác nhau để:
- chứa mã chương trình,
- chứa dữ liệu và kết quả trung gian của chương trình và
- tạo ra một đoạn nhớ đặc biệt gọi là ngăn xếp (STACK) dùng vào việc quản lý các thông
số của vi xử lý khi gọi CTC con hay trở về từ CTC.
Để quản lý các đoạn nhớ trên, bộ vi xử lý 8088 có 4 thanh ghi đoạn xác định địa chỉ bắt
đầu của 4 đoạn nhớ 64 KB:
+ CS (Code Segment): thanh ghi đoạn mã, xác định địa chỉ bắt đầu của đoạn nhớ chứa
mã chương trình.
+ DS (Data Segment): thanh ghi đoạn dữ liệu, xác định địa chỉ bắt đầu của đoạn nhớ
chứa hầu hết dữ liệu của chương trình.
+ ES (Extra Segment): thanh ghi đoạn dữ liệu phụ, xác định địa chỉ bắt đầu của đoạn nhớ
chứa dữ liệu phụ. Đoạn nhớ này được các lệnh về chuỗi sử dụng để chữ dữ liệu đích.
+ SS (Stack Segment): thanh ghi đoạn ngăn xếp, xác định địa chỉ bắt đầu của đoạn nhớ
ngăn xếp.
Nội dung của các thanh ghi đoạn xác định địa chỉ của ô nhớ nằm ở đầu đoạn tương ứng. Vì
địa chỉ của ô nhớ là 20 bit mà các thanh ghi đoạn chỉ có 16 bit nên bộ vi xử lý phải thêm 0H
vào bên phải nội dung của thanh ghi đoạn để có địa chỉ 20 bit của ô nhớ nằm ở đầu đoạn. Địa
chỉ này gọi là địa chỉ cơ sở hay địa chỉ đoạn. Địa chỉ của các ô nhớ khác trong đoạn được tính
bằng cách cộng thêm vào địa chỉ đoạn một giá trị gọi là độ lệnh (offset) hay địa chỉ lệch. Địa
Bài giảng kỹ thuật vi xử lý - GV. Ngô Công Thắng Chương 2 Bộ vi xử lý Intel 8088
- 12 -
chỉ lệch có độ dài 16 bit và thường đặt trong các thanh ghi 16 bit khác đóng vai trò thanh ghi
lệch. Cụ thể, để xác định địa chỉ vật lý 20 bit của một ô nhớ nào đó trong một đoạn nhớ bất
kỳ, CPU 8088 phải dùng đến hai thanh ghi 16 bit: một thanh ghi đoạn và một thanh ghi lệch.
Từ nội dung của hai thanh ghi này tạo ra địa chỉ vật lý theo công thức sau:
Địa chỉ vật lý = Nội dung thanh ghi đoạn x 24 + Nội dung thanh ghi lệch
= Địa chỉ đoạn + Địa chỉ lệch
Việc dùng hai thanh ghi để ghi nhớ thông tin về địa chỉ tạo ra một loại địa chỉ gọi là địa chỉ
logic, được ký hiệu như sau:
Thanh ghi đoạn:Thanh ghi lệch (địa chỉ lệch)
Segment:Offset
Segment:Offset là địa chỉ logic vì nó tồn tại dưới dạng giá trị của các thanh ghi, và khi cần
truy nhập ô nhớ nào thì nó phải được đổi ra địa chỉ vật lý của ô nhớ đó.
Địa chỉ logic có tính đa trị vì ứng với một địa chỉ vật lý có rất nhiều địa chỉ logic khác
nhau. Điều này cho 8086/88 linh hoạt trong việc định địa chỉ. Ví dụ, địa chỉ vật lý 12345H có
thể tạo ra từ các địa chỉ logic sau:
1000H:2345H
1200H:0345H
1004H:2305H
0300H:E345H
……
Vì các thanh ghi đoạn được thêm 0H vào bên phải để xác định địa chỉ bắt đầu của đoạn nên
các đoạn chỉ có thể bắt đầu tại các ranh giới 16 byte. Hơn nữa, vì các đoạn có độ dài 64 KB
nên khi biết địa chỉ bắt đầu của đoạn thì ta cũng biết được địa chỉ kết thúc đoạn bằng cách
cộng thêm vào địa chỉ bắt đầu đoạn FFFFH.
Ví dụ: Một thanh ghi đoạn có địa chỉ là 1000H => địa chỉ bắt đầu đoạn là 10000H và địa
chỉ kết thúc đoạn là 1FFFFH.
b) Các thanh ghi đa năng
Bộ vi xử lý 8088 có 4 thanh ghi đa năng 16 bit: AX, BX, CX, DX. Khi cần chứa dữ liệu 8
bit thì mỗi thanh nghi này có thể tách ra thành hai thanh ghi 8 bit cao và 8 bit thấp, đó là các
cặp AH và AL, BH và BL, CH và CL, DH và DL. Các thanh ghi đa năng có thể c...
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status