Tải bản đầy đủ (.ppt) (122 trang)

Bài giảng Kỹ thuật Vi xử lý (Hồ Viết Việt) - Chương 3 Vi xử lý 8088-Intel ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.2 MB, 122 trang )


Bài giảng Kỹ thuật Vi xử lý
Ngành Điện tử-Viễn thông
Đại học Bách khoa Đà Nẵng
của Hồ Viết Việt, Khoa CNTT-ĐTVT
Tài liệu tham khảo
[1] Kỹ thuật vi xử lý, Văn Thế Minh, NXB Giáo
dục, 1997
[2] Kỹ thuật vi xử lý và Lập trình Assembly cho
hệ vi xử lý, Đỗ Xuân Tiến, NXB Khoa học & kỹ
thuật, 2001

Chương 3
Vi xử lý 8088-Intel
3.1 Kiến trúc và hoạt động của 8088
- Nguyên lý hoạt động
- Sơ đồ khối chức năng
3.2 Cấu trúc thanh ghi của 8088
3.3 Phương pháp quản lý bộ nhớ
3.4 Mô tả tập lệnh Assembly

Lấy - Giải mã - Thực hiện lệnh
Tìm và copy
các byte lệnh từ bộ nhớ
Giải mã lệnhTạo ra các tín hiệu điều khiển
để thực hiện lệnh
Nguyên lý hoạt động của một bộ vi xử lý

Chu kỳ lệnh và Chu kỳ máy

Chu kỳ lệnh: Tổng thời gian tìm lệnh, giải


mã lệnh và thực hiện 1 lệnh

Nói chung, Chu kỳ lệnh của các lệnh khác
nhau là khác nhau

Chu kỳ lệnh bao giờ cũng bằng một số
nguyên lần chu kỳ máy

Chu kỳ máy bằng nghịch đảo của tần số
hoạt động (tốc độ đồng hồ) của bộ vi xử lý

3.1 Kiến trúc và Hoạt động của 8088

Đơn vị giao tiếp Bus - BIU

Phát các tín hiệu địa chỉ đến bộ nhớ và các
cổng I/O thông qua A-Bus

Đọc mã lệnh từ bộ nhớ thông qua D-Bus

Đọc dữ liệu từ bộ nhớ thông qua D-Bus

Ghi dữ liệu vào bộ nhớ thông qua D-Bus

Đọc dữ liệu từ các cổng I thông qua D-Bus

Ghi dữ liệu ra các cổng O thông qua D-Bus

Đơn vị thực hiện - EU


Bao gồm CU và ALU

CU : Giải mã lệnh để tạo ra các tín hiệu
điều khiển nhằm thực hiện lệnh đã được
giải mã

ALU: thực hiện các thao tác khác nhau đối
với các toán hạng của lệnh

Tổ chức của microprocessor
ALU
BIU
Control
Control
registers
General
purpose
registers
Status
Registers
Control
Data
Address
CPU

Xử lý lệnh của các vi xử lý trước 8086/8088

Một thủ tục đơn giản gồm 3 bước:

Lấy lệnh từ bộ nhớ


Giải mã lệnh

Thực hiện lệnh

Lấy các toán hạng từ bộ nhớ (nếu có)

Lưu trữ kết quả
Fetch
1
Decode
1
Execute
1
Fetch
2
Decode
2
Execute
2

Busy Idle Busy … Busy Idle Busy
Microprocessor
Bus

Cơ chế Pipelining
Pipelining
Bus
Fetch
1

Fetch
2
Fetch
3
Fetch
4
Store
1
Fetch
5

Fetch
6
Fetch
7
Load
2
Instruction
Unit
Decode
1
Decode
2
Decode
3
Decode
4
Idle
Decode
5


Decode
6
Idle
Decode
7
Exec.
1
Exec.
2
Exec.
3
Exec.
4
Idle
Idle Exec.
5
Exec.
6
Exec.
7
Idle
Execution
Unit
Memory request Memory request

3.2 Cấu trúc thanh ghi của 8088
8088 có 14 thanh ghi 16-bit

Cấu trúc thanh ghi của họ x86

Accumulator
EAX
AH AL
AX
Base
EBX
BH BL
BX
Count
ECX
CH CL
CX
Data
EDX
DH DL
DX
General Purpose
Instr Pointer
EIP
IP
Flags
EFLAG
FLAG
Special Registers
Stack Segment
Code Segment
CS
Data Segment
DS
Extra Segment

ES
SS
FS
GS
Segment Registers
Stack Pointer
ESP
SP
Base Pointer
EBP
BP
Dest Index
EDI
DI
Source Index
ESI
SI
Index Registers

Cấu trúc thanh ghi 8086/8088
AH
BH
CH
DH
AL
BL
CL
DL
07 07
015

IP
SP
BP
SI
DI
Accumulator
Base
Counter
Data
CS
DS
SS
ES
015
Code Segment
Data Segment
Stack Segment
Extra Segment
Instruction Pointer
Stack Pointer
Base Pointer
Source Index
Destination Index
}
}
}
AX
BX
CX
DX


