Cấu trúc bên trong và hoạt động của VXL 8088VXL 8088 có 2 khối : Khối thực hiện lệnh EU-Execution UnitKhối phối ghép bus BUS-Bus Interface Unit BIU đưa ra địa chỉ, đọc mã lệnh từ bộ nhớ,
Trang 1TẠI SAO LẠI HỌC VI XỬ LÝ ?
Cung cấp cơ hội hiểu biết nhiều hơn về hệ điều hành của máy tính, nó cho phép phát triển những phần mềm ứng dụng trong nhiều lĩnh vực
Bạn có thể sử dụng ngôn ngữ VXL để tạo ra bất cứ ứng dụng điều khiển mà bạn muốn
Chương trình VXL chạy nhanh hơn, nhỏ gọn hơn, và khả năng ứng dụng rộng hơn bất cứ ngôn ngữ bậc cao nào như :
Trang 2TẠI SAO LẠI CHỌN BỘ VXL 8088 ĐỂ TÌM HIỂU ?
Đây là bộ VXL nổi tiếng một thời thuộc họ 80x86 của
Intel, nó được ứng dụng trong nhiều lĩnh vực khác nhau
Do tính kế thừa của các sản phẩm trong họ 80x86, các
chương trình viết cho 8088 vẫn có thể chạy được trên các hệ thống tiên tiến sau này
Về góc độ sư phạm thì đây là bộ VXL khá đơn giản nên
việc hiểu nó là tương đối dễ dàng cho người mới bắt đầu tìm hiểu
Trang 3Sự phát triển của các bộ vi xử lý
Năm 1971 Intel cho ra đời bộ VXL đầu tiên là 4004 ( 4 bit sốLiệu, 12 bit địa chỉ) Tiếp đến là 4040 và 8008, IBM-16
VXL 8 bit 6502 của MOS Technology, 6800 và 6809 của
Motorola, 8080 và 8085 của Intel và đặc biệt là bộ VXL Z80
Trang 5Intel286™
Processo r
Intel386™
Processo r
Intel486™
Processor
Intel Pentium®
Processor
Intel Pentium®
Processor with MMX™
technology
Intel Pentium®
II Processor
First EPROM
Intel Pentium®
Pro Processor
DRAM Exit
Flash Memory Intro Intel Inside®
Launch
ProShare ® Introduced
100 Mbit E-Net Card
First Intel Inside®
First Intel Motherboard
19 9
Intel Celeron™
Processor
Intel Pentium®
II Xeon™
Processor
19 99
1 Gbit E-Net Card
Intel Pentium® III And Xeon™ Processors
Internet Exchange Architecture
20 00 20 01
Pentium® 4 Processor
20 02
1 st Pb-Free Devices
Trang 12GIỚI THIỆU SƠ LƯỢC CẤU TRÚC HỆ VXL
Trang 13Sơ đồ khối của hệ VXL
Bộ nhớ Memory (Rom -Ram)
Phối ghép vào/ra (I/O)
Phối ghép vào/ra (I/O)
Bus dữ liệuBus điều khiển
Bus địa chỉ
Thiết bị vàoThiết bị ra
Trang 15Chương 2 Bộ vi xử lý 8088
8
Trang 16Cấu trúc bên trong và hoạt động của VXL 8088
VXL 8088 có 2 khối :
Khối thực hiện lệnh (EU-Execution Unit)Khối phối ghép bus (BUS-Bus Interface Unit)
BIU đưa ra địa chỉ, đọc mã lệnh từ bộ nhớ, đọc/ ghi dữ liệu vào/ ra
cổng hay bộ nhớ (BIU đưa địa chỉ ra bus và trao đổi dữ liệu với bus).Trong BIU còn có bộ nhớ đệm lệnh 4 byte
Trong EU có khối điều khiển CU (Control Unit) chứa mạch giải mã lệnh Trong EU còn có khối số học và logic ALU (arithmetic and logicUnit)
EU sẽ cung cấp thông tin về địa chỉ cho BIU để khối này đọc lệnh và
dữ liệu, còn bản thân EU thì giải mã lệnh và thực hiện lệnh.
Trang 17Cấu trúc bên trong và hoạt động của VXL 8088
Cơ chế pipeline :
CPU hoạt động qua 3 giai đoạn : đọc mã lệnh (opcode fetch), giải
mã lệnh (decode) và thực hiện lệnh (execution)
BIU : đọc mã lệnh
EU : giải mã lệnh và thực hiện lệnh
Có khả năng làm việc đồng thời và các bus sẽ liên tục được sử dụng.(Cơ chế pipelining)
Trang 18Các thanh ghi đa năng : 4 thanh ghi 16 bit AX, BX, CX, DX
Thanh ghi AX (accumulator, Acc) : thanh ghi được sử dụng nhiều nhất trong các lệnh số học, logic và chuyển dữ liệu Các kết quả của các thao tác thường chứa ở đây Nếu kết quả là 8 bit thì thanh ghi ALđược coi là Acc
Thanh ghi BX (base) : thanh ghi cơ sở, thường chứa địa chỉ cơ sởcủa một bảng dùng trong lệnh XLAT
CX (count): bộ đếm CX thường dùng để chứa số lần lặp, CL thườngchứa số lần dịch hay quay thanh ghi
DX (data) : thanh ghi dữ liệu Ngoài ra dùng để chứa địa chỉ của cáccổng trong các lệnh vào/ ra dữ liệu trực tiếp
Trang 19VXL 8088 có 3 thanh ghi con trỏ & 2 thanh ghi chỉ số 16 bit
Trừ IP các thanh ghi này đều có thể được dùng như các thanh ghi
đa năng, chúng được ngầm định như thanh ghi lệch cho các đoạntương ứng
sẽ được thực hiện nằm trong đoạn mã CS
nằm trong đoạn ngăn xếp SS
của ngăn xếp nằm trong đoạn ngăn xếp SS
SI : chỉ số gốc hay nguồn
DI : chỉ số đích
Trang 21Các thanh ghi đoạn
Thanh ghi đoạn mã CS ( Code-Segment )
Thanh ghi đoạn dữ liệu DS ( Data segment )
Thanh ghi đoạn ngăn xếp SS ( Stack segment )
Thanh ghi đoạn dữ liệu phụ ES ( Extra segment )
Các thanh ghi đoạn chỉ ra địa chỉ đầu của 4 đoạn trong bộ nhớ,dung lượng max của mỗi đoạn nhớ này là 64KB
Trang 23Địa chỉ vật lý = thanh ghi đoạn x 10h + thanh ghi lệch
Trang 24Thanh ghi cờ
Bit nhớ Tên bit Reset Chức năng
OF Cờ tràn 0 OF =1 khi số bù 2 vượt ra ngoài giới hạn
CF Cờ nhớ 0 CF = 1 khi có nhớ hay mượn từ MSB
từng lệnh
tự từ phải sang trái.
Trang 25VXL 8086 VXL 8088
VXL 16 bit hoàn chỉnh VXL 16 bit dữ liệu bên
trong nhưng khi ra ngoài bus dữ liệu chỉ còn 8 bit
Hàng đợi lệnh 6 byte Hàng đợi lệnh 4 byte
Bus dữ liệu là 16 bit Bus dữ liệu là 8 bit
Trang 26Cách mã hố lệnh của của VXL 8088
Hoặc
Địa chỉ trực tiếp phần thấp Địa chỉ trực tiếp phần cao
Dạng thức Byte mã lệnh của lệnh MOV
Đối với bộ VXL 8088 một lệnh cĩ thể cĩ độ dài từ 1 đến 6 byte
Ta lấy trường hợp lệnh MOV để giải thích cách giải mã lệnh nĩichung của VXL 8088
Cú pháp lệnh : MOV đích, nguồn (copy dữ liệu giữa 2 thanh ghi
hoặc giữa ơ nhớ với thanh ghi)
NOTE
Trang 27Trong đó :
6 bit đầu dùng để chứa mã lệnh
D =1 xác định thanh ghi trong trường REG là toán hạng đích,
D =0 thanh ghi trong trường REG là toán hạng nguồn
Bit W dùng để chỉ ra rằng một byte (W=0) hoặc 1 từ (W=1)
được chuyển
- Bộ VXL sử dụng 2 hay 3 bit để mã hoá các thanh ghi:
000 011 001 010 100 111
CS DS ES SS
01 11 00 10
Trang 282 bit MOD (chế độ) cùng với 3 bit R/M (thanh ghi/bộ nhớ) tạo ra
5 bit dùng để chỉ ra chế độ địa chỉ cho các toán hạng của lệnh
Trang 29Trong đó :
MOD = 11 - Chế độ thanh ghi
MOD = 00 - Chế độ bộ nhớ không có phần dịch trừ R/M =110MOD = 01 - Chế độ bộ nhớ với 8 bit dịch (d8)
MOD = 10 - Chế độ bộ nhớ với 16 bit dịch (d16)
Trang 304 Chế độ địa chỉ gián tiếp qua thanh ghi
5 Chế độ địa chỉ tương đối cơ sở
6 Chế độ địa chỉ tương đối chỉ số
7 Chế độ địa chỉ tương đối chỉ số cơ sở
Trang 31Chế độ địa chỉ thanh ghi :
Dùng thanh ghi như là toán hạng để chứa dữ liệu cần thao tác
Ví dụ :
MOV BX, DX ; chuyển nội dung DX vào BX
MOV DS, AX ; chuyển nội dung AX vào DS
ADD AL, DL ; cộng nội dung AL & DL rồi chứa vào AL
Trang 32Chế độ địa chỉ tức thì :
Trong chế độ địa chỉ này toán hạng đích là 1 thanh ghi hay 1 ô nhớCòn toán hạng nguồn là một hằng số
Ví dụ :
MOV CL, 100 ; chuyển 100 vào CL
MOV AX, 0FF0H ; chuyển OFOH vào AX để rồi đưa vào DSMOV DS, AX
MOV [BX], 10 ; chuyển 10 vào ô nhớ tại địa chỉ DS : BX
Trang 33Chế độ địa chỉ trực tiếp :
Một toán hạng chứa địa chỉ lệch của ô nhớ, còn toán hạng kia
chỉ có thể là thanh ghi mà không là ô nhớ
Ví dụ :
MOV AL, [1234] ; chuyển nội dung ô nhớ DS:1234 vào ALMOV [4320h], CX ; chuyển nội dung CX vào 2 ô nhớ liên tiếp
; DS:4320 & DS:4321
Trang 34Chế độ địa chỉ gián tiếp qua thanh ghi :
Một toán hạng là thanh ghi được sử dụng để chứa địa chỉ lệchcủa ô nhớ chứa dữ liệu, còn toán hạng kia chỉ có thể là thanh ghi mà không là ô nhớ
Ví dụ :
MOV AL, [BX] ; chuyển nội dung ô nhớ DS:BX vào ALMOV [SI], CL ; chuyển nội dung CL vào ô nhớ có địa chỉ
; DS:SIMOV [DI], AX ; chuyển nội dung AX vào 2 ô nhớ liên tiếp
; có địa chỉ DS:DI & DS:(DI+1)
Trang 35Chế độ địa chỉ tương đối cơ sở :
Trong chế độ địa chỉ này các thanh ghi cơ sở như BX & BP &
các hằng số biểu diễn giá trị dịch chuyển được dùng để tính địachỉ hiệu dụng của toán hạng trong vùng nhớ DS và SS
Ví dụ :
MOV CX, [BX] +10 ; chuyển nội dung 2 ô nhớ liên tiếp có địa chỉ
; DS:(BX +10) & DS:(BX +11) vào CXMOV CX, [BX +10 ]
Trang 36Chế độ địa chỉ tương đối chỉ số :
Trong chế độ địa chỉ này các thanh ghi chỉ số như SI & DI &
các hằng số biểu diễn giá trị dịch chuyển được dùng để tính địachỉ của toán hạng trong vùng nhớ DS
Ví dụ :
MOV AX, [SI] +10 ; chuyển nội dung 2 ô nhớ liên tiếp có địa chỉ
; DS:(SI +10) & DS:(SI +11) vào AXMOV AX, [SI +10 ]
Trang 37Chế độ địa chỉ tương đối chỉ số cơ sở :
Trong chế độ địa chỉ này ta dùng cả thanh ghi cơ sở lẫn thanh ghichỉ số để tính địa chỉ của toán hạng Nếu thêm thành phần dịch chuyển ta có chế độ địa chỉ phức hợp nhất : chế độ địa chỉ
tương đối chỉ số cơ sở
Ví dụ :
MOV AX, [BX] +[SI] +10 ; chuyển nội dung 2 ô nhớ liên tiếp có địa
; chỉ DS:(BX +SI +10) & DS:(BX+ SI +11) vào AX