bµi 2
bé vi xö
lý 8086/88
1. Giíi thiÖu chung
2. §¬n vÞ thùc hiÖn EU
3. §¬n vÞ ghÐp nèi BIU
4. Bè trÝ ch©n
5. Chu kú bus
6. C¸c chÕ ®é ®Þnh ®Þa
chØ
1. Giới thiệu chung
Do Intel sản xuất năm 1978
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
Cả hai có 20 chân địa chỉ
Tần số đồng hồ phiên bản đầu là 4,7 Mhz
IBM dùng + 8086 trong máy tính
Damasteur>>
+ 8088 trong máy tính XT
Tæ chøc bé VXL 8086/8088
Gåm 2 khèi chøc n¨ng
§¬n vÞ thùc hiÖn EU
§¬n vÞ giao tiÕp bus BIU
2. Đơ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
Tổ 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
Bus dữ liệu
ALU
Các thanh ghi đoạn
BUS trong
của CPU
BUS ngoài
Đơn vị thực hiện - EU
Đơn vị ghép nối BIU
Hàng đợi lệnh
Hình 2.1. Cấu trúc bộ vi xử lý 8086/8088
Các
thanh ghi
đ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
Nhng imchung
1)Thanh ghi co
2)
a) TËp c¸c thanh ghi
+ 04 thanh ghi ®a n¨ng
+ 04 thanh ghi con trá, chØ
sè
+ 01 Thanh ghi cê
* 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
Bả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
Thanh 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.
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)
Quả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.
-
Địa chỉ đầy đủ của đỉnh ngăn
xếp là SS:SP.
Thanh 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.
•
?????
SI 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, đ a chỉ chuỗi đích là
ES:DI.
VÝ 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
a)
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
MOV CX, 50
LAP:
PUSH [SI]>>>TA PH I CH Y EN VIECẢ Ú Đ
POP [DI]
ADD SI,2
ADD DI,2
LOOP LAP
b)
MOV SI, OFFSET source
LEA DI, OFFSET dest
MOV CX, 100
LAP:
MOV AL, [SI]
MOV [DI], AL
INC SI
INC DI
LOOP LAP
Bi
t
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
C
ê
O
F
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
Bảng 2.4 ý nghĩa các cờ
T
T
C
ờ
Các cờ ý nghiã Nhó
m
1
2
3
4
5
6
AF
CF
O
F
SF
PF
ZF
Auxiliary
Flag
Carry 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
7
8
9
DF
IF
TF
Direction
Flag
Interrupt
Flag
Trap Flag
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