AH
BH
CH
DH
AL
BL
CL
DL
07 07
Accumulator
Base
Counter
Data
AX
BX
CX
DX
-
Có thể truy cập như các thanh ghi 8-bit
-
Lưu trữ tạm thời dữ liệu để truy cập nhanh hơn
và tránh khỏi phải truy cập bộ nhớ
- Có công dụng đặc biệt đối với một số câu lệnh
Các thanh ghi đa năng

Các thanh ghi segment
CS
DS
SS

ES
015
Code Segment
Data Segment
Stack Segment
Extra Segment
-
Lưu trữ địa chỉ segment của một ô nhớ cần truy cập
-
Kết hợp với các thanh ghi offset nhất định

-
Lưu trữ địa chỉ offset của một ô nhớ cần truy cập
-
Kết hợp với các thanh ghi segment nhất định
Các thanh ghi offset
IP
SP
BP
SI
DI
Instruction Pointer
Stack Pointer
Base Pointer
Source Index
Destination Index

x x x x OF DF IF TF SF ZF x AF x PF x CF
015
Thanh ghi cờ

- Không phải tất cả các bit đều được sử dụng
- Mỗi bit được sử dụng được gọi là một cờ
- Các cờ đều có tên và có thể được Lập/Xoá
riêng lẽ
- Bao gồm các cờ trạng thái và các cờ điều
khiển

Flags register
8086, 8088, 80186
8086, 8088, 80186
80286
80286
80386, 80486DX
80386, 80486DX
80486SX
80486SX
AC
AC
(Alignment check)
(Alignment check)
(VM)
(VM)
Virtual mode
Virtual mode
(RF)
(RF)
Resume
Resume
(NT)
(NT)

Nested task
Nested task
(IOPL)
(IOPL)
Input/output
Input/output
privilege level
privilege level
(O)
(O)
Overflow
Overflow
(D)
(D)
Direction
Direction
(I)
(I)
Interrupt
Interrupt
(T)
(T)
Trace
Trace
(S)
(S)
Sign
Sign
(Z)
(Z)

Zero
Zero
(A)
(A)
Auxiliary Carry
Auxiliary Carry
(P)
(P)
Parity
Parity
(C)
(C)
Carry
Carry

3.3 Phương pháp quản lý bộ nhớ
- Bộ nhớ được xem là một tập hợp các ô nhớ
- Mỗi ô nhớ được nhận dạng bằng một Địa chỉ
vật lý duy nhất 20-bit
- Trong hoạt động truy cập một ô nhớ, Địa chỉ
vật lý của nó được tạo ra từ hai giá trị 16-bit:
Địa chỉ segment và Địa chỉ Offset
- Địa chỉ logic = Địa chỉ segment:Địa chỉ offset

Mối liên hệ giữa ĐCVL và ĐCLG
A=Bus
0000Thanh ghi offset. Thanh ghi Segment
Địa chỉ vật lý
00
0

1515
19

3.4 Mô tả tập lệnh Assembly của
8086/8088
-
Khuôn dạng: Mnemonics Các toán hạng
-
Nhóm lệnh chuyển số liệu
- Nhóm lệnh số học
-
Nhóm lệnh logic
-
Nhóm lệnh Rẽ nhánh
-
Nhóm lệnh thao tác string
-
Nhóm lệnh hỗn hợp

Nhóm lệnh chuyển số liệu
Data Transfer Instructions
-
Chuyển số liệu (sao chép số liệu) từ vị trí này
sang vị trí khác
-
Nguồn số liệu không thay đổi
-
Đich sẽ có giá trị như giá trị của Nguồn
-
Các lệnh chuyển số liệu không ảnh hưởng đến

các cờ trạng thái trên thanh ghi cờ
-
Một số lệnh tiêu biểu: MOV, XCHG

Data Transfer Instructions -
MOV
Khuôn dạng: MOV Đích,Nguồn
-
Tác dụng: (Đích)  (Nguồn)
-
Đích: có thể là:
1. Một thanh ghi 8 hoặc 16 bit của VXL
2. Một vị trí nhớ (1 hoặc 2 ô nhớ liên tiếp
nhau)
-
Nguồn: có thể là:
1. Một thanh ghi 8 hoặc 16 bit của VXL
2. Một vị trí nhớ (1 hoặc 2 ô nhớ liên tiếp
nhau)
3. Một giá trị cụ thể

Một số lưu ý đối với MOV
-
Đích và Nguồn phải có cùng kích cỡ
-
Đích và Nguồn không thể đồng thời
thuộc bộ nhớ
-
Nếu Đích là một thanh ghi segment
của VXL thì Nguồn không thể là một

giá trị cụ thể (nói cách khác, không thể
nạp giá trị trực tiếp cho một thanh ghi
segment bằng lệnh MOV)

Data Transfer Instructions - XCHG
Khuôn dạng: XCHG T/h1,T/h2
-
Tác dụng: (T/h1)  (T/h2)
-
T/h1: có thể là:
1. Một thanh ghi 8 hoặc 16 bit của VXL
2. Một vị trí nhớ (1 hoặc 2 ô nhớ liên tiếp
nhau)
-
T/h2: có thể là:
1. Một thanh ghi 8 hoặc 16 bit của VXL
2. Một vị trí nhớ (1 hoặc 2 ô nhớ liên tiếp
nhau)

×