Professional Documents
Culture Documents
Ni dung mn hc
1. Gii thiu chung v h vi x l
2. B vi x l Intel 8088/8086
2/Chapter2
Cu trc bn trong
S chn
Bn b nh ca my tnh IBM-PC
Cc ch a ch ca 8086
Cch m ho lnh ca 8086
M t tp lnh ca 8086
Cch nh a ch ch bo v cc my tnh t 80286
3/Chapter2
S chn
Bn b nh ca my tnh IBM-PC
Cc ch a ch ca 8086
Cch m ho lnh ca 8086
M t tp lnh ca 8086
Cch nh a ch ch bo v cc my tnh t 80286
4/Chapter2
S chn
Bn b nh ca my tnh IBM-PC
Cc ch a ch ca 8086
Cch m ho lnh ca 8086
M t tp lnh ca 8086
Cch nh a ch ch bo v cc my tnh t 80286
5/Chapter2
S khi 8088/8086
Cc thanh
ghi a nng
Cc thanh ghi
con tr
v ch s
AX
BX
CX
DX
SP
BP
SI
DI
EU
bus a ch
20 bit
Cc thanh ghi
on v con tr
lnh
CS
DS
SS
ES
IP
Bus d liu
ALU 16 bit
Bus ngoi
Khi iu
khin
ca EU
Hng i lnh
Thanh ghi c
Logic
iu khin
bus
ALU
BIU
6/Chapter2
S chn
Bn b nh ca my tnh IBM-PC
Cc ch a ch ca 8086
Cch m ho lnh ca 8086
M t tp lnh ca 8086
Cch nh a ch ch bo v cc my tnh t 80286
7/Chapter2
8 bit thp
8088/8086 n 80286 : 16 bits
AX
AH
AL
BX
BH
BL
CX
CH
CL
DX
DH
DL
8/Chapter2
S chn
Bn b nh ca my tnh IBM-PC
Cc ch a ch ca 8086
Cch m ho lnh ca 8086
M t tp lnh ca 8086
Cch nh a ch ch bo v cc my tnh t 80286
9/Chapter2
Cc thanh ghi on
T chc ca b nh 1 Mbytes
on b nh (segment)
FFFFFH
nh trong on:
a ch lch: offset
1: offset: 0000
cui cng: offset: FFFF
1FFFFH
a ch vt l:
Segment : offset
a ch vt l=Segment*16 + offset
1F000H
10000H
00000H
Offset=F000
1000
Thanh ghi on
10/Chapter2
Cc thanh ghi on
V d: a ch vt l 12345H
a ch on
i ch lch
1000 H
2345H
1200 H
0345H
1004 H
0300 H
11/Chapter2
Cc thanh ghi on
Cc thanh ghi on: cha a ch on
FFFFF
58FFF
49000
43FFF
34000
30000
2FFFF
20000
1FFFF
10000
00000
.............
on d liu ph
extra segment
on ngn xp
Stack segment
4900
3400
ES
SS
on m
Code segment
on d liu
Data segment
2000
CS
1000
DS
12/Chapter2
Cc thanh ghi on
Cc on chng nhau
FFFFF
s
t
a
c
k
d
a
t
a
c
o
d
e
0A480
0A47F
0A280
0A27F
0A0F0
0A0EF
090F0
00000
Stack
0A28
SS
Data
0A0F
DS
090F
CS
Code
13/Chapter2
S chn
Bn b nh ca my tnh IBM-PC
Cc ch a ch ca 8086
Cch m ho lnh ca 8086
M t tp lnh ca 8086
Cch nh a ch ch bo v cc my tnh t 80286
14/Chapter2
15/Chapter2
Offset
Ch thch
CS
IP
a ch lnh
SS
SP hoc BP
a ch ngn xp
DS
a ch d liu
ES
DI
a ch chui
ch
16/Chapter2
S chn
Bn b nh ca my tnh IBM-PC
Cc ch a ch ca 8086
Cch m ho lnh ca 8086
M t tp lnh ca 8086
Cch nh a ch ch bo v cc my tnh t 80286
17/Chapter2
2
O
D I
0
C
18/Chapter2
2
O
D I
0
C
3 c iu khin
T hoc TF (trap flag)): c by, TF=1 khi CPU lm vic ch chy
tng lnh
I hoc IF (Interrupt enable flag): c cho php ngt, IF=1 th CPU s cho
php cc yu cu ngt (ngt che c) c tc ng (Cc lnh: STI,
CLI)
D hoc DF (direction flag): c hng, DF=1 khi CPU lm vic vi chui
k t theo th t t phi sang tri (lnh STD, CLD)
19/Chapter2
80h
80h
100h
20/Chapter2
S chn
Bn b nh ca my tnh IBM-PC
Cc ch a ch ca 8086
Cch m ho lnh ca 8086
M t tp lnh ca 8086
Cch nh a ch ch bo v cc my tnh t 80286
21/Chapter2
Hng i lnh
4 bytes i vi 8088 v 6 bytes i vi 8086
X l pipeline
Khng c
pipelining
F1 D1 E1 F2 D2 E2 F3 D3 E3
F1 D1 E1
C pipelining
c m lnh
F2 D2 E2
F3 D3 E3
Gii m lnh
Thc hin lnh
1 chu k lnh ca CPU
22/Chapter2
Cu trc bn trong
S chn
Bn b nh ca my tnh IBM-PC
Cc ch a ch ca 8086
Cch m ho lnh ca 8086
M t tp lnh ca 8086
Cch nh a ch ch bo v cc my tnh t 80286
23/Chapter2
Intel 8088
16-bit processor
introduced in 1979
3 m, 5 to 8 MHz, 29 KTOR
0.33 to 0.66 MIPS
24/Chapter2
Intel 8088
Ch Min v ch Max:
MN/MX = 1 ch Min
= 0 ch Max vi bus
controller 8288
25/Chapter2
Intel 8086
26/Chapter2
Cu trc bn trong
S chn
Bn b nh ca my tnh IBM-PC
Cc ch a ch ca 8086
Cch m ho lnh ca 8086
M t tp lnh ca 8086
Cch nh a ch ch bo v cc my tnh t 80286
27/Chapter2
Bn b nh ca my tnh IBM PC
Vng nh
m rng
FFFFF
A0000
9FFFF
00000
Vng nh
h thng
484 Kbytes
Vng nh
chng trnh
640 Kbytes
1 Mbytes
b nh thc
28/Chapter2
MSDOS
Vng dnh cho cc
chng trnh ng dng
08E30
08490
02530
01160
00700
00500
00400
00000
COMMAND.COM
Device drivers (mouse.sys)
MSDOS
IO.SYS
Vng DOS
Vng BIOS
Cc vector ngt
29/Chapter2
Bn vng nh h thng
FFFFF
F0000
E0000
ROM BIOS
ROM BASIC
Vng dnh
C8000
C0000
B0000
A0000
30/Chapter2
Cc cng vo ra
a ch: 0000H FFFFH, M/IO =0
FFFF
Vng m rng
03F8
03F0
03D0
0378
0320
02F8
0060
0040
0020
0000
COM1
iu khin a mm
CGA adapter
LPT1
iu khin cng
COM2
8255
nh thi (8253)
iu khin ngt
iu khin DMA
31/Chapter2
Trnh t khi ng
Khi bt ngun hoc nhn Reset
CS=FFFFh v IP=0000 => a ch FFFF0 cha ch th chuyn iu khin
n im khi u ca cc chng trnh BIOS
Cc chng trnh BIOS kim tra h thng v b nh
Cc chng trnh BIOS khi to bng vector ngt v vng d liu BIOS
BIOS np chng trnh khi ng (boot program) t a vo b nh
Chng trnh khi ng np h iu hnh t a vo b nh
H iu hnh np cc chng trnh ng dng
32/Chapter2
Reset Bootstrap
program jump
003FF
00000
Cc vector ngt
33/Chapter2
Cu trc bn trong
S chn
Bn b nh ca my tnh IBM-PC
Cc ch a ch ca 8086
Ch a ch thanh ghi
Ch a ch tc th
Ch a ch trc tip
Ch a ch gin tip qua thanh ghi
Ch a ch tng i c s
Ch a ch tng i ch s
Ch a ch tng i ch s c s
1, Ch a ch thanh ghi
(Register Addressing Mode)
34/Chapter2
2, Ch a ch tc th
(Immediate Addressing Mode)
Ton hng ch l thanh ghi hoc nh
Ton hng ngun l hng s
Dng np hng s vo thanh thi (tr thanh ghi on v
thanh c) hoc vo nh trong on d liu DS
V d:
MOV BL, 44 ; Copy s thp phn 44 vo thanh ghi BL
MOV AX, 44H ; Copy 0044H vo thanh ghi AX
MOV AL, A ; Copy m ASCII ca A vo thanh ghi AL
MOV DS, 0FF0H ; khng hp l
MOV AX, 0FF0H ;
MOV DS, AX
; khng hp l
MOV [BX], 10 ; copy s thp phn 10 vo nh DS:BX
35/Chapter2
3, Ch a ch trc tip
(Direct Addressing Mode)
36/Chapter2
37/Chapter2
5, Ch a ch tng i c s
(Based relative Addressing Mode)
38/Chapter2
6, Ch a ch tng i ch s
(Indexed relative Addressing Mode)
39/Chapter2
40/Chapter2
7, Ch a ch tng i ch s c s
( Based Indexed relative Addressing Mode)
V d:
MOV AX, [BX] [SI]+8 ; Copy ni dung 2 nh lin tip c a
ch DS:BX+SI+8 v DS:BX+SI+9 vo AX
MOV AX, [BX+SI+8] ; Cch vit khc ca lnh trn
MOV CL, [BP+DI+5] ; copy ni dung ca nh SS:BP+DI+5
vo thanh ghi CL
41/Chapter2
Tm tt cc ch a ch
Ch a ch
Ton hng
Thanh ghi
Thanh ghi
Tc th
D liu
Trc tip
[offset]
DS
[BX]
[SI]
[DI]
DS
DS
DS
Tng i c s
DS
SS
Tng i ch s
DS
DS
Tng i ch s c s
DS
DS
SS
SS
42/Chapter2
V d:
MOV AL, [BX]; Copy ni dung nh c a ch DS:BX vo AL
MOV AL, ES:[BX] ; Copy ni dung nh c a ch ES:BX vo AL
43/Chapter2
Cu trc bn trong
S chn
Bn b nh ca my tnh IBM-PC
Cc ch a ch ca 8086
Cch m ho lnh ca 8086
M t tp lnh ca 8086
Cch nh a ch ch bo v cc my tnh t 80286
44/Chapter2
MOD-REG-R/M
0-1 byte
0-2 byte
0-2 byte
Mt lnh c di t 1 n 6 byte
D
Opcode
cha m lnh
W
W=0 d liu 1 byte
W=1 d liu 2 byte
45/Chapter2
MOD
REG
R/M
MOD =11
00
01
10
11
R/M: Register/Memory
Thanh ghi
W=1
AX
BX
CX
DX
SP
DI
BP
SI
W=0
AL
BL
CL
DL
AH
BH
CH
DH
M
000
011
001
010
100
111
101
110
MOD <> 11
M
Ch a ch
000
001
010
011
100
101
110
111
DS:[BX+SI]
DS:[BX+DI]
SS:[BP+SI]
SS:[BP+DI]
DS:[SI]
DS:[DI]
SS:[BP]
DS:[BX]
46/Chapter2
Ghi ch:
addr8, addr16 tng ng vi a ch 8 v 16 bt
Cc gi tr cho trong cc ct 2, 3, 4 (ng vi MOD =00, 01, 10) l cc
a ch hiu dng (EA) s c cng vi DS to ra a ch vt l
(ring BP phi c cng vi SP)
47/Chapter2
MOV
D W
MOD
?
CL
[BX]
48/Chapter2
MOV
D W
MOD
CL
[BX]
49/Chapter2
Cu trc bn trong
S chn
Bn b nh ca my tnh IBM-PC
Cc ch a ch ca 8086
Cch m ho lnh ca 8086
M t tp lnh ca 8086
Cc lnh di chuyn d liu
Cc lnh s hc v logic
Cc lnh iu khin chng trnh
50/Chapter2
Cu trc bn trong
S chn
Bn b nh ca my tnh IBM-PC
Cc ch a ch ca 8086
Cch m ho lnh ca 8086
M t tp lnh ca 8086
Cc lnh di chuyn d liu
Cc lnh s hc v logic
Cc lnh iu khin chng trnh
51/Chapter2
52/Chapter2
Hng s
a nng
Thanh ghi
on
Thanh ghi
a nng
YES
YES
YES
NO
Thanh ghi
on
YES
NO
YES
NO
nh
YES
YES
NO
NO
Hng s
YES
NO
YES
NO
ch
Ngun
Thanh ghi
53/Chapter2
Lnh XCHG
Dng hon chuyn ni dung gia hai thanh ghi, gia 1 thanh ghi v 1 nh
C php: XCHG ch, ngun
Gii hn: ton hng khng c l thanh ghi on
Lnh ny khng tc ng n c
V d:
XCHG AX, BX
XCHG AX, [BX]
54/Chapter2
Lnh PUSH
Lnh PUSHF
Ct ni dung ca thanh ghi c vo ngn xp
55/Chapter2
V d v lnh PUSH
PUSH AX
SP
1300A
13009
13008
13007
13006
13005
13004
13003
13002
13001
13000
1300A
13009
13008
13007
13006
13005
13004
13003
13002
13001
12
34
13000
PUSH BX
1300A
13009
SP 13008
13007
13006
13005
13004
13003
13002
13001
12
34
78
56
13000
SS
1300
SS
1300
SS
1300
SP
000A
SP
0008
SP
0006
1234
AX
1234
BX
7856
AX
SP
56/Chapter2
Lnh POP
Lnh POPF
Ly 1 t t nh ngn xp ri a vo thanh ghi c
57/Chapter2
POP DX
V d lnh POP
1300A
13009
13008
13007
13006
13005
13004
13003
13002
13001
12
34
78
56
13000
SP
1300A
13009
13008
13007
13006
13005
13004
13003
13002
13001
12
34
78
56
13000
SS
1300
SS
1300
SP
0006
SP
0008
DX
3254
DX
7856
SP
58/Chapter2
Lnh IN
Lnh OUT
59/Chapter2
Thc hin:
DS:SI l a ch ca phn t trong chui ngun
ES:DI l a ch ca phn t trong chui ch
Sau mi ln chuyn SI=SI +/- 1, DI=DI +/- 1 hoc SI=SI +/- 2,
DI=DI +/- 2 tu thuc vo c hng DF l 0/1
Lnh ny khng tc ng n c
V d:
MOVS byte1, byte2
60/Chapter2
Cu trc bn trong
S chn
Bn b nh ca my tnh IBM-PC
Cc ch a ch ca 8086
Cch m ho lnh ca 8086
M t tp lnh ca 8086
Cc lnh di chuyn d liu
Cc lnh s hc v logic
Cc lnh iu khin chng trnh
61/Chapter2
Cc lnh s hc v logic
Lnh ADD
Lnh cng hai ton hng
C php: ADD ch, ngun
Thc hin: ch=ch + ngun
Gii hn: ton hng khng c l 2 nh v thanh ghi on
Lnh ny thay i c: AF, CF, OF, PF, SF, ZF
V d:
ADD AX, BX
ADD AX, 40H
62/Chapter2
Cc lnh s hc v logic
Lnh ADC
Lnh SUB
Lnh tr
C php: SUB ch, ngun
Thc hin: ch=ch - ngun
Gii hn: ton hng khng c l 2 nh v thanh ghi on
Lnh ny thay i c: AF, CF, OF, PF, SF, ZF
V d:
SUB AL, 30H
63/Chapter2
Cc lnh s hc v logic
Lnh MUL
Lnh nhn s khng du
C php: MUL ngun
Thc hin:
AX=AL* ngun8bit
DXAX=AX*ngun16bit
Lnh IMUL
nhn s c du
64/Chapter2
Cc lnh s hc v logic
Lnh DIV
Lnh chia 2 s khng du
C php: DIV ngun
Thc hin:
AL = thng (AX / ngun8bit) ; AH=d (AX / ngun8bit)
AX = thng (DXAX / ngun16bit) ; DX=d (DXAX / ngun16bit)
Lnh IDIV
chia 2 s c du
65/Chapter2
Cc lnh s hc v logic
Lnh INC
Lnh cng 1 vo ton hng l thanh ghi hoc nh
C php: INC ch
Thc hin: ch=ch + 1
Lnh ny thay i c: AF, OF, PF, SF, ZF
V d:
INC AX
Lnh DEC
Lnh tr 1 t ni dung mt thanh ghi hoc nh
C php: DEC ch
Thc hin: ch=ch - 1
Lnh ny thay i c: AF, OF, PF, SF, ZF
V d:
DEC [BX]
66/Chapter2
Cc lnh s hc v logic
Lnh AND
Lnh AND logic 2 ton hng
C php: AND ch, ngun
Thc hin: ch=ch And ngun
Gii hn: ton hng khng c l 2 nh hoc thanh ghi on
Lnh ny thay i c: PF, SF, ZF v xo c CF, OF
V d:
AND BL, 0FH
67/Chapter2
Cc lnh s hc v logic
Lnh CMP
Lnh so snh 2 byte hoc 2 t
C php: CMP ch, ngun
Thc hin:
ch = ngun : CF=0 ZF=1
ch> ngun : CF=0 ZF=0
ch < ngun : CF=1 ZF=0
Lnh CMPS
Dng so snh tng phn t ca 2 chui c cc phn t cng loi
C php: CMPS chui ch, chui ngun
CMPSB
CMPSW
Thc hin:
DS:SI l a ch ca phn t trong chui ngun
ES:DI l a ch ca phn t trong chui ch
Sau mi ln so snh SI=SI +/- 1, DI=DI +/- 1 hoc SI=SI +/- 2, DI=DI +/- 2
tu thuc vo c hng DF l 0/1
68/Chapter2
Cc lnh s hc v logic
Lnh RCL
Lnh quay tri thng qua c nh
C php: RCL ch, CL (vi s ln quay ln hn 1)
RCLch, 1
RCL ch, S ln quay (80286 tr ln)
Thc hin: quay tri ch CL ln
ch l thanh ghi (tr thanh ghi on) hoc nh
Lnh ny thay i c: CF, OF
CF
MSB
Lnh RCR
Lnh quay phi thng qua c nh
LSB
69/Chapter2
Cc lnh s hc v logic
Lnh ROL
Lnh quay tri
C php: ROL ch, CL (vi s ln quay ln hn 1)
ROL ch, 1
ROL ch, S ln quay (80286 tr ln)
Thc hin: quay tri ch CL ln
ch l thanh ghi (tr thanh ghi on) hoc nh
Lnh ny thay i c: CF, OF
CF
Lnh ROR
Lnh quay phi
MSB
LSB
70/Chapter2
Cc lnh s hc v logic
Lnh SAL
Lnh dch tri s hc
C php: SAL ch, CL (vi s ln dch ln hn 1)
SAL ch, 1
SAL ch, s ln dch (80286 tr ln)
Thc hin: dch tri ch CL bit tng ng vi ch=ch*2 CL
Lnh ny thay i c SF, ZF, PF
CF
MSB
LSB
0
Lnh SHL
Lnh dch tri logic tng t nh SAL
71/Chapter2
Cc lnh s hc v logic
Lnh SAR
Lnh dch phi s hc
C php: SAR ch, CL (vi s ln dch ln hn 1)
SAR ch, 1
hoc SAR ch, s ln dch (80286 tr ln)
Thc hin: dch phi ch CL bit
Lnh ny thay i c SF, ZF, PF, CF mang gi tr ca MSB
MSB
LSB
CF
72/Chapter2
Cc lnh s hc v logic
Lnh SHR
Lnh dch phi logic
C php: SHR ch, CL (vi s ln dch ln hn 1)
SHR ch, 1
hoc SHR ch, s ln dch (80286 tr ln)
LSB
CF
Ch :
Trong cc lnh dch v quay, ton hng khng c l thanh ghi o n
73/Chapter2
Cu trc bn trong
S chn
Bn b nh ca my tnh IBM-PC
Cc ch a ch ca 8086
Cch m ho lnh ca 8086
M t tp lnh ca 8086
Cc lnh di chuyn d liu
Cc lnh s hc v logic
Cc lnh iu khin chng trnh
Lnh
Lnh
Lnh
Lnh
Lnh
74/Chapter2
77/Chapter2
Tm tt lnh JMP
FFFFFH
on m 2
Nhy xa
+127
Nhy ngn
-128
00000H
on m 1
JMP
Nhy gn
78/Chapter2
79/Chapter2
Lnh lp LOOP
LOOP, LOOPE/LOOPZ, LOOPNE/LOOPNZ
L lnh phi hp gia DEC CX v JNZ
XOR AL, AL
XOR AL, AL
XOR AL, AL
MOV CX, 16
MOV CX, 16
MOV CX, 16
Lap: INC AL
LOOP Lap
Lp n kh CX=0
Lap: INC AL
Lap: INC AL
CMP AL, 10
CMP AL, 10
LOOPE Lap
LOOPNE Lap
Lp n kh CX=0
hoc AL<>10
Lp n kh CX=0
hoc AL=10
80/Chapter2
Lnh CALL
Dng gi chng trnh con
C 2 loi: CALL gn v CALL xa
CALL gn (near call): tng t nh nhy gn
Gi chng trnh con trong cng mt on m
Tong PROC NEAR
ADD AX, BX
ADD AX, CX
RET
Tong ENDP
...
CALL Tong
Ct IP vo ngn xp
IP=IP + dch chuyn
RET: ly IP t ngn xp
Ct IP vo ngn xp
IP= BX
RET: ly IP t ngn xp
Ct IP vo ngn xp
IP= [BX+1] [BX]
RET: ly IP t ngn xp
81/Chapter2
Lnh CALL
CALL xa (far call): tng t nh nhy xa
Gi chng trnh con ngoi on m
Tong PROC FAR
ADD AX, BX
ADD AX, CX
RET
Tong ENDP
...
CALL Tong
Ct CS vo ngn xp
Ct IP vo ngn xp
IP=IP ca Tong
CS =CS ca Tong
RET: ly IP t ngn xp
ly CS t ngn xp
Ct CS vo ngn xp
Ct IP vo ngn xp
IP = [BX+1][BX]
CS= [BX+3][BX+2]
RET: ly IP t ngn xp
ly CS t ngn xp
82/Chapter2
83/Chapter2
Gp IRET:
Ly IP t ngn xp
Ly CS t ngn xp
Ly thanh ghi c t ngn xp
84/Chapter2
Cu trc bn trong
S chn
Bn b nh ca my tnh IBM-PC
Cc ch a ch ca 8086
Cch m ho lnh ca 8086
M t tp lnh ca 8086
Cch nh a ch ch bo v cc my tnh t 80286
85/Chapter2
nh a ch b nh ch bo v
Cho php truy cp d liu v chng trnh vng nh trn 1M
Thanh ghi lch cha a ch lch
Thanh ghi on cha t chn on (segment selector)
t chn on chn 1 phn t trong 1 trong 2 bng m t on
(descriptor table), mi bng c kch thc 64 KB
Bng m t on ton cc (Global DT): cha thng tin v cc
on ca b nh m tt c cc chng trnh c th truy nhp
Bng m t on cc b (Local DT): cha thng tin v cc
on ca 1 chng trnh