Cấu trúc máy tính là một mảng kiến thức nghiên cứu về cách xử lý của một hệ thống máy tính dưới cách nhìn của một lập trình viên. Cách nhìn này thực tế cũng có nhiều khía cạnh
Trang 1bµi 2
bé vi xö lý
8086/88
Trang 21 Giíi thiÖu chung
Trang 31 Giới thiệu chung
Có 40 chân, đóng vỏ dạng DIP
Cả hai đều là bộ VXL 16 bit dữ liệu trong
Dữ liệu ngoài khác nhau
+ 8088 là bộ VXL 8 bit dữ liệu ngoài + 8086 có 16 bit dữ liệu ngoài
+ 8088 trong máy tính XT
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 ận
lenh,d lieu tu biu chuyen den, ữ 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
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.à 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 10Nhâ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Ư 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• 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 13Qu ả n lý ng ăn x ế p
- Sử dụng SP (stack pointer) để trỏ
đến đỉnh ng ă n xếp.
- Địa chỉ đoạn ng ă n xếp l SS à AX, BX, CX, DX.
- Địa chỉ đầy đủ của đỉnh ng ă n xếp
là SS:SP.
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 là DS:SI.
• DI (destination index): chỉ số đích Địa chỉ đầy đủ của dữ liệu đích là DS:DI.
• Tr ờng hợp thao tác với dữ liệu dạng chuỗi thì địa chỉ chuỗi nguồn là DS:SI,
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 19Bit 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 20Parity 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ạng thái
Cờ h ớng DF=1 chiều địa chỉ giảm
Cờ ngắt- báo MP biết yêu cầu ngắt
Cờ bẫy- MP vào chế độ chạy từng lệnh
3 cờ
điều khiển
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?
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 27B¶ng 2.5 Thao t¸c cña c¸c thanh ghi
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ý
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ế độ: à AX, BX, CX, DX.
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 RD
WR IO DEN
INTA TEST R
SS0 MX RD
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)
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 RD
WR IO DEN INTA TEST
R
BHE
RQ RQ LOCK S2 S1 S0
MX RD
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
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
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 hợp tác
điều khiển bus.
•RQ/GT1, RQ/GT0: cho phép/không cho phép bộ đồng xử lý toán đ ợc quyền điều khiển bus
• Trong máy tính IBM PC, RQ/GT1 đ ợ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.
•RQ/GT0 đ ợc nối cố định lên mức 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 ữ lieu tu biu chuyen den,
ngoài 16 bit, do vậy cần sử d ng BHE/S7 để phân ụng BHE/S7 để phân
biệt byte cao và byte thấp của d liệu.ữ lieu tu biu chuyen den,
BHE A0 Trạng thái bus d liệu ữ lieu tu biu chuyen den,
0 0 Truyền 16 bit d liệu trên D0-D15 ữ lieu tu biu chuyen den,
0 1 Truyền byte cao trên bus d liệu ữ lieu tu biu chuyen den,
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
•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