Bus dữ liệuALU Các thanh ghi đoạn BUS trong của CPU đa năng Thanh ghi con trỏ, chỉ số AX BX CX DX SP BP SI DI CS DS SS ES IP Toán hạng Khối điều khiển của EU Σ Bộ tạo địa chỉ Điều khiển
Trang 1bµi 2
bé vi xö
lý 8086/88
Trang 21 Giíi thiÖu chung
Trang 31 Giíi thiÖu chung
+ 8088 lµ bé VXL 8 bit d÷ liÖu ngoµi + 8086 cã 16 bit d÷ liÖu ngoµi
Trang 52 §¬n vÞ thùc hiÖn EU
• Chøc n¨ng
- NhËn lÖnh vµ d÷ liÖu tõ BIU
- TiÕn hµnh thùc hiÖn c¸c phÐp tÝnh l«gic-sè häc
- ChuyÓn kÕt qña ra bus ngoµi qua BIU
Trang 6Tæ chøc khèi:
Gåm 3 khèi chÝnh
- TËp c¸c thanh ghi
- § ¬n vÞ l«gic sè häc ALU
- § ¬n vÞ ®iÒu khiÓn EU:nh n ậ
lenh,d lieu tu biu chuyen ữ
den, -Thuc hien lenh logia -Chuyen ket qua logic ra ben ngoai biu
Trang 7Bus dữ liệu
ALU
Các thanh ghi đoạn
BUS trong của CPU
đa năng
Thanh ghi con trỏ, chỉ số
AX BX CX DX SP BP SI DI
CS DS SS ES IP
Toán hạng
Khối điều khiển của EU
Σ
Bộ tạo địa chỉ
Điều khiển BUS
Thanh ghi cờ Sau alu,
* Tổ chức đơn vị thực hiện EU
ALU
Những điểmchung 1)Thanh ghi co
2)
Trang 8a) TËp c¸c thanh ghi
+ 04 thanh ghi ®a n¨ng
+ 04 thanh ghi con trá, chØ sè
+ 01 Thanh ghi cê
Trang 9* Các thanh ghi đa năng (General
Register)
• Gồm 4 thanh ghi dữ liệu (data register) 16 bit l AX, BX, CX, DX.à
• Các thanh ghi này được sử dụng để lư
u giữ tạm các kết qủa trung gian
• Các thanh ghi này có thể được chia làm 2 nửa 8 bit: nửa cao (ứng với ký hiệu H) và nửa thấp (ứng với ký hiệu L)
• AH, AL, BH, BL, CH, CL, DH, DL
Trang 10Bảng 2.3 Chức năng ngầm định các thanh ghi
Các thanh
ghi Phép tính tham gia
AX AL AH BX CX CL DX SP SI DI
Nhân, chia, I/O 16 bit Nhân, chia, I/O 8 bit (1
byte)
Nhân, chia, I/O 8 bit (1
byte) Lưu trữ, chuyển đổi Phép tính chuỗi, phép tính lặp
Dịch chuyển, quay vòng
Nhân, chia, I/O gián tiếp
Các thao tác với ngăn xếp Các thao tác với chuỗi
Các thao tác với chuỗi>>MOV D LIEUƯ
Trang 11Thanh ghi con trá (02 thanh ghi)
• 2 thanh ghi con trá gåm:
• SP con trá ng¨n xÕp (Stack Pointer)
• BP con trá c¬ së (Base Pointer)
• Lµ c¸c thanh ghi 16 bit vµ kh¸c víi thanh ghi ®a n¨ng, chóng kh«ng thÓ chia thµnh 2 nöa 8 bit
®îc.
Trang 12• Tổ chức ngăn xếp
• Ngăn xếp (stack) là 1 vùng trong bộ nhớ trong để lưu các dữ liệu tạm thời
• Ngăn xếp được sử dụng khi chương trình thực hiện một lệnh gọi chương trình con hay 1 ngắt Lúc đó CPU lưu địa chỉ của lệnh hiện tại vào ngăn xếp để thực hiện chương trình con hoặc ngắt
• Khi thực hiện xong chương trình con hoặc ngắt, CPU sẽ lấy địa chỉ này ra khỏi stack
để tiếp tục thực hiện chương trình.
• Ngăn xếp làm việc theo nguyên tắc LIFO (Last In First Out)
Trang 14Thanh ghi chØ sè (02 thanh ghi)
• 2 thanh ghi chØ sè (Index Register) ®îc ký hiÖu lµ SI vµ DI.
• Lµ c¸c thanh ghi 16 bit vµ kh¸c víi thanh ghi ®a n¨ng, chóng kh«ng thÓ chia thµnh 2 nöa 8 bit
®îc.
• ?????
Trang 15SI và DI được dùng trong các lệnh
xử lý chuỗi và các phép định địa chỉ chỉ số
• SI (source index): chỉ số nguồn
Địa chỉ đầy đủ của dữ liệu nguồn
Trang 16Ví dụ 1: Sử dụng các thanh ghi
SI, DI viết chương trình chuyển 100 byte từ vùng nhớ Source đến vùng nhớ Dest.
a) Dùng ngăn xếp
b) Không dùng ngăn xếp
Trang 17a)
LEA SI, source>> TUY LA 16 BIT,NHUNG CU 8 BIT CHO 1 DIA
CHI,DUOC TINH TOAN THEO LENH,L C N Y NO LAM 8 BIT 1 IA CHI Ú À
LEA DI, dest
Trang 18MOV SI, OFFSET source LEA DI, OFFSET dest MOV CX, 100
Trang 19t 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
C
ê OF DF IF TF SF ZF AF PF CF H×nh 2.2 Thanh ghi cê cña bé vi xö lý 8086/88
Thanh ghi cê cña bé vi xö lý 8086/88
Trang 20Carry Flag Overflow Flag
Sign Flag Parity Flag Zero Flag
Cờ phụ AF = 1 nếu bit 4 có số nhớ
Cờ nhớ CF = 1 nếu bit MSB có nhớ
Cờ tràn OF =1 nếu kết qu ả vượt thang
Cờ dấu SF =1 nếu kết qu ả âm (=bit cuối)
Cờ chẵn PF =1 nếu số các số 1 chẵn
Cờ zero ZF = 1 nếu kết qu ả bằng 0
6 cờ trạn
g thái
Interrupt Flag
Trang 21Ví dụ 2: Xác định xem các phép tính sau ảnh hưởng lên các cờ như thế nào?
MOV AL,9CH
MOV DH,64H
ADD AL,DH
Trang 22b Đ ơn vị số học-lôgic ALU
(Arithmetic and logic Unit)
- Đơn vị số học-lôgic ALU gồm các mạch có nhiệm vụ thực hiện các phép tính số học hoặc logic trên các số nhị phân theo từng cặp bit vào.
- Để thực hiện được các phép tính này ALU cần sử dụng các thanh ghi tương ứng.
Trang 23c Khối điều khiển của EU
• Trong khối điều khiển (CU- Control Unit) của EU có mạch giải mã lệnh
• Mã lệnh được đưa từ bộ nhớ qua BIU
đến đầu vào của bộ giải mã
• Các thông tin thu được từ đầu ra sẽ
được đưa đến mạch tạo xung điều khiển
• Mạch tạo xung điều khiển tạo ra các dãy xung phụ thuộc vào mã lệnh để
điều khiển hoạt động các bộ phận bên trong và bên ngoài CPU
Trang 243 §¬n vÞ giao tiÕp bus BIU
• Chøc n¨ng:
• NhËn lÖnh vµ d÷ liÖu tõ bªn ngoµi råi chuyÓn cho EU thùc hiÖn
• EU thùc hiÖn xong th× chuyÓn kÕt qña tÝnh ®îc ra bªn ngoµi qua BIU.
¨
Trang 26- Đơn vị tạo địa chỉ
Thanh ghi đoạn mã CS Thanh ghi đoạn dữ liệu DS Thanh ghi đoạn ngăn xếp SS
Thanh ghi đoạn phụ ES
Hình 2.3 Đơn vị điều khiển địa chỉ
Bộ tạo
địa chỉ
Trang 27BX, SI, DI
SP DI
NhËn lÖnh D÷ liÖu
Ng¨n xÕp N¬i göi tíi
Trang 28Mét sè kh¸i NIÖM VÒ §ÞA CHØ
Trang 29VÝ dô 7: Trªn mµn h×nh t¹i dßng 10 cét 40 cã dßng ch÷ dµi 25 ký tù “ HOC VIEN KY THUAT QUAN SU” ViÕt ch
¬ng tr×nh dÞch dßng trªn sang tr¸i 6 cét.
Trang 314 Bố trí chân
Bộ VXL 8086/8088 l m việc ở 2 chế à
độ: Chế độ tối thiểu và chế độ tối đa
-Chế độ tối thiểu là chế độ mà bộ VXL trực tiếp điều khiển bus chứ không
sử dụng chip điều khiển bus 8288
-Chế độ tối đa là chế độ mà bộ VXL
sử dụng chip 8288 để điều khiển bus
Chế độ tối đa cho phép sử dụng bộ
đồng xử lý toán 8087
-Máy tính XT làm việc ở chế độ tối
đa
Trang 32Vcc AD15 A16/S3 A17/S4 A18/S5 A19/S6 MN/
HOLD HLDA /M DT/
ALE
READY RESET
GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND
Vcc A15 A16/S3 A17/S4 A18/S5 A19/S6 MN/ HOLD HLDA /M DT/
ALE
READY RESET
GND A14 A13 A12 A11 A10 A9 A8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21
8088 CPU
Hình 2.4: Bố trí chân ở chế độ tối thiểu 8086 và 8088
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
8086 CPU
40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21
BHE MX R D WR IO DEN INTA TEST R
SS0 MX R D WR IO R DEN INTA TEST
Trang 33S4 S3 Thanh ghi
®îc truy xuÊt 0
0 1 1
0 1 0 1
D÷ liÖu ES Ng¨n xÕp SS M· lÖnh CS D÷ liÖu DS
Truy xuÊt thanh ghi ®o¹n
S4, S3 cho biÕt thanh ghi ®o¹n nµo ®îc sö dông
S5 chØ tr¹ng th¸i cê Interrupt (Interrupt Enable).
S6 lu«n lu«n lµ 0
Trang 34IO/M DT/R SS0 Chu kỳ bus
0 1 0 1 0 1 0 1
Nhận lệnh
Đọc bộ nhớ Ghi bộ nhớ Thụ động (Passive) Báo nhận lệnh ngắt
Đọc cổng I/O Ghi cổng I/O Dừng (Halt)
Bảng 2.6 Các trạng thái của chu kỳ BUS
Trang 35Các chân điều khiển ngắt
* Chân 17 NMI (Non Maskable Interrupt) Ngắt không che được
* Chân 18 INTR (Interrupt Request)
(masakable) tức CPU có thể bỏ qua
do điều khiển của phần mềm.
Acknowledge) Tín hiệu ra báo MP đã nhận 1 lệnh ngắt.
Trang 36* Chân 21 RESET Khởi động lại MP.
* Chân 23 TEST (Test Interrupt) Tín hiệu vào từ đồng xử lý toán Khi MP
đang thực hiện lệnh WAIT thì MP sẽ kiểm tra chân TEST Nếu TEST=1 thì máy tiếp tục chờ cho đến khi TEST=0 thì chuyển sang trạng thái tiếp theo
Các chân điều khiển thao tác
* Chân 22: READY là tín hiệu trả lời của I/O hoặc MEMORY báo chu kỳ chuyền số liệu đã hoàn tất
Trang 371 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21
CPU 8086
MAX
MODE
Vcc AD15 A16/S3 A17/S4 A18/S5 A19/S6
MN/ /GT0 /GT1
QS0
QS1
READY RESET GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND Hình 2.5 Chế độ tối đa a) 8086 và b) 8088 GND A14 A13 A12 A11 A10 A9 A8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND MAX
MODE
Vcc A15 A16/S3 A17/S4 A18/S5 A19/S6 MN/ /GT0 / GT1
QS0
QS1
READY RESET
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21
CPU 8088
MIN MOD
HOLD HLDA
M/
DT/
ALE
MIN MOD
HOLD HLDA
/M DT/
ALE
MX R D
WR IO DEN INTA TEST
R
BHE
RQ RQ LOCK S2 S1 S0
MX R D
WR IO DEN TEST
R
SS0
RQ RQ LOCK S2 S1 S0
INTA
* Bố trí chân ở chế độ tối đa a) 8086 và b) 8088
Trang 38Bảng 2.7: Mã các trạng thái của hàng đợi lệnh
QS0
(24)
QS1 (25)
Không hoạt động Chỉ byte thứ nhất của hàng
đợi Chỉ hàng chứa lệnh rỗng Chỉ byte tiếp theo ở hàng
đợi
Trang 39Bảng 2.8: Các chu kỳ bus ở chế độ MAX
00001111
00110011
01010101
Trả lời ngắt INTA
Đọc cổng I/OGhi cổng I/ODừng
Nhận lệnh
Đọc bộ nhớGhi vào bộ nhớThụ động
Chu kỳ bus
Trang 40* LOCK (29) cấm không cho VXL
phép/không cho phép bộ đồng xử lý toán được quyền điều khiển bus
được nối tới bộ đồng xử lý toán
8087 để cho phép đồng xử lý toán
điều khiển bus.
cao để không cho phép 8087 thâm nhập bus.
Trang 41Byte high enable (chân 34) Vi 8086 có bus
d liệu ngoài 16 bit, do vậy cần sữ ử d ng ụ
BHE/S7 để phân biệt byte cao và byte thấp của d liệu.ữ
D8-D15
D0-D7
Trang 42
A0 A19
AEN
D0 D7
S2 DEN DT/
Ready Reset
8088
AD0-AD7 A8-A19
G 74LS373
MEMR MEMW IOR IOW
Trang 43Địa chỉ Tín hiệu trạng thái Địa chỉ ổn định
Trang 44* MP 8086/8088 sử dụng đồng hồ 4.77 Mhz.
• Bộ VXL 8086/8088 hoạt động theo các chu kỳ thời gian gọi là chu kỳ bus (bus cycle)
• Mỗi chu kỳ bus cần một số chu
kỳ đồng hồ để hoàn thành
• Hai chu kỳ bus đIển hình là chu
kỳ bus đọc và chu kỳ bus ghi, đó
là quá trình MP đọc hoặc ghi thông tin từ bộ nhớ hoặc I/O
Trang 45Chu kỳ bus đọc
Một chu kỳ bus đọc điển hình của bộ vi
xử lý 8088 gồm 4 chu kỳ đồng hồ
* T1: Xác định địa chỉ
•Bus địa chỉ/dữ liệu được sử dụng để
đưa ra địa chỉ của bộ nhớ hoặc I/O
•CPU đưa ra tín hiệu điều khiển ALE, DT/R và IO/M
• Cuối chu kỳ T1, ALE hạ xuống mức thấp và địa chỉ trên bus bị chốt đóng lại
Trang 46T2: Chu kỳ chuyển trạng thái
- AD0-AD7 chuyển sang trạng thái trở kháng cao.
- A16/S3-A19/S6 chuyển sang trạng thái đưa tín hiệu ra.
- A8-A15 không thay đổi, vẫn đưa thông tin
về địa chỉ.
- ALE chuyển xuống mức thấp và chỉ ra rằng
địa chỉ không còn tồn tại trên các đường địa chỉ.
- RD phát tín hiệu để bộ nhớ hoặc I/O xuất dữ liệu
- DEN làm các mạch đệm trong bus dữ liệu có hiệu lực, cho phép dữ liệu được gửi vào bus
để đến MP.
Trang 47T3: Chuyển dữ liệu lên bus
- Bộ nhớ hoặc mạch IO đưa dữ liệu lên bus Chu kỳ này là khỏang thời gian phụ thêm để dữ liệu trở nên ổn định trên bus
- ở chu kỳ này bộ VXL tiến hành thăm dò chân READY, nếu
ở mức cao thì chu kỳ tiếp theo
sẽ là T4, còn nếu ở mức thấp thì chu kỳ tiếp theo sẽ ở trạng thái chờ TW.
Trang 48Chu kỳ đọc đến đây kết thúc.
Trang 49Một chu kỳ bus T1 T2 T3 T4
Địa chỉ Tín hiệu trạng thái Địa chỉ ổn định
Trang 501 Chế độ định địa chỉ thanh ghi
Ví dụ: ADD AX, BX
4 Chế độ định địa chỉ bộ nhớ gián tiếp thanh ghi
Ví dụ: MOV AX, [BX] DS:BX