You are on page 1of 676

CU TRC MY TNH

Computer Architecture
Hong Vn Hip
B mn K thut my tnh,Khoa CNTT,HBK H Ni
Mob. 0916093209
Email. hiephv@soict.hut.edu.vn
2
Ch v bn quyn
Ton b slide mn hc Cu trc my tnh c xy
dng da trn slide ca Thy Nguyn Kim Khnh
v Thy Nguyn Ph Bnh, b mn K thut my
tnh, khoa Cng ngh thng tin, i hc Bch Khoa
H Ni.
Yu cu ngi hc khng ph bin, chnh sa ni
dung ca slide ny nu cha c s cho php
ca tc gi.
XIN CM N!
3
Ti liu tham kho
Stallings, W. Computer Organization and Architecture,
6th ed, Prentice Hall, 2003
Ytha Yu, Charles Marut - Lp trnh assembly v my tnh
IBM-PC - 1992.
Vn Th Minh K thut vi x l Nh xut bn Gio
dc, 1997.
Walter A. Triebel, Avtar Singh - The 8088 and 8086
Microprocessors: Programming, Interfacing, Software,
Hardware and Applications - 1997.
a ch download bi ging, bi thc hnh v phn mm
ftp://dce.hut.edu.vn/hiephv
4
Ni dung mn hc
Chng 1: Gii thiu chung
Chng 2: Biu din d liu v s hc my tnh
Chng 3: H thng my tnh
Chng 4: H my tnh IBM-PC
Chng 5: Lp trnh hp ng trn PC
5
Cu trc my tnh

Chng 1
Gii thiu chung
6
Ni dung chng 1

1. My tnh v phn loi my tnh
2. S tin ha ca my tnh
7
My tnh v phn loi my tnh
nh ngha my tnh:
Thit b in t thc hin cc cng vic sau:
Nhn thng tin vo
X l thng tin theo chng trnh c nh sn bn
trong
a thng tin ra
My tnh hot ng theo chng trnh.

8
My tnh v phn loi my tnh
M hnh my tnh c bn
9
My tnh v phn loi my tnh
M hnh phn lp ca my tnh
10
Phn loi my tnh
Phn loi truyn thng:
My vi tnh (Microcomputer)
My tnh nh (Minicomputer)
My tnh ln (Mainframe Computer)
Siu my tnh (Supercomputer)
11
Phn loi my tnh
Phn loi hin i:
My tnh c nhn (Personal Computer)
My ch (Server)
My tnh nhng (Embedded Computer)
12
My tnh c nhn
L loi my tnh ph bin nht i vi ngi dng
thng thng.
Thit k theo hng ti u c v gi thnh v hiu
nng
Mt s loi:
My tnh bn (Desktop)
My tnh xch tay (Notebook)
My trm lm vic (Workstation)
Gi thnh: t vi trm n vi nghn USD
13
My tnh c nhn
14
My Server
My ch (Server)
Thc cht l my phc v
Dng trong mng my tnh theo m hnh
Client/Server
Tc v hiu nng tnh ton cao
Dung lng b nh ln
tin cy cao
Gi thnh: t hng chc nghn n hng triu USD.
15
My Server
16
My tnh nhng
My tnh nhng (Embedded Computer)
c t trong thit b khc (bao gm c phn
cng v cc kt cu c kh) iu khin thit b
lm vic
c thit k chuyn dng
V d:
in thoi di ng
B iu khin trong my git, iu ha nhit
Mt s thit b mng: Switch, Router,
Gi thnh: t vi USD n hng trm ngn USD
17
My tnh nhng
18
Kin trc my tnh
Kin trc tp lnh
(Instruction Set Architecture ISA)
T chc my tnh
(Computer Organization)
Kin trc my tnh
19
Kin trc tp lnh
Nghin cu cu trc v hot ng ca my tnh
theo cch nhn ca ngi lp trnh.
Kin trc tp lnh ca my tnh bao gm
Tp lnh: tp hp cc chui s nh phn m ha cho cc
thao tc m my tnh c th thc hin c.
Kiu d liu: cc kiu d liu m my tnh c th x l.
Ch a ch
20
T chc my tnh
Nghin cu cu trc phn cng ca my tnh.
Cc thnh phn c bn ca my tnh
B x l trung tm (Central Processing Unit): iu khin
hot ng ca my tnh v x l d liu.
B nh chnh (Main Memory): cha cc chng trnh v
d liu ang c s dng.
H thng vo ra (Input/Output System): trao i thng tin
gia my tnh v bn ngoi.
Lin kt h thng (System Interconnection): kt ni v
vn chuyn thng tin gia cc thnh phn vi nhau
21
T chc my tnh
Cu trc c bn ca my tnh
22
Ni dung chng 1

1. My tnh v phn loi my tnh
2. S tin ha ca my tnh
23
Cc th h my tnh
Th h 1: My tnh dng n in t chn khng
(1946 - 1955)
Th h 2: My tnh dng transistor (1956 - 1965)
Th h 3: My tnh dng mch tch hp (1966 -
1980)
Th h 4: My tnh dng mch tch hp VLSI (1981
- nay)

24
My tnh dng n chn khng
25
Kin trc Von Neumann
Da trn tng chng trnh c lu tr (stored-
program concept)

26
My tnh dng transistor
My PDP-1 v CDC 6600
27
My tnh dng mch tch hp
Mch tch hp (Integrated Circuit IC) hay cn gi
l vi mch, l cc chip bn dn trong cha cc
transistor v cc linh kin khc.
So vi th h trc, cc my tnh th h ny:
Nh gn hn
Nhanh hn
Tiu th t nng lng hn
R tin hn
28
Siu my tnh CRAY-1
29
My tnh dng mch tch hp VLSI
Cc cng ngh mch tch hp:
SSI (Small scale integration) t 1965
Tch hp ti 100 transistor trn mt chip
MSI (Medium scale integration) cho n 1971
Tch hp t 100 n 3,000 transistor trn mt chip
LSI (Large scale integration) t 1971 n 1977
Tch hp t 3,000 n 100,000 transistor trn mt chip
VLSI (Very large scale integration) t 1978 n nay
Tch hp t 100,000 n 100,000,000 transistor trn mt chip
ULSI (Ultra large scale integration)
C hn 100,000,000 transistor trn mt chip
30
My tnh dng mch tch hp VLSI
Cc sn phm ca cng ngh VLSI:
B vi x l (Microprocessor): CPU c ch to trn
mt chip.
Cc vi mch iu khin tng hp (Chipset): cc vi
mch thc hin c nhiu chc nng iu khin v ni
ghp.
B nh bn dn, gm hai loi: ROM, RAM
Cc b vi iu khin (Microcontroller): my tnh
chuyn dng c ch to trn mt chip.
31
My tnh dng mch tch hp VLSI
3. S tin ha ca my tnh
Computer architecture
HiepHV KTMT
Th h 1: My tnh dng n in t chn khng
(1946 - 1955)
Th h 2: My tnh dng transistor (1956 - 1965)
Th h 3: My tnh dng mch tch hp IC (1966 -
1980)
Th h 4: My tnh dng mch tch hp VLSI (1981
- nay)
Th h 5: My tnh dng ULSI,

Th h 1: My tnh dng n in
t chn khng
Computer architecture
HiepHV KTMT
c im
Xy dng trn c s cc n in t chn khng
Kch thc, trng lng v cng sut tiu th rt ln
nhng c tc rt chm

V d my tnh ENIAC
Computer architecture
HiepHV KTMT
My tnh in t u tin
D n ca b quc phng M
Bt u nm 1943, kt thc nm 1946
c im
Nng 30 tn,
18.000 n in t
1500 rle,
Cng sut tiu th 140KW
Tc : 5000 php cng mi giy

V d my tnh ENIAC (tip)
Computer architecture
HiepHV KTMT
B nh ch lu tr d liu
Lp trnh bng cch thit lp cc chuyn mch v
cc cp ni
V d my tnh Eniac
Computer architecture
HiepHV KTMT








Di 10m, rng 3m, cao 3m
Kin trc Von-Neumann
Computer architecture
HiepHV KTMT
Khi nim nh chng trnh (stored program) c
a ra (1947)
c trng c bn:
D liu v cc lnh (chng trnh) c cha trong mt
b nh c ghi.
B nh c nh a ch theo tng ngn nh, khng
ph thuc vo ni dung ca n.
My tnh thc hin lnh mt cch tun t.

Kin trc Von neumann
Computer architecture
HiepHV KTMT

Kin trc Von neumann
Computer architecture
HiepHV KTMT
Trn c s kin trc ny cc my tnh thng mi
ra i
1947: UNIVAC 1 (Universal automatic computer)
1950s: UNIVAC 2
UNIVAC 1
Computer architecture
HiepHV KTMT

IBM
Computer architecture
HiepHV KTMT
IBM: International Business Machine
1953: ra i my tnh IBM 701
1955: IBM 702


IBM 701
Computer architecture
HiepHV KTMT

Th h 2: My tnh dng
transistor
Computer architecture
HiepHV KTMT
Trn c s pht minh ra transistor Bell Labs vo
nm 1948.
Transistor c kch thc nh hn nhiu, tc
nhanh hn v tiu th nng lng t hn nhiu
thay th bng n in t
My tnh th h transistor c kh nng thc hin
hng trm nghn php tnh cng trong mt giy
Cc ngn ng lp trnh bc cao ra i

My tnh TRADIC
Computer architecture
HiepHV KTMT
My tnh u tin s dng hon ton bng bn dn:
8000 transistors
Nhanh hn
Nh hn
R hn.

Th h 3: My tnh dng mch
tch hp (1966 - 1980)
Computer architecture
HiepHV KTMT
Da trn cng ngh mch tch hp, cn gi l vi
mch (Integrated Circuit - IC)
Cc vi mch c SSI/MSI/LSI (small scale, Medium
scale, )
Xut hin cc siu my tnh nh CRAY-1, VAX
Cc b vi x l - CPU c ch to trn mt chip -
cng ra i v bt u pht trin

My tnh th h 3
Computer architecture
HiepHV KTMT
Hng t
php ton/s
Th h 4: My tnh dng mch
tch hp VLSI (1981 - nay)
Computer architecture
HiepHV KTMT
Pht trin trn c s cc mch tch hp c mt
tch hp siu ln VLSI.
Cc sn phm ca cng ngh VLSI:
B vi x l (Microprocessor): CPU c ch to trn mt
chip
Cc vi mch iu khin tng hp (Chipset): cc vi mch
thc hin c nhiu chc nng iu khin v ni ghp.
B nh bn dn (Semiconductor Memory): ROM, RAM
Cc b vi iu khin (Microcontroller): my tnh chuyn
dng c ch to trn mt chip

Th h th t Vi x l
(Microprocessor)
Computer architecture
HiepHV KTMT

Mcroprocessor = Central Processing Unit (CPU) thit k
trong 1 chip n
1971 : Intel 4004
tn s 108KHz ,
cha 2300 transistors
Th h th t Vi x l
(Microprocessor)
Computer architecture
HiepHV KTMT

Intel Corp. s dng
chip Intel 4004 trong
cc my tnh
(calculator)
Th h th t Vi x l
(Microprocessor)
Computer architecture
HiepHV KTMT

Giai on 1976 - 1981
Computer architecture
HiepHV KTMT

Commodore
PET 2001
Tandy TRS-80
Osbourne
Kaypro
1981 IBM PC
Computer architecture
HiepHV KTMT

Th h my tnh c
nhn mi vi kin
trc m IBM
1984 Apple Macintos
Computer architecture
HiepHV KTMT

1990 nay: Personal
Computers
Computer architecture
HiepHV KTMT

Tc vi x l tng
nhanh:
CPU 1 li,
CPU a li
Kin trc t thay i
Lut moore
Computer architecture
HiepHV KTMT
Gordon Moore: Ngi ng sng lp intel
S lng transistor trn chip s tng gp i sau
18 thng
Gi thnh chip th hu nh khng i
Mt cao hn
Tc nhanh hn
in nng tiu th t hn
Tng tin cy
S pht trin ca Intel
Computer architecture
HiepHV KTMT
4004:
B vi x l u tin
4 bt
8080:
B x l a nng u tin
8 bit
8086:
5Mhz tch hp 29,000 transistor
Bus d liu ngoi: 16 bit
8088: ging vi 8080, bus d liu ngoi 8 bt

S pht trin ca Intel
Computer architecture
HiepHV KTMT
80286:
nh a ch b nh c 16Mbyte
80386:
32 bit
H tr a nhim
80486
Tng cng b nh cache
H tr pipe line
C b ng x l ton trn chip

S pht trin ca intel
Computer architecture
HiepHV KTMT
Pentium
Siu v hng (super scalar)
Bus d liu 64 bit
a lnh c thc hin song song
Pentium Pro
Tng cng chc nng v hng
D on r nhnh
Phn tch lung d liu
Suy on ng

S pht trin ca Intel
Computer architecture
HiepHV KTMT
Pentium II
X l ha, video, audio
Pentium III
Thm cc lnh x l du chm ng cho ha 3D
Pentium IV
Tng cng x l du chm ng v multimedia
Dual core:
2 b x l trn 1 chip
Core 2 dual: Kin trc 64 bit
Core 2 quard: 4 b x l trn chip: tch hp
820,000,000 transistor
My tnh th h 5
Computer architecture
HiepHV KTMT
Cc my tnh thng minh, c kh nng t duy
nh b c con ngi
Xu hng ngy nay
Computer architecture
HiepHV KTMT

Nhanh hn
Nh hn
R hn
D s dng
hn
62
Cu trc my tnh

Chng 2
BIU DIN D LIU
& S HC MY TNH
63
Ni dung chng 2

2.1. Cc h m c bn
2.2. M ha v lu tr d liu trong my tnh
2.3. Biu din s nguyn
2.4. Cc php ton s hc vi s nguyn
2.5. Biu din s thc
2.6. Biu din k t

64
Cc h m c bn
V mt ton hc, ta c th biu din s theo h
m c s bt k.
Khi nghin cu v my tnh, ta ch quan tm n
cc h m sau y:
H thp phn (Decimal System) con ngi s dng
H nh phn (Binary System) my tnh s dng
H mi su (Hexadecimal System) dng vit gn
cho s nh phn

65
H thp phn

=
+ + + + + + + =
n
m i
i
i
m
m
n
n
n
n
a A
a a a a a a A
10
10 ... 10 10 10 ... 10 10
1
1
0
0
1
1
1
1
S dng 10 ch s: 0,1,2,3,4,5,6,7,8,9 biu din s
Dng n ch s thp phn c th biu din c 10n gi tr
khc nhau:
00...000 = 0
....
99...999 = 10n-1
Gi s mt s A c biu din di dng:
A = an an-1 a1 a0 . a-1 a-2 a-m
Gi tr ca A c hiu nh sau:
66
V d
S thp phn 472.38 c gi tr c hiu nh sau:
472.38 = 4 x 10
2
+ 7 x 10
1
+ 2 x 10
0
+ 3 x 10
-1
+ 8 x 10
-2


67
M rng cho h c s r (r>1)
S dng r ch s c gi tr ring t 0 n r-1 biu din s
Gi s c s A c biu din bng cc ch s ca h m
theo c s r nh sau:
A = an an-1 a1 a0 . a-1 a-2 a-m
Gi tr ca A l:
Mt chui n ch s ca h m c s r s biu
din c r
n
gi tr khc nhau.

=
+ + + + + + + + =
n
m i
i
i
m
m
n
n
n
n
r a A
r a r a r a r a r a r a r a A ... ...
2
2
1
1
0
0
1
1
1
1
68
H nh phn
S dng 2 ch s: 0,1
Ch s nh phn gi l bit (binary digit)
Bit l n v thng tin nh nht
Dng n bit c th biu din c 2n gi tr khc nhau:
00...000 = 0
...
11...111 = 2n-1
Gi s c s A c biu din theo h nh phn nh sau:
A = an an-1 a1 a0 . a-1 a-2 a-m
Vi ai l cc ch s nh phn, khi gi tr ca A l:

=
+ + + + + + + + =
n
m i
i
i
m
m
n
n
n
n
a A
a a a a a a a A
2
2 ... 2 2 2 2 ... 2 2
2
2
1
1
0
0
1
1
1
1
69
V d
S nh phn 1101001.1011 c gi tr c xc nh
nh sau:
1101001.1011
(2)
= 2
6
+ 2
5
+ 2
3
+ 2
0
+ 2
-1
+ 2
-3
+ 2
-4

= 64 + 32 + 8 + 1 + 0.5 + 0.125 + 0.0625 = 105.6875
(10)

70
i s thp phn sang nh phn
Thc hin chuyn i phn nguyn v phn l ring.
Chuyn i phn nguyn:
Cch 1: chia dn s cho 2, xc nh cc phn d, ri vit cc s
d theo chiu ngc li.
V d: chuyn i 105
(10)
sang h nh phn ta lm nh sau:
105 : 2 = 52 d 1
52 : 2 = 26 d 0
26 : 2 = 13 d 0
13 : 2 = 6 d 1
6 : 2 = 3 d 0
3 : 2 = 1 d 1
1 : 2 = 0 d 1
Nh vy, ta c: 105
(10)
= 1101001
(2)


71
i s thp phn sang nh phn
Chuyn i phn nguyn (tip):
Cch 2: phn tch s thnh tng cc ly tha ca 2, sau da
vo cc s m xc nh dng biu din nh phn.
V d: 105 = 64 + 32 + 8 + 1 = 2
6
+ 2
5
+ 2
3
+ 2
0
105
(10)
= 1101001
(2)
Chuyn i phn l:
Nhn phn l vi 2 ri ly phn nguyn ... Sau vit cc phn
nguyn theo chiu thun.
V d: chuyn i s 0.6875
(10)
sang h nh phn:
0.6875 x 2 = 1.3750 phn nguyn = 1
0.375 x 2 = 0.750 phn nguyn = 0
0.75 x 2 = 1.50 phn nguyn = 1
0.5 x 2 = 1.0 phn nguyn = 1
Kt qu l: 0.6875
(10)
= 0.1011
(2)

72
3. H mi su (Hexa)
S dng 16 ch s, k hiu
nh sau:
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
Dng vit gn cho s nh
phn.
73
Mt s v d
Nh phn Hexa: 11 1011 1110 0110
(2)
= 3BE6
(16)
Hexa Nh phn: 3E8
(16)
= 11 1110 1000
(2)
Thp phn Hexa: 14988 ?
14988 : 16 = 936 d 12 tc l C
936 : 16 = 58 d 8
58 : 16 = 3 d 10 tc l A
3 : 16 = 0 d 3
Nh vy, ta c: 14988
(10)
= 3A8C
(16)
Hexa Thp phn: 3A8C ?
3A8C
(16)
= 3 x 16
3
+ 10 x 16
2
+ 8 x 16
1
+12 x 16
0

= 12288 + 2560 + 128 + 12 = 14988
(10)

74
Cng tr s Hexa
8A9B
37CD
C268
+
B46E
1AC9
99A5
-
B7E5
2AF9
+
FA9D
2BC5
-
B800
0FFF
+
8E9A
3FE2
-
1234
ABCD
+
4B6D
3FEA
-
CFFF
1FFF
+
A78D
45FB
-
879D
5DF8
+
98BA
8A9D
-
E2DE CED8
75
Ni dung chng 2

2.1. Cc h m c bn
2.2. M ha v lu tr d liu trong my tnh
2.3. Biu din s nguyn
2.4. Cc php ton s hc vi s nguyn
2.5. Biu din s thc
2.6. Biu din k t
76
M ha v lu tr d liu

1. Nguyn tc chung v m ha d liu
2. Lu tr thng tin trong b nh chnh
77
1. Nguyn tc chung v m ha d liu
Mi d liu a vo my tnh u phi c m
ha thnh s nh phn.
Cc loi d liu :
D liu nhn to: do con ngi quy c
D liu t nhin: tn ti khch quan vi con ngi
78
Nguyn tc m ha d liu
M ha d liu nhn to:
D liu s nguyn: m ha theo chun qui c
D liu s thc: m ha bng s du chm ng
D liu k t: m ha theo b m k t
79
Nguyn tc m ha d liu (tip)
M ha d liu t nhin:
Ph bin l cc tn hiu vt l nh m thanh, hnh nh, ...
Cc d liu t nhin cn phi c s ha (digitalized) trc khi a
vo trong my tnh.
S m ha v ti to tn hiu vt l:

B cm bin
tn hiu
(sensor)
B chuyn i
t- ng t - s
(ADC)
Tn hiu vt l
Tn hiu in
lin tc
Tn hiu s
My tnh
B ti to
tn hiu
B chuyn i
s - t- ng t
(DAC)
Tn hiu vt l
Tn hiu in
lin tc
Tn hiu s
80
di t d liu
di t d liu:
L s bit c s dng m ha loi d liu tng
ng
Trong thc t, di t d liu thng l bi s ca 8
bit, v d: 8, 16, 32, 64 bit
81
2. Lu tr thng tin trong b nh chnh
B nh chnh thng c t chc theo Byte
di t d liu c th chim 1 hoc nhiu Byte
Cn phi bit th t lu tr cc byte trong b nh
chnh:
Lu tr kiu u nh (Little-endian)
Lu tr kiu u to (Big-endian)
Little-endian: Byte c ngha thp hn c lu
tr trong b nh v tr c a ch nh hn.
Big-endian: Byte c ngha thp hn c lu tr
trong b nh v tr c a ch ln hn.

82
V d
Intel 80x86, Pentium: Little-endian
Motorola 680x0, cc b x l RISC: Big-endian
Power PC, Itanium: h tr c hai (Bi-endian)
83
Bi tp
D liu 16 bit c gi tr l 5B9D c lu tr vo
b nh chnh t chc theo kiu Little-endian bt
u t byte nh c a ch l 1234. Hy xc nh
ni dung cc byte nh cha lu tr d liu di
dng nh phn.
84
Ni dung chng 2

2.1. Cc h m c bn
2.2. M ha v lu tr d liu trong my tnh
2.3. Biu din s nguyn
2.4. Cc php ton s hc vi s nguyn
2.5. Biu din s thc
2.6. Biu din k t
85
Biu din s nguyn

1. S nguyn khng du
2. S nguyn c du
3. Biu din s nguyn theo m BCD
86
1. S nguyn khng du
Dng tng qut: gi s dng n bit biu din cho mt s
nguyn khng du A:
a
n-1
a
n-2
...a
3
a
2
a
1
a
0
Gi tr ca A c tnh nh sau:




Di biu din ca A: t 0 n 2
n
-1

=
+ + + + =
1
0
0
0
1
1
2
2
1
1
2
2 2 ... 2 2
n
i
i
i
n
n
n
n
a A
a a a a A
87
Cc v d
V d 1. Biu din cc s nguyn khng du sau
y bng 8 bit:
A = 45 B = 156
Gii:
A = 45 = 32 + 8 + 4 + 1 = 2
5
+ 2
3
+ 2
2
+ 2
0
A = 0010 1101

B = 156 = 128 + 16 + 8 + 4 = 2
7
+ 2
4
+ 2
3
+ 2
2
B = 1001 1100
88
Cc v d (tip)
V d 2. Cho cc s nguyn khng du X, Y c
biu din bng 8 bit nh sau:
X = 0010 1011
Y = 1001 0110
Gii:
X = 0010 1011 = 2
5
+ 2
3
+ 2
1
+ 2
0

= 32 + 8 + 2 + 1 = 43

Y = 1001 0110 = 2
7
+ 2
4
+ 2
2
+ 2
1
= 128 + 16 + 4 + 2 = 150
89
Trng hp c th: vi n = 8 bit
Di biu din l [0, 255]
0000 0000 = 0
0000 0001 = 1
0000 0010 = 2
0000 0011 = 3
.....
1111 1111 = 255
Trc s hc:

0
1
2
3
255
254
Trc s hc my tnh:
0 1 2 255
90
Vi n = 8 bit
Kiu d liu tng ng trong Turbo C l kiu
unsigned char.
V d:
unsigned char a;
a = 255;
a = a + 1;
printf(%d,a); //Kt qu sai l 0
1111 1111
+ 0000 0001
1 0000 0000
KQ sai: 255 + 1 = 0 ?
(do php cng b nh ra
ngoi)
91
Vi n = 16 bit, 32 bit, 64 bit
n = 16 bit:
Di biu din l [0, 65535]
Kiu d liu tng ng trong Turbo C l kiu unsigned int
V d:
unsigned int a;
a = 0xffff;
a = a + 1;
printf(%d,a);

n = 32 bit:
Di biu din l [0, 2
32
-1]
n = 64 bit:
Di biu din l [0, 2
64
-1]
92
2. S nguyn c du
a. Khi nim v s b
S b chn v s b mi (h thp phn):
Gi s c mt s nguyn thp phn A c biu din
bi n ch s thp phn. Khi ta c:
S b chn ca A = (10
n
- 1) - A
S b mi ca A = 10
n
- A
NX: S b mi = S b chn + 1
V d:
Xt n = 4 ch s, A = 2874
S b chn ca A = (10
4
- 1) - 2874 = 7125
S b mi ca A = 10
4
- 2874 = 7126
93
Khi nim v s b
S b mt v s b hai (h nh phn):
Gi s c mt s nguyn nh phn A c biu din bi
n bit. Khi ta c:
S b mt ca A = (2
n
- 1) - A
S b hai ca A = 2
n
- A
NX: S b hai = S b mt + 1
V d:
Xt n = 4 bit, A = 0110
S b mt ca A = (2
4
- 1) - 0110 = 1001
S b hai ca A = 2
4
- 0110 = 1010
94
Nhn xt
C th tm s b mt ca A bng cch o tt c
cc bit ca A
S b hai ca A = S b mt ca A + 1
95
Nhn xt
V d:
cho A =0110 0101
S b mt ca A =1001 1010
+ 1

S b hai ca A =1001 1011
Nhn xt
A = 0110 0101
S b hai ca A += 1001 1011

1 0000 0000 = 0 (b qua bit nh ra ngoi)
->S b hai ca A=-A
96
Biu din s nguyn c du
b. Biu din s nguyn c du bng s b hai
Dng n bit biu din s nguyn c du A:
a
n-1
a
n-2
...a
2
a
1
a
0
Vi s dng:
Bit a
n-1
= 0
Cc bit cn li biu din ln ca s dng
Dng tng qut ca s dng: 0a
n-2
...a
2
a
1
a
0
Gi tr ca s dng:



Di biu din ca s dng: [0, 2
n-1
-1]

=
=
2
0
2
n
i
i
i
a A
97
Biu din s nguyn c du (tip)
Vi s m:
c biu din bng s b hai ca s dng tng ng
Bit a
n-1
= 1
Dng tng qut ca s m: 1a
n-2
...a
2
a
1
a
0
Gi tr ca s m:



Di biu din ca s m: [-2
n-1
, -1]

Di biu din ca s nguyn c du n bit l [-2
n-1
, 2
n-1
-1]

+ =
2
0
1
2 2
n
i
i
i
n
a A
98
Biu din s nguyn c du (tip)
Dng tng qut ca s nguyn c du A:
a
n-1
a
n-2
...a
2
a
1
a
0

Gi tr ca A c xc nh nh sau:




Di biu din: [-2
n-1
, 2
n-1
-1]

+ =
2
0
1
1
2 2
n
i
i
i
n
n
a a A
99
Cc v d
V d 1. Biu din cc s nguyn c du sau y bng 8 bit
A = +50 B = -70
Gii:
A = +50 = 32 + 16 + 2 = 2
5
+ 2
4
+ 2
1
A = 0011 0010

B = -70
Ta c: +70 = 64 + 4 + 2 = 2
6
+ 2
2
+ 2
1
+70 = 0100 0110
S b 1 = 1011 1001
+ 1
S b 2 = 1011 1010
B = 1011 1010
100
Cc v d (tip)
V d 2. Xc nh gi tr ca cc s nguyn c du
8 bit sau y:
A = 0101 0110
B = 1101 0010
Gii:
A = 2
6
+ 2
4
+ 2
2
+ 2
1
= 64 + 16 + 4 + 2 = +86
B = -2
7
+ 2
6
+ 2
4
+ 2
1
= -128 + 64 + 16 + 2 = -46
101
Trng hp c th: vi n = 8 bit
Di biu din l [-128, +127]
0000 0000 = 0
0000 0001 = +1
0000 0010 = +2
..
0111 1111 = +127
1000 0000 = -128
1000 0001 = -127
.....
1111 1110 = -2
1111 1111 = -1
Trc s hc:

Trc s hc my tnh:
0 -2 -1 127 -128 1 2
0
+1
+2
+127
-1
-2
-128
102
Vi n = 8 bit (tip)
Kiu d liu tng ng trong Turbo C l kiu char.
V d:
char a;
a = 127;
a = a + 1;
printf(%d,a); //Kt qu sai l -128

0111 1111
+ 0000 0001
1000 0000
KQ sai: 127 + 1 = -128 ?
(do php cng b trn s
hc)
103
Vi n = 16 bit, 32 bit, 64 bit
n = 16 bit:
Di biu din l [-32768, +32767]
Kiu d liu tng ng trong Turbo C l kiu int
n = 32 bit:
Di biu din l [-2
31
, 2
31
-1]
Kiu d liu tng ng trong Turbo C l kiu long int
n = 64 bit:
Di biu din l [-2
63
, 2
63
-1]
104
Chuyn t 8 bit sang 16 bit
Vi s dng:
+35 = 0010 0011 (8 bit)
+35 = 0000 0000 0010 0011 (16 bit)
Thm 8 bit 0 vo bn tri
Vi s m:
-79 = 1011 0001 (8 bit)
-79 = 1111 1111 1011 0001 (16 bit)
Thm 8 bit 1 vo bn tri
Kt lun: m rng sang bn tri 8 bit bng bit du
105
3. Biu din s nguyn theo m BCD
BCD Binary Coded Decimal (M ha s nguyn
thp phn bng nh phn)
Dng 4 bit m ha cho cc ch s thp phn t
0 n 9
0 0000 5 0101
1 0001 6 0110
2 0010 7 0111
3 0011 8 1000
4 0100 9 1001
C 6 t hp khng s dng:
1010, 1011, 1100, 1101, 1110, 1111
106
V d v s BCD
35 0011 0101
BCD
79 0111 1001
BCD
2281 0010 0010 1000 0001
BCD
1304 0001 0011 0000 0100
BCD

107
Php cng s BCD
35 0011 0101
BCD
+ 24 + 0010 0100
BCD
59 0101 1001
BCD
Kt qu ng (khng phi hiu chnh)

89 1000 1001
BCD

+ 52 + 0101 0010
BCD
141 1101 1011 kt qu sai
+ 0110 0110 hiu chnh
0001 0100 0001
BCD
kt qu ng
1 4 1

Hiu chnh: cng thm 6 nhng hng c nh
108
Cc kiu lu tr s BCD
BCD dng nn (Packed BCD): Hai s BCD c lu tr
trong 1 Byte.
V d s 52 c lu tr nh sau:


BCD dng khng nn (Unpacked BCD): Mi s BCD c
lu tr trong 4 bit thp ca mi Byte.
V d s 52 c lu tr nh sau:

0101 0010
0101 0010
109
Ni dung chng 2

2.1. Cc h m c bn
2.2. M ha v lu tr d liu trong my tnh
2.3. Biu din s nguyn
2.4. Cc php ton s hc vi s nguyn
2.5. Biu din s thc
2.6. Biu din k t
110
Cc php ton s hc vi s nguyn

1. B cng
2. Cng s nguyn khng du
3. Cng/tr s nguyn c du
4. Nhn s nguyn
5. Chia s nguyn
111
1. B cng
B cng 1 bit ton phn (Full Adder)
112
B cng (tip)
B cng n bit
113
2. Cng s nguyn khng du
Nguyn tc: S dng b cng n bit cng 2 s
nguyn khng du n bit, kt qu nhn c cng l
n bit.
Nu khng c nh ra khi bit cao nht (C
out
=0) th kt
qu nhn c l ng.
Nu c nh ra khi bit cao nht (C
out
=1) th kt qu nhn
c l sai, khi xy ra hin tng nh ra ngoi.
Hin tng nh ra ngoi (Carry-out) xy ra khi tng
ca 2 s nguyn khng du n bit > 2
n
-1
114
VD cng s nguyn khng du 8 bit
Trng hp khng xy ra carry-out:
X = 1001 0110 = 150
Y = 0001 0011 = 19
S = 1010 1001 = 169
C
out
= 0

Trng hp c xy ra carry-out:
X = 1100 0101 = 197
Y = 0100 0110 = 70
S = 0000 1011 = 267
C
out
= 1 carry-out
(KQ sai = 2
3
+ 2
1
+ 2
0
= 11)
unsigned char x, y, s;
x = 197;
y = 70;
s = x + y;
printf(%d,s);

115
3. Cng/tr s nguyn c du
Khi cng hai s nguyn c du n bit, ta khng quan
tm n bit C
out
v kt qu nhn c cng l n bit.
Cng hai s khc du: kt qu lun ng
Cng hai s cng du:
Nu tng nhn c cng du vi 2 s hng th kt qu l ng
Nu tng nhn c khc du vi 2 s hng th xy ra hin
tng trn s hc (Overflow) v kt qu nhn c l sai
Trn s hc xy ra khi tng thc s ca hai s nm
ngoi di biu din ca s nguyn c du n bit:
[-2
n-1
, 2
n-1
-1]
116
Php tr s nguyn c du
Nguyn tc thc hin php tr:
Ta c: X Y = X + (-Y)
Cch thc hin: ly X cng vi s b 2 ca Y

B cng n-bit
Y X
S
B hai
n-bit n-bit
n-bit
117
V d cng 2 s nguyn c du (khng trn)
118
V d cng 2 s nguyn c du (Overflow)
119
4. Nhn s nguyn

a. Nhn s nguyn khng du
b. Nhn s nguyn c du

120
a. Nhn s nguyn khng du
Cc tch ring phn c xc nh nh sau:
Nu bit ca s nhn = 0 tch ring phn = 0
Nu bit ca s nhn = 1 tch ring phn = s b nhn
Tch ring phn tip theo c dch tri 1 bit so vi tch ring phn
trc
Tch = tng cc tch ring phn
Nhn 2 s nguyn n bit, tch c di 2n bit khng trn
121
B nhn s nguyn khng du
M
n-1
... M
1
M
0
B cng n bit
A
n-1
... A
1
A
0
Q
n-1
... Q
1
Q
0
C
B iu khin dch v cng
iu khin
cng
iu khin dch phi
S b nhn M
S nhn Q
122
Lu thc hin
Bt u
C, A 0
M S b nhn
Q S nhn
B m n
Q
0
= 1 ? C, A A + M
Dch phi C, A, Q
B m B m - 1
B m = 0 ? Kt thc
S
S
123
V d nhn s nguyn khng du
M = 1011 (11 - S b nhn)
Q = 1101 (13 - S nhn)
= 1000 1111 (143 - Tch)

C A Q
0 0000 1101 Cc gi tr khi u
+ 1011
0 1011 1101 A A + M
0 0101 1110 Dch phi
0 0010 1111 Dch phi
+ 1011
0 1101 1111 A A + M
0 0110 1111 Dch phi
+ 1011
1 0001 1111 A A + M
0 1000 1111 Dch phi
124
b. Nhn s nguyn c du
S dng thut gii nhn khng du:
Bc 1: Chuyn i s nhn v s b nhn thnh s
dng tng ng.
Bc 2: Nhn 2 s bng thut gii nhn s nguyn
khng du c tch 2 s dng.
Bc 3: Hiu chnh du ca tch:
Nu 2 tha s ban u cng du th tch nhn c bc 2 l
kt qu cn tnh.
Nu 2 tha s ban u khc du nhau th kt qu l s b 2 ca
tch nhn c bc 2.
125
Nhn s nguyn c du
S dng thut gii Booth:
Vi s nhn dng:
Ta c: 2
i
+ 2
i-1
+ + 2
j
= 2
i+1
- 2
j
(vi i>j)
VD: M * 01110010 = M * (2
7
2
4
+ 2
2
2
1
)
Quy tc: duyt t tri sang phi:
Nu gp 10 th tr A i M ri dch phi
Nu gp 01 th cng A vi M ri dch phi
Nu gp 00 hay 11 th ch dch phi
Vi s nhn m:
Ta c:
1110a
k-1
a
k-2
a
0
= -2
n-1
+ 2
n-2
+ + 2
k+1
+ a
k-1
2
k-1
+ + a
0
2
0

= -2
n-1
+ 2
n-1
- 2
k+1
+ a
k-1
2
k-1
+ + a
0
2
0
-2
k+1
ng vi bit 10 nn vn m bo quy tc TH trn

126
Lu thc hin thut ton Booth
Bt u
A 0
Q
-1
0
M S b nhn
Q S nhn
B m n
Q
0
Q
-1
A A + M
Dch phi A, Q, Q
-1
(Gi nguyn bit du ca A)
B m B m - 1
B m = 0 ? Kt thc
= 01
S
A A M
= 10
= 00 / 11
A Q Q
-1
127
V d v thut ton Booth
V d 1:
n = 4 bit, M = +7, Q = +3
M = 0111, Q = 0011, -M = 1001
A Q Q
-1
0000 0011 0 ; khi to
+1001
1001 0011 0 ; A A - M
1100 1001 1 ; dch phi
1110 0100 1 ; dch phi
+0111
10101 0100 1 ; A A + M
0010 1010 0 ; dch phi
0001 0101 0 ; dch phi
V d 2:
n = 4 bit, M = +7, Q = -3
M = 0111, Q = 1101, -M = 1001
A Q Q
-1
0000 1101 0 ; khi to
+1001
1001 1101 0 ; A A - M
1100 1110 1 ; dch phi
+0111
10011 1110 1 ; A A + M
0001 1111 0 ; dch phi
+1001
1010 1111 0 ; A A - M
1101 0111 1 ; dch phi
1110 1011 1 ; dch phi
128
5. Chia s nguyn

a. Chia s nguyn khng du
b. Chia s nguyn c du
129
a. Chia s nguyn khng du
V d:
130
B chia s nguyn khng du
M
n-1
... M
1
M
0
B cng/tr n bit
A
n-1
... A
1
A
0
Q
n-1
... Q
1
Q
0
B logic iu khin
cng, tr v dch
iu khin
cng/tr
iu khin dch tri
S chia M
S b chia Q
131
Lu thc hin
Bt u
A 0
M S chia
Q S b chia
B m 0
A < 0 ?
Q
0
0
A A + M
Dch tri A, Q
B m = 0 ? Kt thc
S
A A M
Q
0
1
B m B m - 1
S
132
b. Chia s nguyn c du
Bc 1: Chuyn i s chia v s b chia thnh s
dng tng ng
Bc 2: S dng thut gii chia s nguyn khng
du chia 2 s dng, kt qu nhn c l
thng Q v phn d R u dng
Bc 3: Hiu chnh du kt qu theo quy tc sau:
133
Ni dung chng 2

2.1. Cc h m c bn
2.2. M ha v lu tr d liu trong my tnh
2.3. Biu din s nguyn
2.4. Cc php ton s hc vi s nguyn
2.5. Biu din s thc
2.6. Biu din k t
134
Biu din s thc

1. Khi nim v s du chm tnh
2. Khi nim v s du chm ng
3. Chun IEEE 754/85
135
Biu din s thc
Quy c: "du chm" (point) c hiu l k hiu
ngn cch gia phn nguyn v phn l ca 1 s
thc.
C 2 cch biu din s thc trong my tnh:
S du chm tnh (fixed-point number):
Du chm l c nh (s bit dnh cho phn nguyn v phn l l
c nh)
Dng trong cc b vi x l hay vi iu khin th h c.
S du chm ng (floating-point number):
Du chm khng c nh
Dng trong cc b vi x l hin nay, c chnh xc cao hn.

136
1. Khi nim v s du chm tnh
S bit dnh cho phn nguyn v s bit phn l l
c nh.
Gi s rng:
U(a,b) l tp cc s du chm tnh khng du c a bit
trc du chm v b bit sau du chm.
A(a,b) l tp cc s du chm tnh c du c a bit
(khng k bit du) trc du chm v b bit sau du
chm.
137
S du chm tnh khng du
Khong xc nh ca s du chm tnh khng du:
[0, 2
a
- 2
-b
]
V d:
Dng 8 bit m ha cho kiu s du chm tnh, trong
c 2 bit dnh cho phn l. Khong xc nh ca kiu
d liu ny l: 0 s R s 2
6
2
-2
= 63.75
VD: gi tr ca 101011.11 = 10101111 x 2
-2
= 43.75
138
S du chm tnh c du
Khong xc nh ca s du chm tnh c du:
[-2
a
, 2
a
- 2
-b
]
V d:
Dng 8 bit biu din s chm tnh c du vi a=5, b=2
Ta c tp cc s chm tnh thuc A(5,2) nm trong
khong:
[-2
5
, 2
5
2
-2
] hay [-32, 31.75]

139
c im ca s du chm tnh
Cc php ton thc hin nhanh.
chnh xc khi thc hin cc php ton khng
cao, c bit l vi php tnh nhn.
V d:
Khi thc hin php nhn ta cn phi c thm mt s
lng bit nht nh biu din kt qu.
i vi s khng du:
U(a1, b1) x U(a2, b2) = U(a1 + a2, b1 + b2)
i vi s c du:
A(a1, b1) x A(a2, b2) = A(a1 + a2 + 1, b1 + b2)
140
2. Khi nim v s du chm ng
Floating Point Number biu din cho s thc
Mt s thc X c biu din theo kiu s du
chm ng nh sau:
X = M * R
E
Trong :
M l phn nh tr (Mantissa)
R l c s (Radix)
E l phn m (Exponent)
Vi R c nh th lu tr X ta ch cn lu tr M
v E (di dng s nguyn)
141
3. Chun IEEE 754/85
L chun m ha s du chm ng
C s R = 2
C cc dng c bn:
Dng c chnh xc n, 32-bit
Dng c chnh xc kp, 64-bit
Dng c chnh xc kp m rng, 80-bit
Khun dng m ha:
S m e
79 63 0 78 64
S m e
31 22 0 30 23
S m e
63 51 0 62 52
142
Khun dng m ha
S l bit du, S=0 l s dng, S=1 l s m.
e l m lch (excess) ca phn m E, tc l: E = e b
Trong b l lch (bias):
Dng 32-bit : b = 127, hay E = e - 127
Dng 64-bit : b = 1023, hay E = e - 1023
Dng 80-bit : b = 16383, hay E = e - 16383
m l cc bit phn l ca phn nh tr M, phn nh tr c
ngm nh nh sau: M = 1.m
Cng thc xc nh gi tr ca s thc tng ng l:
X = (-1)
S
x 1.m x 2
e-b

143
V d v s du chm ng
V d 1: C mt s thc X c dng biu din nh
phn theo chun IEEE 754 dng 32 bit nh sau:
1100 0001 0101 0110 0000 0000 0000 0000
Xc nh gi tr thp phn ca s thc .
Gii:
S = 1 X l s m
e = 1000 0010 = 130
m = 10101100...00
Vy X = (-1)
1
x 1.10101100...00 x 2
130-127
= -1.101011 x 2
3
= -1101.011 = -13.375
144
V d v s du chm ng (tip)
V d 2: Xc nh gi tr thp phn ca s thc X c
dng biu din theo chun IEEE 754 dng 32 bit
nh sau:
0011 1111 1000 0000 0000 0000 0000 0000
Gii:
145
V d v s du chm ng (tip)
V d 3: Biu din s thc X = 9.6875 v dng s
du chm ng theo chun IEEE 754 dng 32 bit
Gii:
X = 9.6875
(10)
= 1001.1011
(2)
= 1.0011011 x 2
3
Ta c:
S = 0 v y l s dng
E = e 127 nn e = 127 + 3 = 130
(10)
= 1000 0010
(2)
m = 001101100...00 (23 bit)
Vy:
X = 0100 0001 0001 1011 0000 0000 0000 0000
146
Cc quy c c bit
Nu tt c cc bit ca e u bng 0, cc bit ca m
u bng 0, th X = 0
Nu tt c cc bit ca e u bng 1, cc bit ca m
u bng 0, th X =
Nu tt c cc bit ca e u bng 1, m c t nht
mt bit bng 1, th X khng phi l s (not a
number - NaN)
147
Trc s biu din
Dng 32 bit: a = 2
-127
10
-38
b = 2
+127
10
+38

Dng 64 bit: a = 2
-1023
10
-308
b = 2
+1023
10
+308

Dng 80 bit: a = 2
-16383
10
-4932
b = 2
+16383
10
+4932
-0 +0 -a b -b a
underflow
overflow overflow
+
148
Thc hin cc php ton
X1 = M1
*
R
E1

X2 = M2
*
R
E2

Ta c
X1 X2 = (M1

*

R
E1-E2
M2) * R
E2
, vi E2 > E1
X1 * X2 = (M1 * M2) * R
E1+E2
X1 / X2 = (M1 / M2) * R
E1-E2
149
Cc kh nng trn s
Trn trn s m (Exponent Overflow): m dng
vt ra khi gi tr cc i ca s m dng c
th.
Trn di s m (Exponent Underflow): m m
vt ra khi gi tr cc i ca s m m c th.
Trn trn phn nh tr (Mantissa Overflow): cng
hai phn nh tr c cng du, kt qu b nh ra
ngoi bit cao nht.
Trn di phn nh tr (Mantissa Underflow): Khi
hiu chnh phn nh tr, cc s b mt bn phi
phn nh tr.
150
Php cng v php tr
Kim tra cc s hng c bng 0 hay khng
Nu c th gn kt qu da trn s cn li.
Hiu chnh phn nh tr
Sao cho 2 s c phn m ging nhau: tng s m nh v dch phi
phn nh tr tng ng (dch phi hn ch sai s nu c).
VD: 1.01 * 2
3
+ 1.11 = 1.01 * 2
3
+ 0.00111 * 2
3

Cng hoc tr phn nh tr
Nu trn th dch phi v tng s m, nu b trn s m th bo li
trn s.
Chun ha kt qu
Dch tri phn nh tr bit tri nht (bit MSB) khc 0.
Tng ng vi vic gim s m nn c th dn n hin tng trn
di s m.
151
Ni dung chng 2

2.1. Cc h m c bn
2.2. M ha v lu tr d liu trong my tnh
2.3. Biu din s nguyn
2.4. Cc php ton s hc vi s nguyn
2.5. Biu din s thc
2.6. Biu din k t
152
Biu din k t trong my tnh

1. B m ASCII (American Standard Code for
Information Interchange)
2. B m Unicode
153
1. B m ASCII
Do ANSI (American National Standard Institute)
thit k
L b m 8 bit m ha c cho 2
8
= 256 k t,
c m t 00
16
FF
16
, bao gm:
128 k t chun c m t 00
16
7F
16
128 k t m rng c m t 80
16
FF
16
154
HEXA 0 1 2 3 4 5 6 7
0 <NUL>
0
<DLE>
16
<space>
32
0
48
@
64
P
80
`
96
p
112
1 <SOH>
1
<DC1>
17
!
33
1
49
A
65
Q
81
a
97
q
113
2 <STX>
2
<DC2>
18
"
34
2
50
B
66
R
82
b
98
r
114
3 <ETX>
3
<DC3>
19
#
35
3
51
C
67
S
83
c
99
s
115
4 <EOT>
4
<DC4>
20
$
36
4
52
D
68
T
84
d
100
t
116
5 <ENQ>
5
<NAK>
21
%
37
5
53
E
69
U
85
e
101
u
117
6 <ACK>
6
<SYN>
22
&
38
6
54
F
70
V
86
f
102
v
118
7 <BEL>
7
<ETB>
23
'
39
7
55
G
71
W
87
g
103
w
119
8 <BS>
8
<CAN>
24
(
40
8
56
H
72
X
88
h
104
x
120
9 <HT>
9
<EM>
25
)
41
9
57
I
73
Y
89
i
105
y
121
A <LF>
10
<SUB>
26
*
42
:
58
J
74
Z
90
j
106
z
122
B <VT>
11
<ESC>
27
+
43
;
59
K
75
[
91
k
107
{
123
C <FF>
12
<FS>
28
,
44
<
60
L
76
\
92
l
108
|
124
D <CR>
13
<GS>
29
-
45
=
61
M
77
]
93
m
109
}
125
E <SO>
14
<RS>
30
.
46
>
62
N
78
^
94
n
110
~
126
F <SI>
15
<US>
31
/
47
?
63
O
79
-
95
o
111
<DEL>
127
155
a. Cc k t chun
95 k t hin th c: c m t 20
16
7E
16
26 ch ci hoa Latin 'A' 'Z' c m t 41
16
5A
16
26 ch ci thng Latin 'a' 'z' c m t 61
16
7A
16
10 ch s thp phn '0' '9' c m t 30
16
39
16
Cc du cu: . , ? ! : ;
Cc du php ton: + - * /
Mt s k t thng dng: #, $, &, @, ...
Du cch (m l 20
16
)
33 m iu khin: m t 00
16
1F
16
v 7F
16
dng
m ha cho cc chc nng iu khin
156
iu khin nh dng
BS Backspace - Li li mt v tr: K t iu khin con tr li li mt v tr.
HT Horizontal Tab - Tab ngang: K t iu khin con tr dch tip mt khong
nh trc.
LF Line Feed - Xung mt dng: K t iu khin con tr chuyn xung dng
di.
VT Vertical Tab - Tab ng: K t iu khin con tr chuyn qua mt s dng
nh trc.
FF Form Feed - y sang u trang: K t iu khin con tr di chuyn xung
u trang tip theo.
CR Carriage Return - V u dng: K t iu khin con tr di chuyn v u
dng hin hnh.

157
iu khin truyn s liu
SOH Start of Heading - Bt u tiu : K t nh du bt u phn thng tin tiu
.
STX Start of Text - Bt u vn bn: K t nh du bt u khi d liu vn bn
v cng chnh l kt thc phn thng tin tiu .
ETX End of Text - Kt thc vn bn: K t nh du kt thc khi d liu vn bn
c bt u bng STX.
EOT End of Transmission - Kt thc truyn: Ch ra cho bn thu bit kt thc
truyn.
ENQ Enquiry - Hi: Tn hiu yu cu p ng t mt my xa.
ACK Acknowledge - Bo nhn: K t c pht ra t pha thu bo cho pha pht
bit rng d liu c nhn thnh cng.
NAK Negative Aknowledge - Bo ph nhn: K t c pht ra t pha thu bo cho
pha pht bit rng vic nhn d liu khng thnh cng.
SYN Synchronous / Idle - ng b ha: c s dng bi h thng truyn ng b
ng b ho qu trnh truyn d liu.
ETB End of Transmission Block - Kt thc khi truyn: Ch ra kt thc khi d
liu c truyn.

158
iu khin phn cch thng tin
FS File Separator - K hiu phn cch tp tin: nh du ranh gii gia cc tp tin.
GS Group Separator - K hiu phn cch nhm: nh du ranh gii gia cc
nhm tin (tp hp cc bn ghi).
RS Record Separator - K hiu phn cch bn ghi: nh du ranh gii gia cc
bn ghi.
US Unit Separator - K hiu phn cch n v: nh du ranh gii gia cc phn
ca bn ghi.

159
Cc k t iu khin khc
NUL Null - K t rng: c s dng in khong trng khi khng c d liu.
BEL Bell - Chung: c s dng pht ra ting bp khi cn gi s ch ca con ngi.
SO Shift Out - Dch ra: Ch ra rng cc m tip theo s nm ngoi tp k t chun cho
n khi gp k t SI.
SI Shift In - Dch vo: Ch ra rng cc m tip theo s nm trong tp k t chun.
DLE Data Link Escape - Thot lin kt d liu: K t s thay i ngha ca mt hoc
nhiu k t lin tip sau .
DC1
DC4
Device Control - iu khin thit b : Cc k t dng iu khin cc thit b
ph tr.
CAN Cancel - Hy b: Ch ra rng mt s k t nm trc n cn phi b qua.
EM End of Medium - Kt thc phng tin: Ch ra k t ngay trc n l k t cui
cng c tc dng vi phng tin vt l.
SUB Substitute - Thay th: c thay th cho k t no c xc nh l b li.
ESC Escape - Thot: K t c dng cung cp cc m m rng bng cch kt hp
vi k t sau .
DEL Delete - Xa: Dng xa cc k t khng mong mun.

160
b. Cc k t m rng
c nh ngha bi:
Nh ch to my tnh
Ngi pht trin phn mm
V d:
B m k t m rng ca IBM: c dng trn my tnh
IBM-PC.
B m k t m rng ca Apple: c dng trn my
tnh Macintosh.
Cc nh pht trin phn mm ting Vit cng thay i
phn ny m ho cho cc k t ring ca ch Vit, v
d nh b m TCVN 5712.
161
2. B m Unicode
Do cc hng my tnh hng u thit k
L b m 16-bit
c thit k cho a ngn ng, trong c ting
Vit
162
Bi tp 1
Gi s c cc bin nh di y cha cc s
nguyn c du 8-bit vi ni dung biu din theo h
16 nh sau:
P = 3A Q = 7C R = DE S = FF
Hy xc nh gi tr ca cc bin nh di dng
s thp phn.
163
Bi tp 2
Gi s c X thuc kiu s nguyn c du 16-bit, n
c gn gi tr di dng thp phn bng -1234.
Hy cho bit ni dung ca cc byte nh cha bin
di dng Hexa, bit rng b nh lu tr theo
kiu u nh (little-endian).
164
Bi tp 3
Gi s c bin P cha s nguyn c du 16 bit.
Ni dung ca bin P c cho trong b nh nh
sau:





Hy xc nh gi tr ca bin P di dng thp
phn.
9D
(16)
80
(16)
a ch
tng dn
(Little-endian)
165
Bi tp 4
Gi s c mt bin s thc X c biu din bng s du
chm ng theo chun IEEE 754 dng 32 bit, n chim 4
byte trong b nh vi ni dung c ch ra hnh v sau.






Bit rng b nh t chc theo kiu u nh (little-endian),
hy xc nh gi tr thp phn ca s thc .
00
(16)
80
(16)
a ch
tng dn
D9
(16)
C3
(16)
166
Bi tp 5
Gi s c bin X thuc kiu s du chm ng
theo chun IEEE 754 dng 32 bit. N c gn gi
tr di dng thp phn bng -124.125 v lu tr
vo b nh bt u t byte nh c a ch l 200.
Hy cho bit ni dung ca cc byte nh cha bin
di dng Hexa, bit rng b nh lu tr theo
kiu u nh (little-endian).
167
Kin trc my tnh


Chng 3
H THNG MY TNH


168
Ni dung chng 3

3.1. Cu trc v hot ng c bn ca my tnh
3.2. B x l trung tm
3.3. B nh my tnh
3.4. H thng vo ra
3.5. Gii thiu h iu hnh
169
Cu trc v hot ng c bn ca my tnh
Cu trc c bn ca my tnh
Lin kt h thng
Hot ng c bn ca my tnh
Cu trc mt my tnh c nhn in hnh
170
3.1.1 Cu trc c bn ca my tnh
B x l trung tm (Central Processing Unit)
B nh (Memory)
H thng vo-ra (Input-Output System)
Lin kt h thng (System Interconnection)
171
B x l trung tm (CPU)
Chc nng:
iu khin hot ng ca ton b h thng my tnh
X l d liu
Nguyn tc hot ng c bn: CPU hot ng theo
chng trnh nm trong b nh chnh, bng cch:
Nhn ln lt tng lnh t b nh chnh,
Sau tin hnh gii m lnh v pht cc tn hiu iu
khin thc thi lnh.
Trong qu trnh thc thi lnh, CPU c th trao i d liu
vi b nh chnh hay h thng vo-ra.
172
Cu trc c bn ca CPU
n v iu khin
(CU)
n v s hc v logic
(ALU)
Tp cc thanh ghi
(RF)
n v ni ghp bus (BIU)
Bus bn trong
Bus bn ngoi
173
Cc thnh phn c bn ca CPU
n v iu khin (Control Unit - CU): iu khin hot
ng ca my tnh theo chng trnh nh sn.
n v s hc v logic (Arithmetic and Logic Unit - ALU):
thc hin cc php ton s hc v cc php ton logic trn
cc d liu c th.
Tp thanh ghi (Register File - RF): lu gi cc thng tin
tm thi phc v cho hot ng ca CPU.
Bus bn trong (Internal Bus): kt ni cc thnh phn bn
trong CPU vi nhau.
n v ni ghp bus (Bus Interface Unit - BIU) kt ni v
trao i thng tin vi nhau gia bus bn trong (internal bus)
vi bus bn ngoi (external bus).
174
Tc ca b x l
Tc ca b x l:
S lnh c thc hin trong 1 giy
MIPS (Millions of Instructions per Second)
Kh nh gi chnh xc
Tn s xung nhp ca b x l:
B x l hot ng theo mt xung nhp (Clock) c tn s
xc nh
Tc ca b x l c nh gi gin tip thng qua
tn s ca xung nhp
175
Tc ca b x l (tip)
Dng xung nhp:


T
0
: chu k xung nhp
Mi thao tc ca b x l mt mt s nguyn ln chu k T
0

T
0
cng nh th b x l chy cng nhanh
Tn s xung nhp: f
0
=1/T
0
gi l tn s lm vic ca CPU
VD: My tnh dng b x l Pentium IV 2GHz
Ta c: f
0
= 2GHz = 2 x 10
9
Hz
T
0
= 1/f
0
= 1 / (2 x 10
9
) = 0,5 ns
T
0
176
B nh my tnh
Chc nng: lu tr chng trnh v d liu
Cc thao tc c bn vi b nh:
Thao tc c (Read)
Thao tc ghi (Write)
Cc thnh phn chnh:
B nh trong (Internal Memory)
B nh ngoi (External Memory)
177
Cc thnh phn b nh my tnh
CPU
B nh
trong
B nh
ngoi
178
B nh trong
Chc nng v c im:
Cha cc thng tin m CPU c th trao i trc tip
Tc rt nhanh
Dung lng khng ln
S dng b nh bn dn: ROM v RAM
Cc loi b nh trong:
B nh chnh
B nh cache (b nh m nhanh)
179
B nh chnh (Main Memory)
L thnh phn nh tn ti trn mi h
thng my tnh
Cha cc chng trnh v d liu ang
c CPU s dng
T chc thnh cc ngn nh c nh
a ch
Ngn nh thng c t chc theo Byte
Ni dung ca ngn nh c th thay i,
song a ch vt l ca ngn nh lun c
nh
Thng thng, b nh chnh bao gm 2
phn:
B nh RAM
B nh ROM

00101011
11010101
00001010
01011000
11111011
00001000
11101010
00000000
10011101
00101010
11101011
00000010
00101011
00101011
11111111
10101010
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Ni dung a ch
180
B nh m nhanh (Cache memory)
L thnh phn nh tc nhanh c t m
gia CPU v b nh chnh nhm tng tc truy
cp b nh ca CPU.
Tc ca cache nhanh hn b nh chnh nhng
dung lng nh hn.
Cache thng c chia ra thnh mt s mc:
cache L1, cache L2, ...
Hin nay cache c tch hp trn cc chip vi x
l.
Cache c th c hoc khng.
181
B nh ngoi
Chc nng v c im:
Lu gi ti nguyn phn mm ca my tnh, bao gm:
h iu hnh, cc chng trnh v cc d liu
B nh ngoi c kt ni vi h thng di dng cc
thit b vo-ra
Dung lng ln
Tc chm
Cc loi b nh ngoi:
B nh t: a cng, a mm
B nh quang: a CD, DVD
B nh bn dn: Flash disk, memory card
182
H thng vo-ra (Input-Output)
Chc nng: Trao i thng tin gia my tnh vi
th gii bn ngoi.
Cc thao tc c bn:
Vo d liu (Input)
Ra d liu (Output)
Cc thnh phn chnh:
Cc thit b ngoi vi (Peripheral Devices)
Cc m-un ni ghp vo-ra (IO Modules)
183
Cu trc c bn ca h thng vo-ra

M-un
vo-ra
Cng
vo-
ra
Cng
vo-
ra
Thit b
ngoi vi
Thit b
ngoi vi
Cng
vo-
ra
Thit b
ngoi vi
ni ghp
vi CPU
v
b nh
chnh
184
Cc thit b ngoi vi
Chc nng: chuyn i d liu gia bn trong v
bn ngoi my tnh
Cc loi thit b ngoi vi c bn:
Thit b vo: bn phm, chut, my qut ...
Thit b ra: mn hnh, my in ...
Thit b nh: cc a ...
Thit b truyn thng: modem ...
185
M-un vo-ra
Chc nng: ni ghp thit b ngoi vi vi my tnh
Khi nim cng vo-ra:
Trong mi m-un vo-ra c mt hoc mt vi cng vo-
ra (I/O Port).
Mi cng vo-ra cng c nh mt a ch xc nh.
Thit b ngoi vi c kt ni v trao i d liu vi bn
trong my tnh thng qua cc cng vo-ra.
186
Lin kt h thng

Lung thng tin trong my tnh
Cu trc bus c bn
Phn cp bus trong my tnh
187
Lung thng tin trong my tnh
Cc m-un trong my tnh:
CPU
M-un nh
M-un vo-ra
cn c kt ni vi nhau
188
Kt ni m-un nh
Module nh
a ch
D liu
T/h /khin c
T/h /khin ghi
D liu hoc lnh
189
Kt ni m-un vo-ra

Module
vo-ra
a ch
DL t bn trong MT
T/h /khin c
T/h /khin ghi
DL n TBNV
DL t TBNV DL n bn trong MT
Cc t/h /khin ngt
190
Kt ni CPU
CPU
Lnh
D liu
a ch
Cc t/h /khin ngt
D liu
Cc t/h /khin
b nh v vo-ra
191
Nhn xt
C 4 loi thng tin:
a ch
D liu
Lnh
Thng tin iu khin
192
Cu trc bus c bn
Khi nim chung v bus:
Bus: tp hp cc ng kt ni dng vn chuyn
thng tin gia cc thnh phn ca my tnh vi nhau.
rng bus: l s ng dy ca bus c th truyn
thng tin ng thi. Tnh bng bit.
Phn loi cu trc bus:
Cu trc n bus
Cu trc a bus
193
Bus ng b v bus khng ng b
Bus ng b:
C ng tn hiu Clock
Cc s kin xy ra trn bus c xc nh bi xung nhp
Clock.
Bus khng ng b:
Khng c ng tn hiu Clock
Mt s kin trn bus kt thc s kch hot s kin tip
theo.
194
Cu trc n bus
CPU Mun nh
Mun
vo-ra
N bit
M bit
Bus a ch
Bus d liu
Bus iu khin
Mun nh
Mun
vo-ra
... ...
195
Bus a ch (Address bus)
Chc nng: vn chuyn a ch t CPU n m-
un nh hay m-un vo-ra xc nh ngn nh
hay cng vo-ra m CPU cn trao i thng tin.
rng bus a ch: xc nh dung lng b nh
cc i ca h thng.
Nu rng bus a ch l N bit (gm N ng dy
A
N-1
, A
N-2
, ... , A
2
, A
1
, A
0
) th:
c kh nng vn chuyn c N bit a ch ng thi
c kh nng nh a ch ti a c 2
N
ngn nh =
2
N
Byte gi l khng gian a ch b nh.
196
V d
rng bus a ch ca mt s b x l ca Intel
8088/8086 : N = 20 bit KGCBN = 2
20
Byte = 1 MB
80286 : N = 24 bit KGCBN = 2
24
Byte = 16 MB
80386, 80486, Pentium : N = 32 bit KGCBN = 2
32

Byte = 4 GB
Pentium II, III, 4 : N = 36 bit KGCBN = 2
36
Byte = 64
GB
197
Bus d liu (Data bus)
Chc nng:
Vn chuyn lnh t b nh n CPU
Vn chuyn d liu gia CPU, cc m-un nh v m-
un vo-ra vi nhau
rng bus d liu: Xc nh s bit d liu c th
c trao i ng thi.
Nu rng bus d liu l M bit (gm M ng dy
D
M-1
, D
M-2
, ... , D
2
, D
1
, D
0
) th ngha l ng bus d liu
c th vn chuyn ng thi c M bit d liu
M thng l 8, 16, 32, 64 bit
198
V d
rng bus d liu ca mt s b x l ca Intel:
8088 : M = 8 bit
8086, 80286 : M = 16 bit
80386, 80486 : M = 32 bit
Cc b x l Pentium : M = 64 bit
199
Bus iu khin (Control bus)
Chc nng: vn chuyn cc tn hiu iu khin
Cc loi tn hiu iu khin:
Cc tn hiu iu khin pht ra t CPU iu khin m-
un nh hay m-un vo-ra
Cc tn hiu yu cu t m-un nh hay m-un vo-ra
gi n CPU
200
V d
Cc tn hiu pht ra t CPU iu khin c/ghi:
Memory Read (MEMR): iu khin c d liu t mt
ngn nh c a ch xc nh ln bus d liu.
Memory Write (MEMW): iu khin ghi d liu c sn
trn bus d liu n mt ngn nh c a ch xc nh.
I/O Read (IOR): iu khin c d liu t mt cng vo-
ra c a ch xc nh ln bus d liu.
I/O Write (IOW): iu khin ghi d liu c sn trn bus
d liu ra mt cng c a ch xc nh.
201
V d (tip)
Cc tn hiu iu khin ngt:
Interrupt Request (INTR): Tn hiu t b iu khin vo-
ra gi n yu cu ngt CPU trao i vo-ra. Tn hiu
INTR c th b che.
Interrupt Acknowledge (INTA): Tn hiu pht ra t CPU
bo cho b iu khin vo-ra bit CPU chp nhn ngt.
Non Maskable Interrupt (NMI): tn hiu ngt khng che
c gi n ngt CPU.
Reset: Tn hiu t bn ngoi gi n CPU v cc thnh
phn khc khi ng li my tnh.
202
V d (tip)
Cc tn hiu iu khin bus:
Bus Request (BRQ) / Hold: Tn hiu t b iu khin
vo-ra chuyn dng gi n yu cu CPU chuyn
nhng quyn s dng bus.
Bus Grant (BGT) / Hold Acknowledge: Tn hiu pht ra t
CPU chp nhn chuyn nhng quyn s dng bus.
Lock: Tn hiu kha khng cho xin chuyn nhng bus.
Unlock: Tn hiu m kha cho xin chuyn nhng bus.
203
c im ca cu trc n bus
Tt c cc thnh phn cng ni vo mt ng
bus chung
Ti mt thi im, bus ch phc v c mt yu
cu trao i d liu
Bus phi c tc bng tc ca thnh phn
nhanh nht trong h thng
Bus ph thuc vo cu trc bus ca b x l cc
m-un nh v cc m-un vo-ra cng ph thuc
vo b x l c th.
Cn phi thit k bus phn cp hay cu trc a
bus
204
Phn cp bus trong my tnh
Phn cp thnh nhiu bus khc nhau cho cc thnh
phn:
Bus ca b x l
Bus ca b nh chnh
Cc bus vo-ra
Phn cp bus khc nhau v tc
Cc bus ni ghp vi m-un nh v m-un vo-ra
khng ph thuc vo b x l c th.
205
Cc bus in hnh trong my PC
Bus ca b x l (Front Side Bus FSB): c tc nhanh
nht
Bus ca b nh chnh (ni ghp vi cc m-un nh RAM)
AGP bus (Accelerated Graphic Port) cng tng tc
ha: ni ghp vi card mn hnh
PCI bus (Peripheral Component Interconnect): ni ghp vi
cc TBNV c tc trao i d liu nhanh.
USB (Universal Serial Bus): bus ni tip a nng
IDE (Integrated Drive Electronics): bus kt ni vi a
cng hoc a quang (CD, DVD, )
206
VD 1: H thng Pentium III
207
VD 2: Pentium 4 dng chipset 865PE
B chipset Intel 865PE gm c hai con chip
82865PE (MCH) v 82801ER (ICH5-R):
Chip Intel 82865PE MCH h tr CPU Pentium 4 s dng
cng ngh siu phn lung (Hyper Threading HT), b
nh DDR400, mode Dual Channel (ring chip 82865G
(MCH) ca b chipset i865G th tch hp c nhn x l
ha Intel Extreme Graphics 2).
Chip Intel 82801ER (ICH5-R) tch hp cc b iu
khin (controller) cc thit b I/O nh Ultra ATA 100,
Serial ATA- RAID-0, USB 2.0, m thanh AC'97 c 6
knh, LAN, EHCI, ASF, ...
208
VD 2 (tip)
209
3.1.2. Hot ng c bn ca my tnh
Thc hin chng trnh
X l ngt
Hot ng vo ra

210
Thc hin chng trnh
Nguyn tc hot ng:
Chng trnh ang c thc hin phi nm trong b
nh chnh ca my tnh.
Thc hin chng trnh l lp i lp li chu trnh lnh
gm hai bc:
Nhn lnh
Thc thi lnh
Thc hin chng trnh b dng nu b li nghim trng
khi thc thi lnh hoc gp lnh dng chng trnh
211
Chu trnh lnh
Bt u
Nhn lnh
Thc thi
lnh
Dng
212
Nhn lnh
Bt u mi chu trnh lnh, CPU s nhn lnh t
b nh chnh a vo bn trong CPU.
Bn trong CPU c 2 thanh ghi lin quan trc tip
n qu trnh nhn lnh:
Thanh ghi b m chng trnh (Program Counter - PC):
cha a ch ca lnh s c nhn vo.
Thanh ghi lnh (Instruction Register - IR): lnh c
nhn t b nh chnh s c np vo IR.
213
Nhn lnh (tip)
Hot ng nhn lnh din ra nh sau:
CPU pht a ch ca lnh cn nhn t PC n b nh
chnh
CPU pht tn hiu iu khin c b nh chnh (MEMR -
Memory Read)
Lnh t b nh chnh c chuyn vo IR
Ni dung ca PC t ng tng tr sang lnh k tip
nm ngay sau lnh va c nhn.
214
Minh ha qu trnh nhn lnh
302
PC
IR
CPU
Lnh
Lnh
Lnh i
Lnh i+1
Lnh
Lnh
B nh chnh
303
PC
Lnh i
IR
CPU
Lnh
Lnh
Lnh i
Lnh i+1
Lnh
Lnh
B nh chnh
Trc khi nhn lnh i Sau khi nhn lnh i
300
301
302
303
304
305
300
301
302
303
304
305
215
Thc thi lnh
Lnh nm IR s c chuyn sang n v iu
khin (Control Unit). n v iu khin s tin hnh
gii m lnh v pht cc tn hiu iu khin thc thi
thao tc m lnh yu cu.
Cc kiu thao tc ca lnh:
Trao i d liu gia CPU v b nh chnh
Trao i d liu gia CPU v m-un vo-ra
X l d liu: thc hin cc php ton s hc hoc php
ton logic vi cc d liu
iu khin r nhnh
Kt hp cc thao tc trn
216
Hot ng ngt
Khi nim chung v ngt (Interrupt): Ngt l c ch
cho php CPU tm dng chng trnh ang thc
hin chuyn sang thc hin mt chng trnh
khc, gi l chng trnh con phc v ngt.
Cc loi ngt:
Ngt do li khi thc hin chng trnh, v d: trn s,
chia cho 0
Ngt do li phn cng, v d: li b nh RAM
Ngt do tn hiu yu cu t m-un vo-ra gi n CPU
yu cu trao i d liu
217
Chu trnh x l ngt
c thm vo cui chu trnh lnh
Sau khi hon thnh mt lnh, CPU kim tra xem c
yu cu ngt gi n hay khng
Nu khng c tn hiu yu cu ngt th CPU nhn lnh
k tip
Nu c yu cu ngt v ngt c chp nhn th:
CPU ct ng cnh hin ti ca chng trnh ang thc hin (cc
thng tin lin quan n chng trnh b ngt)
CPU chuyn sang thc hin chng trnh con phc v ngt
tng ng
Kt thc chng trnh con , CPU khi phc li ng cnh v tr
v tip tc thc hin chng trnh ang tm dng
218
Hot ng ngt (tip)

Bt u
Nhn lnh
Thc hin
lnh
Dng
N
Kim tra
c ngt hay
khng ?
Chuyn n
chung trnh
iu khin ngt
Y
219
Hot ng ngt (tip)

1
2
i
i+1
M
Chng trnh
ang thc hin
Ngt y
Lnh
Lnh
RETURN
CTC phc v ngt
220
X l vi nhiu tn hiu yu cu ngt
X l ngt tun t:
Khi mt ngt ang c thc hin, cc ngt khc s b
cm
B x l s b qua cc ngt tip theo trong khi ang x
l mt ngt
Cc ngt vn ang i v c kim tra sau khi ngt
u tin c x l xong
Cc ngt c thc hin tun t
221
X l ngt tun t (tip)
222
X l vi nhiu tn hiu yu cu ngt
X l ngt u tin:
Cc ngt c nh ngha mc u tin khc nhau
Ngt c mc u tin thp hn c th b ngt bi ngt u
tin cao hn ngt xy ra lng nhau
223
X l ngt u tin
224
Hot ng vo-ra
L hot ng trao i d liu gia thit b ngoi vi
vi bn trong my tnh.
Cc kiu hot ng vo-ra:
CPU trao i d liu vi m-un vo-ra
M-un vo-ra trao i d liu trc tip vi b nh chnh
225
3.1.3. Cu trc ca MTCN in hnh

S khi
Cc linh kin trn bn mch chnh
Cc thit b ngoi vi c bn
226
S khi
227
S khi (tip)
Hp my tnh (Case):
Bn mch chnh (Mainboard):
B vi x l
B nh h thng: chip nh ROM v cc module nh RAM
Cc vi mch iu khin tng hp (chipset)
Cc khe cm m rng
Cc knh truyn tn hiu (bus)
Cc loi a: a cng, a mm, a quang, ...
Cc cng vo-ra
B ngun v qut
Cc thit b ngoi vi (Peripheral Devices):
Mn hnh (monitor), bn phm (keyboard), chut (mouse), loa
(speaker), my in (printer), my qut nh (scanner), modem, ...
228
Hp my tnh (Case)
229
Cc loi a
230
Cc cng vo-ra
231
B ngun v qut
232
Cc linh kin trn bn mch chnh
233
B vi x l
234
B nh h thng
235
Cc khe cm m rng
236
Cc thit b ngoi vi c bn
237
Cc thit b ngoi vi (tip)
238
Cc thit b ngoi vi (tip)
239
Cc thit b ngoi vi (tip)
240
Chng 3


Cn tip !
241
3.2. B x l trung tm

3.2.1. Cu trc c bn ca CPU
3.2.2. Tp lnh
3.2.3. Hot ng ca CPU
242
3.2.1. Cu trc c bn ca CPU
n v
iu khin
(CU)
n v
s hc v
logic
(ALU)
Tp cc
thanh ghi
(RF)
n v ni ghp bus (BIU)
bus d liu
bus bn trong
bus a ch bus iu khin
243
1. n v iu khin (CU)
Chc nng:
iu khin nhn lnh t b nh a vo thanh ghi lnh
v tng ni dung ca PC tr sang lnh k tip.
Gii m lnh nm trong thanh ghi lnh xc nh thao
tc cn thc hin v pht ra tn hiu iu khin thc hin
lnh .
Nhn tn hiu yu cu t bus h thng v p ng vi
cc yu cu .
244
n v iu khin (tip)
M hnh kt ni ca n v iu khin:
n v
iu khin
Thanh ghi lnh
Bus iu khin
Tn hiu
iu khin
bn trong CPU
Cc c
Clock
Tn hiu iu khin
n bus h thng
Tn hiu yu cu
t bus h thng
245
n v iu khin (tip)
Cc tn hiu a n n v iu khin:
M lnh t thanh ghi lnh a n gii m
Cc c t thanh ghi c cho bit trng thi ca CPU
Xung clock t b to xung bn ngoi cung cp cho n
v iu khin lm vic
Cc tn hiu yu cu t bus iu khin
246
n v iu khin (tip)
Cc tn hiu pht ra t n v iu khin:
Cc tn hiu iu khin bn trong CPU:
iu khin cc thanh ghi
iu khin hot ng ca ALU
Cc tn hiu iu khin bn ngoi CPU:
iu khin b nh chnh
iu khin cc module vo-ra
247
2. n v s hc v logic (ALU)
Chc nng: Thc hin cc php ton s hc v
cc php ton logic.
S hc: cng, tr, nhn, chia, tng, gim, o du,
Logic: AND, OR, XOR, NOT, cc php dch v quay bit
248
n v s hc v logic (tip)
M hnh kt ni ca ALU:
n v
s hc v logic
(ALU)
D liu vo t
cc thanh ghi
Cc tn hiu
t n v
iu khin
Thanh ghi c
D liu ra n
cc thanh ghi
249
3. Tp thanh ghi (RF)

a. Chc nng v phn loi
b. Mt s thanh ghi in hnh
250
a. Chc nng v phn loi
Chc nng:
L tp hp cc thanh ghi nm trong CPU
Cha cc thng tin tm thi phc v cho hot ng hin
ti ca CPU.
251
Phn loi tp thanh ghi
Phn loi theo kh nng can thip ca ngi lp trnh:
Cc thanh ghi khng lp trnh c: ngi lp trnh khng can thip
c
Cc thanh ghi lp trnh c: ngi lp trnh can thip c
Phn loi theo chc nng:
Thanh ghi a ch: qun l a ch ca ngn nh hay cng vo-ra
Thanh ghi d liu: cha cc d liu tm thi hoc kt qu trung gian
phc v cho vic x l d liu ca CPU
Thanh ghi iu khin v trng thi: cha cc thng tin iu khin v
trng thi ca CPU
Thanh ghi lnh: cha lnh ang c thc hin
Thanh ghi a nng: c th cha a ch hoc d liu
252
b. Mt s thanh ghi in hnh
Cc thanh ghi a ch
B m chng trnh (Program Counter PC)
Con tr d liu (Data Pointer DP)
Con tr ngn xp (Stack Pointer SP)
Thanh ghi c s v thanh ghi ch s (Base Register &
Index Register)
Cc thanh ghi d liu
Thanh ghi trng thi
253
Cc vng nh c bn ca CT
Chng trnh ang thc hin phi nm trong b
nh chnh v n chim 3 vng nh c bn sau:
Vng nh lnh (Code): cha cc lnh ca chng trnh.
Vng d liu (Data): cha d liu ca chng trnh.
Thc cht y l ni cp pht cc ngn nh cho cc
bin nh.
Vng ngn xp (Stack): l vng nh c cu trc LIFO
(Last In First Out) dng ct gi thng tin v sau c
th khi phc li. Thng dng cho vic thc hin cc
chng trnh con.
254
B m chng trnh (PC)
Cn gi l con tr lnh (Instruction Pointer - IP)
L thanh ghi cha a ch ca lnh tip theo s
c nhn vo.
Sau khi mt lnh c nhn vo th ni dung ca
PC t ng tng tr sang lnh k tip nm ngay
sau lnh va c nhn.
255
Minh ha hot ng ca PC
PC Lnh s c nhn vo
Lnh
Lnh
Lnh k tip
Lnh
Lnh
Vng nh lnh (Code)
256
Thanh ghi con tr d liu (DP)
Cha a ch ca ngn nh d liu m CPU mun
truy cp.
Thng c mt s thanh ghi con tr d liu.
257
Minh ha hot ng ca DP
DP D liu cn c/ghi
D liu
D liu
D liu
D liu
D liu
Vng d liu (Data)
258
Con tr ngn xp (SP)
Cha a ch ca ngn nh nh ngn xp (ngn
xp c chiu t y ln nh ngc vi chiu tng
ca a ch)
Khi ct thm mt thng tin vo ngn xp:
Ni dung ca SP t ng gim
Thng tin c ct vo bt u t ngn nh tr bi SP
Khi ly mt thng tin ra khi ngn xp:
Thng tin c ly ra bt u t ngn nh tr bi SP
Ni dung ca SP t ng tng
Khi ngn xp rng: SP tr vo y ngn xp
259
Minh ha hot ng ca SP
SP nh Stack mi
nh Stack c
y Stack
Ngn xp (Stack)
SP nh Stack c
nh Stack mi
y Stack
Ngn xp (Stack)
Khi ly 1 thng tin ra khi ngn xp, SP t ng tng Khi ct 1 thng tin vo ngn xp, SP t ng gim

a

c
h

n
g

d

a

c
h

n
g

d

n
260
Thanh ghi c s v thanh ghi ch s
Thanh ghi c s: cha a ch ca ngn nh c s
(a ch c s).
Thanh ghi ch s: cha lch a ch gia ngn
nh m CPU cn truy cp so vi ngn nh c s
(ch s).
a ch ca ngn nh cn truy cp = a ch c s
+ ch s
261
Minh ha thanh ghi c s v ch s
Ngn nh cn truy cp
Ngn nh c s Thanh ghi c s
Thanh ghi ch s
B nh chnh
262
Cc thanh ghi d liu
Cha cc d liu tm thi hoc cc kt qu trung
gian phc v cho vic x l d liu ca CPU
Cn c nhiu thanh ghi d liu
Cc thanh ghi s nguyn: 8, 16, 32, 64 bit
Cc thanh ghi s du chm ng
263
Thanh ghi trng thi
Cn gi l thanh ghi c (Flag Register)
Cha cc thng tin trng thi ca CPU
Cc c php ton: biu th trng thi ca kt qu php
ton
Cc c iu khin: iu khin ch lm vic ca CPU
264
V d c php ton
C Zero (ZF - c rng): c thit lp ln 1 khi kt
qu ca php ton va thc hin xong bng 0.
C Sign (SF - c du): c thit lp ln 1 khi kt
qu ca php ton va thc hin nh hn 0, hay
ni cch khc, c Sign nhn gi tr bng bit du
ca kt qu.
C Carry (CF - c nh): c thit lp ln 1 nu
php ton xy ra hin tng carry-out.
C Overflow (OF - c trn): c thit lp ln 1
nu php ton xy ra hin tng overflow.
265
V d c iu khin
C Interrupt (IF - c cho php ngt):
Nu IF = 1 th CPU trng thi cho php ngt vi tn
hiu yu cu ngt t bn ngoi gi ti.
Nu IF = 0 th CPU trng thi cm ngt vi tn hiu yu
cu ngt t bn ngoi.
266
Bi tp
Gi s c cc bin nh a, b, c, d, e, f thuc kiu s
nguyn c du 8 bit. Cc bin a, b c gn gi tr
nh sau:
a:=-58 b:=72
Hy biu din cc php tnh sau y di dng s
nh phn v cho bit kt qu dng thp phn cng
vi gi tr ca cc c ZF, SF, CF, OF tng ng.
c:=a-b d:=a+b e:=b-a f:=-a-b
267
B x l trung tm

3.2.1. Cu trc c bn ca CPU
3.2.2. Tp lnh
3.2.3. Hot ng ca CPU
268
3.2.2. Tp lnh

1. Gii thiu chung v tp lnh
2. Cc kiu thao tc in hnh
3. Cc phng php a ch ha ton hng
269
1. Gii thiu chung v tp lnh
Mi b x l c mt tp lnh xc nh (mang tnh
k tha trong cng mt dng h).
Tp lnh thng c hng chc n hng trm
lnh.
Mi lnh l mt chui s nh phn m b x l hiu
c thc hin mt thao tc xc nh.
Cc lnh c m t bng cc k hiu gi nh
cc lnh hp ng.
270
Khun dng ca mt lnh my
M thao tc (Operation Code - Opcode): m ha
cho thao tc m CPU phi thc hin.
Tham chiu ton hng: m ha cho ton hng
hoc ni cha ton hng m thao tc s tc ng.
Ton hng ngun (Source Operand): d liu vo ca thao tc (CPU
s c)
Ton hng ch (Destination Operand): d liu ra ca thao tc (CPU
s ghi)

M thao tc Tham chiu ton hng
271
S lng ton hng trong lnh
Ba ton hng:
2 ton hng ngun, 1 ton hng ch
VD: c = a + b
T lnh di v phi m ha a ch cho c 3 ton hng
Thng c s dng trn cc b x l tin tin
Hai ton hng:
1 ton hng l ton hng ngun, ton hng cn li va l
ngun va l ch.
VD: a = a + b
Gi tr c ca 1 ton hng ngun s b ghi bng KQ
Rt gn di t lnh
Thng c dng ph bin
272
S lng ton hng trong lnh (tip)
Mt ton hng:
Ch c 1 ton hng c ch ra trong lnh
Ton hng cn li c ngm nh, thng l thanh ghi (VD: thanh
cha Accumulator)
Thng c s dng trn cc b x l th h c
Khng c ton hng:
Cc ton hng u c ngm nh
S dng Stack
VD: lnh c = a + b
push a
push b
add
pop c
Khng thng dng
273
2. Cc kiu thao tc in hnh
Chuyn d liu
X l s hc vi s nguyn
X l logic
iu khin vo-ra
Chuyn iu khin (r nhnh)
iu khin h thng
274
Cc lnh chuyn d liu
MOVE
LOAD
STORE
EXCHANGE
CLEAR
SET
PUSH
POP
Copy d liu t ngun n ch
Copy d liu t b nh n b x l
Copy d liu t b x l n b nh
Tro i ni dung ca ngun v ch
Chuyn cc bit 0 vo ton hng ch
Chuyn cc bit 1 vo ton hng ch
Copy d liu t ngun n nh ngn xp
Copy d liu t nh ngn xp n ch

275
Cc lnh s hc
ADD
SUBTRACT
MULTIPLY
DIVIDE
ABSOLUTE
NEGATE
INCREMENT
DECREMENT
COMPARE
Tnh tng hai ton hng
Tnh hiu hai ton hng
Tnh tch hai ton hng
Tnh thng hai ton hng
Thay ton hng bng tr tuyt i ca n
i du ton hng (ly b 2)
Cng 1 vo ton hng
Tr ton hng i 1
So snh hai ton hng lp c

276
Cc lnh logic
AND
OR
XOR
NOT
TEST
SHIFT
ROTATE
CONVERT
Thc hin php AND hai ton hng
Thc hin php OR hai ton hng
Thc hin php XOR hai ton hng
o bit ca ton hng (ly b 1)
Thc hin php AND hai ton hng lp c
Dch tri (phi) ton hng
Quay tri (phi) ton hng
Chuyn i d liu t dng ny sang dng khc

277
VD cc lnh AND, OR, XOR, NOT
Gi s c hai thanh ghi cha d liu nh sau:
(R1) = 1010 1010
(R2) = 0000 1111
Khi ta c:
(R1) AND (R2) = 0000 1010
Php ton AND c th c dng xo mt s bit v gi nguyn
cc bit cn li ca ton hng.
(R1) OR (R2) = 1010 1111
Php ton OR c th c dng thit lp mt s bit v gi
nguyn cc bit cn li ca ton hng.
(R1) XOR (R2) = 1010 0101
Php ton XOR c th c dng o mt s bit v gi nguyn
cc bit cn li ca ton hng.
NOT (R1) = 0101 0101
Php ton NOT dng o tt c cc bit ca ton hng.
278
Cc lnh SHIFT v ROTATE
0
0
0
Dch tri logic
Dch phi logic
Dch phi s hc
Dch tri s hc
Quay tri logic
Quay phi logic
279
Cc lnh vo-ra chuyn dng

IN Copy d liu t mt cng xc nh n ch
OUT Copy d liu t ngun n mt cng xc nh
280
Cc lnh chuyn iu khin
JUMP (BRANCH)

Nhy (r nhnh) khng iu kin; np vo PC mt a
ch xc nh
JUMP CONDITIONAL

Kim tra iu kin xc nh, hoc np vo PC mt a
ch xc nh hoc khng khng lm g c
CALL

Ct ni dung PC vo ngn xp, np vo PC a ch
xc nh nhy n thc hin chng trnh con
RETURN

Khi phc ni dung PC t nh ngn xp tr v
chng trnh chnh

281
Lnh r nhnh khng iu kin
Chuyn ti thc hin lnh v tr c a ch l XXX:
PC XXX
lnh
lnh
lnh
lnh
lnh_k_tip
lnh_r_nhnh XXX
lnh
XXX
. . .
282
Lnh r nhnh c iu kin
Kim tra iu kin trong lnh:
Nu iu kin ng chuyn ti thc hin lnh v tr
c a ch XXX
PC XXX
Nu iu kin sai chuyn sang thc hin
lnh_k_tip
iu kin thng c kim tra thng qua cc c.
C nhiu lnh r nhnh c iu kin.
283
Minh ha lnh r nhnh c iu kin
lnh
lnh
lnh
lnh
lnh
lnh_k_tip
lnh_r_nhnh_k XXX
lnh
lnh
XXX
. . .
284
Lnh CALL v RETURN
Lnh gi chng trnh con: lnh CALL
Ct ni dung PC (cha a ch ca lnh_k_tip) vo
Stack
Np vo PC a ch ca lnh u tin ca chng trnh
con c gi
B x l chuyn sang thc hin chng trnh con
tng ng
Lnh tr v t chng trnh con: lnh RETURN
Ly a ch ca lnh_k_tip c ct Stack np tr li
cho PC
B x l c iu khin quay tr v thc hin tip
lnh nm sau lnh CALL
285
Minh ha lnh CALL v RETURN
lnh
lnh
lnh
lnh
lnh u tin ca CTCon
lnh_k_tip
CALL CTCon
lnh
lnh
CTCon
. . .
RETURN
. . .
286
Cc lnh iu khin h thng
HALT
WAIT


NO OPERATION (NOP)
LOCK
UNLOCK
Dng thc hin chng trnh
Dng thc hin chng trnh, lp kim tra
iu kin cho n khi tho mn th tip tc
thc hin
Khng thc hin g c
Cm khng cho xin chuyn nhng bus
Cho php xin chuyn nhng bus

287
3. Cc phng php a ch ha ton hng
Phng php a ch ha ton hng l cch thc
ch ra ni cha cc ton hng m thao tc s tc
ng.
Ton hng c th l:
Hng s cn cho bit gi tr ca hng s
Ni dung ca mt thanh ghi bn trong CPU cn cho
bit tn ca thanh ghi
Ni dung ca mt ngn nh cn cho bit a ch ngn
nh
Ni dung ca mt cng vo-ra cn cho bit a ch ca
cng vo-ra
288
Cc ch a ch thng dng
Ch a ch tc th
Ch a ch thanh ghi
Ch a ch trc tip
Ch a ch gin tip qua thanh ghi
Ch a ch dch chuyn
289
Ch a ch tc th
Immediate Addressing Mode
Ton hng l mt hng s ngay trong lnh
V d:
ADD AX, 5 ; AX AX + 5
Truy nhp ton hng rt nhanh
M thao tc Ton hng
290
Ch a ch thanh ghi
Register Addressing Mode
Ton hng l ni dung ca
mt thanh ghi m tn thanh
ghi c cho bit trong
lnh.
V d:
MOV AX, BX ; AX BX
Tc truy cp nhanh hn
so vi nhng lnh c truy cp
n b nh.
M thao tc
Ton hng
Tn thanh ghi
Tp thanh ghi
291
Ch a ch trc tip
Direct Addressing Mode
Ton hng l ni dung ca mt
ngn nh m a ch ngn nh
c cho trc tip trong lnh.
V d:
MOV AL, [1000]
; AL ni dung byte nh c
a ch l 1000
M thao tc
Ton hng
a ch
B nh chnh
292
Ch a ch gin tip qua thanh ghi
Register Indirect Addressing Mode
V d: MOV AL, [BX] ; AL ni dung ca byte
nh c a ch bng gi tr ca thanh ghi BX
M thao tc
a ch
Tn thanh ghi
Tp thanh ghi
Ton hng
B nh chnh
293
Ch a ch dch chuyn
Displacement Addressing Mode
Trng a ch cha 2 thnh phn:
Tn thanh ghi
Hng s
a ch ca ton hng = ni dung thanh ghi + hng
s
Thanh ghi c th c ngm nh

294
Minh ha ch a ch dch chuyn
M thao tc Tn thanh ghi
Tp thanh ghi
Ton hng
B nh chnh
Hng s
295
Cc dng ch a ch dch chuyn
a ch ha tng i vi PC:
Thanh ghi l PC
VD: cc lnh chuyn iu khin
nh a ch c s:
Thanh ghi l thanh ghi c s (cha a ch c s)
Hng s l ch s
nh a ch ch s:
Thanh ghi l thanh ghi ch s (cha ch s)
Hng s l a ch c s
296
3.2. B x l trung tm

3.2.1. Cu trc c bn ca CPU
3.2.2. Tp lnh
3.3.3. Hot ng ca CPU
297
3.2.3. Hot ng ca CPU

1. Chu trnh lnh
2. ng ng lnh
298
1. Chu trnh lnh
Bao gm cc cng on chnh sau y:
Nhn lnh
Gii m lnh
Nhn ton hng
Thc hin lnh
Ct ton hng
Ngt
299
Gin trng thi chu trnh lnh
Nhn lnh
Xc nh
a ch ca
lnh
Gii m
thao tc
ca lnh
Tnh a
ch ton
hng
Nhn ton
hng
Thao tc
d liu
Tnh a
ch ton
hng
Ct ton
hng
Kim tra
ngt
Ngt
C
Khng Lnh x l STRING hay VECTOR Lnh tip theo
Nhn t b
nh chnh
- T b nh
- T cng vo
- Ra b nh
- n cng ra
300
Nhn lnh
CPU a a ch ca lnh cn nhn t thanh ghi b
m chng trnh PC ra bus a ch
CPU pht tn hiu iu khin c b nh
Lnh t b nh c t ln bus d liu v c
CPU copy vo trong thanh ghi lnh IR
CPU tng ni dung ca PC tr sang lnh k tip
301
Minh ha qu trnh nhn lnh
PC
CPU
n v
iu khin
IR
B nh
Bus
a
ch
Bus
d
liu
Bus
iu
khin
PC : B m chng trnh
IR : Thanh ghi lnh
302
Gii m lnh
Lnh t thanh ghi lnh IR c a n n v
iu khin
n v iu khin tin hnh gii m lnh xc
nh thao tc cn phi thc hin
303
Nhn ton hng
CPU a a ch ca ton hng ra bus a ch
CPU pht tn hiu iu khin c
Ton hng c chuyn vo trong CPU
304
Nhn ton hng gin tip
CPU a a ch ra bus a ch
CPU pht tn hiu iu khin c
Ni dung ngn nh c chuyn vo CPU,
chnh l a ch ca ton hng
CPU pht a ch ny ra bus a ch
CPU pht tn hiu iu khin c
Ni dung ca ton hng c chuyn vo CPU
305
Minh ha nhn ton hng gin tip
MAR
CPU
n v
iu khin
MBR
B nh
Bus
a
ch
Bus
d
liu
Bus
iu
khin
MAR (Memory Address Register) :
Thanh ghi a ch b nh
MBR (Memory Buffer Register):
Thanh ghi m b nh
306
Thc hin lnh
C nhiu dng thao tc ty thuc vo lnh
C th l:
c/ghi b nh
Vo-ra d liu
Chuyn d liu gia cc thanh ghi
Thc hin php ton s hc hoc logic
Chuyn iu khin (r nhnh)

307
Ghi ton hng
CPU a a ch ra bus a ch
CPU a d liu cn ghi ra bus d liu
CPU pht tn hiu iu khin ghi
D liu trn bus d liu c copy n v tr xc
nh
308
Minh ha qu trnh ghi ton hng
MAR
CPU
n v
iu khin
MBR
B nh
Bus
a
ch
Bus
d
liu
Bus
iu
khin
MAR : Thanh ghi a ch b nh
MBR : Thanh ghi m b nh
309
Ngt
CPU lu li gi tr hin ti ca PC (l a ch tr v sau khi
hon thnh ngt) thng lu vo Stack:
CPU a ni dung ca PC ra bus d liu
CPU a a ch (thng c xc nh t con tr ngn xp SP) ra
bus a ch
CPU pht tn hiu iu khin ghi b nh
a ch tr v (ni dung ca PC) trn bus d liu c lu vo ngn
nh tng ng ngn xp
CPU np vo PC a ch lnh u tin ca chng trnh con
phc v ngt tng ng:
CPU xc nh a ch ca vector ngt tng ng
CPU pht a ch ny ra bus a ch
CPU pht tn hiu iu khin c b nh
Gi tr ca vector ngt (a ch lnh u tin ca CTC phc v ngt)
c chuyn ra bus d liu
Gi tr ny c np vo trong PC
310
2. ng ng lnh
Nguyn tc ca Pipeline: chia chu trnh lnh thnh
cc cng on v cho php thc hin gi ln nhau
theo kiu dy chuyn.
Gi s chu trnh lnh gm 6 cng on vi thi
gian thc hin nh nhau (T):
Nhn lnh (Fetch Instruction FI)
Gii m lnh (Decode Instruction DI)
Tnh /ch ton hng (Calculate Operand Address CO)
Nhn ton hng (Fetch Operands FO)
Thc hin lnh (Execute Instruction EI)
Ghi ton hng (Write Operands WO)
311
Biu thi gian ca ng ng lnh
1 2 3 4 5 6 7 8 9 10 11 12
Lnh 1 FI DI CO FO EI WO
Lnh 2 FI DI CO FO EI WO
Lnh 3 FI DI CO FO EI WO
Lnh 4 FI DI CO FO EI WO
Lnh 5 FI DI CO FO EI WO
Lnh 6 FI DI CO FO EI WO
312
Cc xung t ca ng ng lnh
Xung t cu trc: do nhiu cng on dng chung
mt ti nguyn
Xung t d liu: lnh sau s dng kt qu ca
lnh trc
Xung t iu khin: do r nhnh gy ra
313
3.3. B nh my tnh
3.3.1. Tng quan h thng nh
3.3.2. B nh bn dn
3.3.3. B nh chnh
3.3.4. B nh cache
3.3.5. B nh ngoi
3.3.6. B nh o
3.3.7. B nh trn my tnh c nhn
314
3.3.1. Tng quan h thng nh
1. Cc c trng ca h thng nh
2. Phn cp h thng nh ca my tnh
315
1. Cc c trng ca h thng nh
V tr:
Bn trong CPU: tp thanh ghi
B nh trong: b nh chnh v cache
B nh ngoi: cc thit b nh
Dung lng:
di t nh (tnh bng bit)
S lng t nh
n v truyn:
Theo tng t nh
Theo tng khi (block) nh
Phng php truy cp:
Truy cp tun t (bng t)
Truy cp trc tip (cc loi a)
Truy cp ngu nhin (b nh bn dn)
Truy cp lin kt (cache)
316
Cc c trng ca h thng nh
Hiu nng:
Thi gian truy cp
Chu k nh
Tc truyn
Kiu vt l:
B nh bn dn
B nh t
B nh quang
Cc c tnh vt l:
Kh bin (mt in th mt thng tin) / Khng kh bin
Xa c / Khng xa c
T chc
317
2. Phn cp h thng nh ca MT
B vi x l
CPU
B
nh
Cache
L1
Tp
thanh
ghi
B nh
chnh
B nh
ngoi
B nh
Cache
L2
B nh
mng
Dung lng |, tc +, tn sut CPU truy cp +, gi thnh / bit thng tin +,
318
H thng nh ca my tnh (tip)
Tp thanh ghi (Registers):
L thnh phn nh nm trong CPU, c coi l mc nh u tin
Cha cc thng tin phc v cho hot ng thi im hin ti ca
CPU
B nh m nhanh (Cache):
B nh c tc nhanh c t gia CPU v b nh chnh nhm
tng tc truy cp b nh ca CPU.
Thng c chia thnh mt vi mc (L1, L2)
B nh chnh (Main Memory):
Cha cc chng trnh v d liu ang c s dng.
B nh ngoi (External Memory):
Cha cc ti nguyn phn mm ca my tnh.
319
3.3. B nh my tnh
3.3.1. Tng quan h thng nh
3.3.2. B nh bn dn
3.3.3. B nh chnh
3.3.4. B nh cache
3.3.5. B nh ngoi
3.3.6. B nh o
3.3.7. B nh trn my tnh c nhn
320
3.3.2. B nh bn dn

1. Phn loi
2. M hnh c bn ca chip nh

321
1. Phn loi
Gm 2 loi chnh: ROM v RAM
ROM (Read Only Memory): b nh ch c
c im:
B nh ch yu dng c thng tin
B nh khng kh bin
Cha cc chng trnh v d liu c nh vi h thng
322
ROM (tip)
Cc loi b nh ROM:
Maskable ROM (ROM mt n): thng tin c ghi khi ch to
PROM (Programmable ROM):
Khi ch to cha c thng tin
Cho php ghi thng tin c 1 ln bng thit b chuyn dng
EPROM (Erasable PROM):
Cho php xa bng tia cc tm
Ghi li bng thit b np EPROM
EEPROM (Electrically Erasable PROM):
C th xa bng tn hiu in v ghi li thng tin ngay trong mch lm
vic (khng cn thit b ghi ring)
C th xa v ghi li mc tng Byte
Dung lng nh
Flash Memory: ging EEPROM nhng:
c/ghi theo tng block
Tc rt nhanh
Dung lng ln
323
RAM (Random Access Memory)
RAM (Random Access Memory): b nh truy cp
ngu nhin
c im:
L b nh c/ghi (Read/Write Memory RWM)
B nh kh bin
Cha cc thng tin tm thi
324
RAM (tip)
Cc loi b nh RAM:
SRAM (Static): RAM tnh
Mi phn t nh l mt mch lt 2 trng thi n nh thng tin trn
SRAM n nh
Tc nhanh
Dung lng chip nh nh
Gi thnh t
Thng dng lm b nh Cache
DRAM (Dynamic): RAM ng
Mi phn t nh l mt t in rt nh c sau mt khong thi gian
th in tch trn t in s b mt, cho nn thng tin trn DRAM khng
n nh khc phc bng mch lm ti (refresh) DRAM
Tc chm (do mt thi gian lm ti DRAM)
Dung lng chip nh ln
Gi thnh r
Thng dng lm b nh chnh
325
2. M hnh c bn ca chip nh
B
gii
m
a
ch
Ma trn nh
2
n
x m bit
T nh 0
B
m
d
liu
A
0
A
n-1
A
2
A
1
T nh 2
n
-1
T nh 2
T nh 1
D
0
D
m-1
D
1
iu khin c/ghi
CS OE WE
.
.
.
.
.
.
.
.
.
326
M hnh c bn ca chip nh (tip)
C n chn a ch (A
n-1
A
0
) : vn chuyn vo chip nh
c n bit a ch ng thi trong chip nh c 2
n
t nh.
C m chn d liu: (D
m-1
D
0
) : cho php vn chuyn ng
thi c m bit d liu di t nh l m bit.
Dung lng ca chip nh l: 2
n
x m bit
Cc chn tn hiu iu khin:
CS (Chip Select): tn hiu iu khin chn chip nh lm vic
OE (Output Enable): tn hiu iu khin c d liu ca 1 t nh
c xc nh.
WE (Write Enable): tn hiu iu khin ghi d liu vo 1 t nh
c xc nh.
327
Hot ng ca chip nh
Hot ng c:
Cc bit a ch c a n cc chn a ch.
Tn hiu iu khin chn chip nh lm vic c a
n CS
Tn hiu iu khin c a n OE
D liu t ngn nh tng ng vi a ch c s
c a ra cc chn d liu.
328
Hot ng ca chip nh (tip)
Hot ng ghi:
Cc bit a ch c a n cc chn a ch
D liu cn ghi c a n cc chn d liu
Tn hiu iu khin chn chip c a n CS
Tn hiu iu khin ghi c a n WE
D liu t cc chn d liu s c ghi vo ngn nh
tng ng.
329
3.3. B nh my tnh
3.3.1. Tng quan h thng nh
3.3.2. B nh bn dn
3.3.3. B nh chnh
3.3.4. B nh cache
3.3.5. B nh ngoi
3.3.6. B nh o
3.3.7. B nh trn my tnh c nhn
330
3.3.3. B nh chnh

1. Cc c trng ca b nh chnh
2. T chc b nh an xen
331
1. Cc c trng ca b nh chnh
L thnh phn nh tn ti trn mi h thng my
tnh
Cha cc chng trnh ang c thc hin v
cc d liu ang c s dng
Bao gm cc ngn nh c nh a ch trc tip
bi CPU
Dung lng vt l ca b nh chnh khng gian
a ch b nh m CPU qun l
Vic qun l logic b nh chnh ty thuc vo h
iu hnh
332
2. T chc b nh an xen
rng ca bus d liu trao i vi b nh
chnh M = 8, 16, 32, 64, 128 bit
Cc ngn nh c t chc theo tng Byte nh
T chc b nh chnh khc nhau
333
M = 8 bit
VD: Intel 8088
BN chnh l 1 bng (bank) nh tuyn tnh
0
1
2
i
Bus a ch
A
N-1
A
0
Bus d liu
D
7
D
0
1 Byte
334
M = 16 bit
VD: Intel 8086 80286
B nh chnh gm 2 bng (bank) nh an xen
To tn
hiu chn
Byte nh
A
0
Byte
Word
1
BE
0
BE
1
3
5
2i+1
Bus a ch
A
N-1
A
1
Bus d liu 16 bit
D
15
D
8
0
2
4
2i
D
7
D
0
1
BE
0
BE
Bng 1 Bng 0
335
Cc trng hp khc
Vi M = 32 bit (80386, 80486): b nh chnh gm 4
bng nh an xen
Vi M = 64 bit (cc b x l Pentium): b nh
chnh gm 8 bng nh an xen
336
3.3. B nh my tnh
3.3.1. Tng quan h thng nh
3.3.2. B nh bn dn
3.3.3. B nh chnh
3.3.4. B nh cache
3.3.5. B nh ngoi
3.3.6. B nh o
3.3.7. B nh trn my tnh c nhn
337
3.3.4. B nh cache
1. Nguyn tc chung ca cache
2. Cc phng php nh x
3. Thut gii thay th
4. Phng php ghi d liu khi cache hit
5. Cache trn cc b x l Intel
338
1. Nguyn tc chung ca cache
Nguyn l cc b ho tham chiu b nh: Trong
mt khong thi gian nh CPU thng ch tham
chiu cc thng tin trong mt khi nh cc b
V d:
Cu trc chng trnh tun t
Vng lp c thn nh
Cu trc d liu mng

339
1. Nguyn tc chung ca cache (tip)
Cache c tc nhanh hn b nh chnh
Cache c t gia CPU v b nh chnh nhm tng tc
truy cp b nh ca CPU
Cache c th c t trn chip CPU


340
Cu trc chung ca cache / B nh chnh
341
Cu trc chung ca cache / B nh chnh
B nh chnh c 2
N
byte nh
B nh chnh v cache c chia thnh cc
khi c kch thc bng nhau
B nh chnh: B0, B1, B2, ... , Bp-1 (p Blocks)
B nh cache: L0, L1, L2, ... , Lm-1 (m Lines)
Kch thc ca Block = 8,16,32,64,128 byte

342
Cu trc chung ca cache / B nh chnh
Mt s Block ca b nh chnh c np vo cc
Line ca cache.
Ni dung Tag (th nh) cho bit Block no ca b
nh chnh hin ang c cha Line .
Khi CPU truy nhp (c/ghi) mt t nh, c hai kh
nng xy ra:
T nh c trong cache (cache hit)
T nh khng c trong cache (cache
miss).

343
2. Cc phng php nh x
nh x trc tip
(Direct mapping)
nh x lin kt ton phn
(Fully associative mapping)
nh x lin kt tp hp
(Set associative mapping)

344
nh x trc tip
Mi Block ca b nh chnh ch c th c np
vo mt Line ca cache:
B0 L0
B1 L1
....
Bm-1 Lm-1
Bm L0
Bm+1 L1
....
Tng qut
Bj ch c th np vo L j mod m
m l s Line ca cache.


345
Minh ha nh x trc tip
346
c im ca nh x trc tip
Mi mt a ch N bit ca b nh chnh gm ba
trng:
Trng Word gm W bit xc nh mt t nh trong Block
hay Line:
2W = kch thc ca Block hay Line
Trng Line gm L bit xc nh mt trong s cc Line
trong cache:
2L = s Line trong cache = m
Trng Tag gm T bit:
T = N - (W+L)
B so snh n gin
Xc sut cache hit thp

347
nh x lin kt ton phn
Mi Block c th np vo bt k Line no ca
cache.
a ch ca b nh chnh bao gm hai trng:
Trng Word ging nh trng hp trn.
Trng Tag dng xc nh Block ca b nh chnh.
Tag xc nh Block ang nm Line

348
Minh ha nh x lin kt ton phn
349
c im ca nh x lin kt ton phn
So snh ng thi vi tt c cc Tag mt nhiu
thi gian
Xc sut cache hit cao.
B so snh phc tp.

350
nh x lin kt tp hp
Cache c chia thnh cc Tp (Set)
Mi mt Set cha mt s Line
V d:
4 Line/Set 4-way associative mapping
nh x theo nguyn tc sau:
B0 S0
B1 S1
B2 S2
......

351
Minh ha nh x lin kt tp hp
352
c im ca nh x lin kt tp hp
Kch thc Block = 2W Word
Trng Set c S bit dng xc nh mt trong s
V = 2S Set
Trng Tag c T bit: T = N - (W+S)
Tng qut cho c hai phng php trn
Thng thng 2,4,8,16Lines/Set

353
Thut gii thay th (nh x trc tip)
Khng phi la chn
Mi Block ch nh x vo mt Line xc nh
Thay th Block Line
354
Thut gii thay th (nh x lin kt)
c thc hin bng phn cng (nhanh)
Random: Thay th ngu nhin
FIFO (First In First Out): Thay th Block no nm
lu nht trong Set
LFU (Least Frequently Used): Thay th Block no
trong Set c s ln truy nhp t nht trong cng mt
khong thi gian
LRU (Least Recently Used): Thay th Block trong
Set tng ng c thi gian lu nht khng c
tham chiu ti.
Ti u nht: LRU

355
Phng php ghi d liu khi cache hit
Ghi xuyn qua (Write-through):
ghi c cache v c b nh chnh
tc chm
Ghi tr sau (Write-back):
ch ghi ra cache
tc nhanh
khi Block trong cache b thay th cn phi ghi tr c
Block v b nh chnh

356
5. Cache trn cc b x l intel
80486: 8KB cache L1 trn chip
Pentium: c hai cache L1 trn chip
Cache lnh = 8KB
Cache d liu = 8KB
Pentium 4: hai mc cache L1 v L2 trn chip
Cache L1:
mi cache 8KB
Kch thc Line = 64 byte
nh x lin kt tp hp 4 ng
cache L2
256KB
Kch thc Line = 128 byte
nh x lin kt tp hp 8 ng

357
3.3.5. B nh ngoi

1. a t
2. a quang
3. Flash disk
4. Cc chun ni ghp a
5. RAID
358
1. a t
Cc c tnh ca a t:
u t c nh hay di ng
a c nh hay thay i
Mt mt hay hai mt
Mt a hay nhiu a
C ch u t:
Tip xc
Khng tip xc
Gm 2 loi ph bin:
a mm
a cng
359
a. a mm
8, 5.25, 3.5
Dung lng nh ( 1.44MB)
Tc chm
Thng dng
R tin
Tng lai c th khng dng na
360
a mm (tip)
361
b. a cng
Mt hoc nhiu a
Thng dng
Dung lng tng nhanh
Tc c/ghi nhanh
Tng i r tin
362
a cng (tip)
363
2. a quang
Cc loi chnh:
CD-ROM (Compact Disk Read Only Memory)
CD-R (Recordable CD)
CD-RW (Rewriteable CD)
DVD (Digital Video Disk)
364
a. CD-ROM
Thng tin c ghi ngay khi sn xut a.
D liu tn ti di dng cc mt phng (land) v
cc l (pit).
Bit 1 tng ng vi s thay i t mt phng thnh l
hay ngc li;
cn nhng l hay mt phng ko di (khng c s thay
i) tng ng vi bit 0.
Tc c c s ca mt a CD-ROM ban u
l 150KB/s (tc 1X).
Cc a hin nay c tc c l bi s ca tc
c s ny (v d 48X, 52X,...)
365
CD-ROM (tip)
366
b. CD-R
Khi sn xut ra, cc a ny u l a trng (cha
c thng tin). Sau c th ghi d liu ln a ny
nhng ch ghi c mt ln nh ghi CD-R ring.
CD-R c cu trc v hot ng tng t nh CD-
ROM.
Cu to gm nhiu lp, trong lp cha d liu l mt
lp mu polymer hu c.
Khi b tia laser t chy, lp mu ny chuyn sang mu
en v ng vai tr nh cc l (pit) ca CD-ROM.
Cc a CD-R sau khi ghi c th c c t
CD-ROM hoc t CD-R. Cc a CD-R cn c
gi l WORM (write one read multiple).
367
c. CD-RW
CD-RW c cu trc v hot ng tng t nh
CD-R. Trong lp cha d liu l mt lp kim
loi.
Nguyn tc ghi d liu da trn s thay i trng
thi ca lp kim loi:
trng thi tinh th (phn x nh sng - mt phng)
v trng thi v nh hnh (khng phn x nh sng -
vng l trong CD-ROM hay mu b t en trong CD-R).
Qu trnh thay i trng thi ny c th thay i bt
k ty theo cng sut laser nn a CD-RW c th
c ghi ri xa i ghi li nhiu ln.
368
d. DVD
y l loi a quang c dung lng ln v c tc
nhanh hn so vi cc a quang trn.
a DVD c th lu tr thng tin trn hai mt, mi
mt c th c n 2 lp d liu.
Cc a DVD hin nay thng c dung lng l
4.7GB/mt hoc 9.4GB/mt.
Tc truy nhp c bn ca a DVD l
1.321MByte/s.
DVD cng c nhiu loi
369
3. Flash disk
Thc cht l b nh bn dn tc cao (flash
memory)
Thng c kt ni vi my tnh thng qua giao
tip USB
Dung lng tng nhanh
Thun tin, gi thnh hp l
370
Flash disk (tip)
371
4. Cc chun ni ghp a
Giao din IDE-ATA (Integrated Drive Electronics AT
Attachment):
c IBM thit k ni trc tip cng km mch iu khin vi
Bus ca my tnh AT gi l giao din ATA. Sau giao din ny
c kt hp vi a v b iu khin trong cc a giao din
IDE/ATA.
Giao din IDE (mch in t tch hp trong a) ch bt c a
no c tch hp b iu khin a gn bn trong.
Cp IDE chun: gm 40 dy, tn hiu truyn song song trn c dy chn
v dy l nn di ca cp b hn ch 46 cm.
Gii hn dung lng a ti a l 504MB v c tc tng i chm.
EIDE (Enhanced IDE - IDE c nng cao):
Gia tng dung lng a ln ti hn 8GB
Tng tc truyn ti d liu ln hn hai ln kh nng ca IDE
Tng gp i s lng a m mt my PC c th c
372
Cc chun ni ghp a (tip)
Giao din ATA gm nhiu phin bn:
ATA-1 (1986-1994)
ATA-2 (1996)
ATA-3 (1997)
ATA-4 (1998, cn gi l Ultra-ATA/33 MHz)
ATA-5 v ATA-6 (t 1999 n nay, cn gi l Ultra-
ATA/66/100/133 MHz). Cp cho cc chun ny c thit k
gm 80 dy truyn d liu tc cao (cc dy ni t v dy
tn hiu xen k nhau nhm mc ch kh nhiu)
373
Cc chun ni ghp a (tip)
Giao din Serial ATA:
Do mt s cty ln a ra vo nm 1999
Giao tip Serial Advanced Technology Attachment
(Serial ATA) cho cng v thit b ATA Packet Interface
(ATAPI)
So vi Parallel ATA, Serial ATA dng in p thp, u
chn cm nh gn v t dy hn.
Serial ATA tng thch hon ton vi phn mm trc
y dnh cho thit b Parallel ATA v ATAPI.
Th h sn phm Serial ATA u tin xut hin trn th
trng vo gia 2002, t tc 150MBps. Trong tng
lai, cc phin bn k tip c th t bng thng
300MBps v 600MBps.
374
Cc chun ni ghp a (tip)
Giao din SCSI (Small Computer System
Interface):
Dng kt ni nhiu loi thit b c tc trao i d
liu cao trong mt my tnh, thng c dng trong cc
my ch.
Mt bus SCSI h tr ti a 7 hoc 15 thit b
C nhiu chun SCSI:
SCSI-1 (1986): truyn d liu trn bus song song 8 bit, tc 5
MB/s, dng cp 50 dy.
SCSI-2 (1994): truyn d liu trn bus song song 16 bit, tc
10 MB/s, dng cp 50 dy mt cao.
SCSI-3: c thit k cho cc my tnh i mi hin nay, gm 2
phin bn: Ultra 2 SCSI (tc truyn ti 40 MB/s) v Ultra 3
SCSI (tc truyn ti 80 MB/s hoc 160 MB/s)
375
5. RAID
Redundant Array of Independent Disks
L tp hp cc a cng vt l m h iu hnh
coi nh l mt a logic duy nht
Khi ghi ln h thng RAID, cc tp d liu c
phn mnh v lu tr phn tn trn cc cng vt
l
C kh nng to ra v lu tr thng tin d tha
m bo khi phc li thng tin trong trng hp
a b hng
C 7 loi ph bin: RAID 0 6
376
3.3. B nh my tnh
3.3.1. Tng quan h thng nh
3.3.2. B nh bn dn
3.3.3. B nh chnh
3.3.4. B nh cache
3.3.5. B nh ngoi
3.3.6. B nh o
3.3.7. B nh trn my tnh c nhn

377
3.3.6. B nh o
Khi nim b nh o: l b nh bao gm b nh
chnh v b nh ngoi m c CPU coi nh l
mt b nh duy nht.
Cc k thut thc hin b nh o:
K thut phn trang: Chia khng gian a ch b nh
thnh cc trang nh c kch thc bng nhau v nm
lin k nhau
Thng dng: kch thc trang = 4KBytes
K thut phn on: Chia khng gian nh thnh cc
on nh c kch thc thay i, cc on nh c th
gi ln nhau.

378
3.3. B nh my tnh
3.3.1. Tng quan h thng nh
3.3.2. B nh bn dn
3.3.3. B nh chnh
3.3.4. B nh cache
3.3.5. B nh ngoi
3.3.6. B nh o
3.3.7. B nh trn my tnh c nhn

379
3.3.7. B nh trn my tnh c nhn
1. B nh Cache
2. RAM
3. ROM BIOS
4. CMOS RAM
5. Video RAM
6. Cc loi b nh ngoi

380
1. B nh Cache
Thng c chia thnh nhiu mc:
Cache L1:
Cache lnh
Cache d liu
Cache L2: 128, 256, 512 KB, 1 MB
c tch hp trn cc chip vi x l
381
2. RAM
S dng DRAM, thng c coi l b nh chnh.
Cc loi b nh RAM:
FPM (Fast Page Mode) DRAM
EDO (Extended Data Out) DRAM
SDRAM (Synchronous DRAM)
DDR SDRAM (Double Data Rate SDRAM)
RDRAM (Rambus DRAM)
Cc loi module nh RAM:
My tnh Desktop:
SIMM (Single Inline Memory Module)
DIMM (Dual Inline Memory Module)
RIMM (Rambus Inline Memory Module)
My tnh Laptop:
SODIMM (Small Outline Dual Inline Memory Module)
MicroDIMM (Micro Dual Inline Memory Module)
382
a. Cc loi b nh RAM
FPM DRAM (Fast Page Mode DRAM)
Khi truy cp b nh: a ch hng khng i, ch thay i
a ch ct.
Ch truy cp burst mode (t 486) cho php sau khi
thit lp cc a ch hng, ct cho 1 ln truy cp, CPU c
th truy cp thm 3 a ch tip m khng c trng thi
ch.
Ch burst mode ca DRAM chun c m t di
dng cc thng s x-y-y-y.
VD: FPM DRAM 60ns c thng s nh thi ca ch
burst mode l 5-3-3-3. Vi bus h thng 66MHz th mt
5x15=75ns cho ln truy cp u v 3x15=45ns cho mi
ln trong s 3 ln truy cp tip theo (nhanh hn 5-5-5-5).
383
Cc loi b nh RAM (tip)
EDO DRAM (Extended Data Out DRAM)
S dng ch yu t 1995 1997.
L dng ci tin ca FPM DRAM: cc b iu khin d
liu ra khng b tt khi b iu khin b nh xa a ch
ct cho chu k tip theo => cho php chu k tip theo gi
ln chu k trc (tit kim khong 10ns cho 1 chu k).
Gi thnh ngang vi FPM nhng hiu nng cao hn.
VD: burst mode ca EDO l 5-2-2-2 (cn 11 chu k cho 4
ln truyn) so vi 5-3-3-3 ca FPM (truyn 4 ln trong 14
chu k).
384
Cc loi b nh RAM (tip)
SDRAM (Synchronous DRAM):
S dng t 1997, ch yu cho cc my tnh PII, PIII.
Chy ng b vi bus b nh (66, 100, 133 MHz).
Thi gian xc nh a ch vn nh c nhng tng thi
gian nhanh hn so vi FPM v EDO DRAM.
VD: SDRAM : 5-1-1-1 (cn 8 chu k cho 4 ln truyn),
nhanh hn 11 v 14 chu k ca EDO v FPM.
385
Cc loi b nh RAM (tip)
DDR SDRAM (Double Data Rate SDRAM):
Xut hin t nm 2000.
L dng ci tin ca SDRAM, cho php truyn d liu 2
ln c sn dng v sn m ca 1 chu k.
DDR2 SDRAM:
Xut hin t nm 2004.
L dng ci tin ca DDR SDRAM: s dng cp dy tn
hiu vi sai cho php truyn nhanh v t nhiu hn.
S dng in p thp hn DDR SDRAM (1.8V so vi
2.5V).
386
Cc loi module nh DDR SDRAM
387
Cc loi module nh DDR2 SDRAM
388
Cc loi b nh RAM (tip)
RDRAM (Rambus DRAM):
L loi RAM tc cao, c sn xut theo cng ngh
ca hng Rambus.
Xut hin ch yu t 1999 n 2002 (sau 2001 Intel
khng cn h tr cng ngh ny).
389
Cc loi module nh RDRAM
390
b. Cc loi module nh RAM
Cc module RAM th h c:
DIP (Dual Inline Package)
SIPP (Single Inline Pin Package)
My tnh Desktop:
SIMM (Single Inline Memory Module)
DIMM (Dual Inline Memory Module)
RIMM (Rambus Inline Memory Module)
My tnh Laptop:
SODIMM (Small Outline Dual Inline Memory Module)
MicroDIMM (Micro Dual Inline Memory Module)
391
DIP v SIPP
Thng l dng ng gi ca cc module nh
FPM DRAM.
Dng trong cc my tnh tng ng vi h
80286 tr v trc.
392
SIMM
Module nh n hng chn, gm 2 loi chnh:
SIMM 32 chn (8 bit d liu + 1 bit parity) : FPM DRAM
SIMM 72 chn (32 bit d liu + 4 bit parity ty chn) :
EDO DRAM
393
DIMM
Module nh hai hng chn, gm 3 loi chnh:
DIMM 168 chn: SDRAM
DIMM 184 chn: DDR SDRAM
DIMM 240 chn: DDR2 SDRAM
rng ng d liu: 64 bit (non-ECC/parity)
hoc 72 bit (parity/ECC).
394
Minh ha cc module nh DIMM
395
RIMM
Module nh 2 hng chn (184 chn), l dng ng
gi ca loi b nh RDRAM.
396
SODIMM
Thng dng trong cc my laptop, notebook,
printer, router, ...
Gm 4 loi chnh:
SODIMM 72 chn, 32 bit d liu, FPM/EDO
SODIMM 144 chn, 64 bit d liu, FPM/EDO
SODIMM 144 chn, 64 bit d liu, SDRAM
SODIMM 200 chn, 64 bit d liu, DDR/DDR2 SDRAM
397
Cc module nh SODIMM
398
MicroDIMM
Thng dng trong cc my notebook c nh,
PDA, palmtop, ...
Gm 2 loi chnh:
MicroDIMM 144 chn, 64 bit d liu, SDRAM
MicroDIMM 172 chn, 64 bit d liu, DDR SDRAM
399
Cc module nh MicroDIMM
400
3. ROM BIOS
BIOS: Basic Input Output System. Cha cc chng trnh:
Chng trnh POST (Power On Self Test): t kim tra khi
bt ngun. Mi li thng bo y u l li v phn cng.
Chng trnh CMOS Setup:
Cho php ngi s dng c th thit lp cc thng s cu hnh v
thi gian ca h thng.
Cc thng tin sau khi thit lp s c ct vo b nh CMOS RAM.
Chng trnh Bootstrap Loader: tm v np Boot Record
ca a khi ng vo mt a ch xc nh trong RAM v
trao quyn iu khin cho on m .
Cc chng trnh iu khin vo-ra c bn: tp hp cc
chng trnh con phc v vo-ra.
401
4. CMOS RAM
L mt vng nh c dung lng nh, c ch to
bng cng ngh CMOS, c mt ngun pin nui
ring, dng cha cc thng tin cu hnh v thi
gian ca h thng.
402
5. Video RAM
Vng nh c tc nhanh, dung lng ln, dng
qun l cc thng tin hin th trn mn hnh.
403
6. Cc loi b nh ngoi
a mm
a cng
Cc loi a quang
Flash disk
404
3.4. H thng vo ra

3.4.1. Tng quan v h thng vo-ra
3.4.2. Cc phng php iu khin vo-ra
3.4.3. Ni ghp vi thit b ngoi vi
3.4.4. Cc cng vo-ra thng dng trn PC

405
3.4.1. Tng quan v h thng vo-ra

1. Gii thiu chung
2. Cc thit b ngoi vi
3. Module ni ghp vo-ra
4. Cc phng php a ch ha cng vo-ra
406
1. Gii thiu chung
Chc nng: trao i thng tin gia my tnh v h
thng bn ngoi.
Cc thao tc c bn:
Vo d liu (Input)
Ra d liu (Output)
Cc thnh phn chnh:
Cc thit b ngoi vi
Cc module ni ghp vo-ra
407
2. Cc thit b ngoi vi
Chc nng: Chuyn i thng tin t mt dng vt
l no v dng d liu ph hp vi my tnh
hoc ngc li.
Phn loi:
Cc thit b thu nhn d liu: nh bn phm, chut, my
qut nh, ..
Cc thit b hin th d liu: mn hnh, my in, ...
Cc thit b lu tr: a mm, a cng, a quang
CD, DVD, ...
Cc thit b truyn thng: modem, card mng, ...
408
Cu trc chung ca TBNV
B m d
liu
B chuyn i
tn hiu
Khi logic iu khin
D liu t/n
module vo-ra
Tn hiu iu
khin
Tn hiu trng
thi
D liu t/n
bn ngoi
409
Cc thnh phn chnh ca TBNV
B chuyn i tn hiu: chuyn i d liu gia bn
ngoi v bn trong my tnh.
B m d liu: m d liu khi truyn gia
module vo-ra v thit b ngoi vi.
Khi logic iu khin: iu khin hot ng ca
thit b ngoi vi p ng theo yu cu t module
vo-ra.
410
3. Module vo-ra
c im ca vo-ra:
Cc thit b ngoi vi rt a dng, khc nhau v:
Nguyn tc hot ng
Tc
Khun dng d liu
Tt c cc thit b ngoi vi u chm hn CPU v RAM
Cn c cc module vo-ra ni ghp cc thit b ngoi
vi vi CPU v b nh chnh.
411
Chc nng ca module vo-ra
Chc nng:
iu khin v nh thi
Trao i thng tin vi CPU
Trao i thng tin vi thit b ngoi vi
m gia bn trong my tnh vi thit b ngoi vi
Pht hin li ca thit b ngoi vi
412
Cu trc chung ca module vo-ra
Thanh ghi m
d liu
Cng ni
ghp
vo-ra
Khi logic iu khin
Cc ng
d liu
Cc ng
a ch
Cng ni
ghp
vo-ra
Thanh ghi trng thi
/ iu khin
Cc ng
iu khin
Bus d liu
bn trong
D liu
iu khin
Trng thi
D liu
iu khin
Trng thi
413
Cc thnh phn ca module vo-ra
Thanh ghi m d liu: m d liu trong qu trnh
trao i.
Cc cng vo-ra (I/O Port): kt ni vi thit b ngoi
vi, mi cng c mt a ch xc nh.
Khi logic iu khin: iu khin module vo-ra.
Thanh ghi trng thi / iu khin: lu gi thng tin
trng thi / iu khin cho cc cng vo-ra.
414
4. a ch ha cng vo-ra
Cc thit b ngoi vi c ni ghp v trao i d
liu thng qua cc cng vo-ra.
Mi cng vo-ra phi c 1 a ch xc nh cn
phi c cc phng php a ch ha cho cng
vo-ra.
415
a. KGC b nh v KGC vo-ra
Mi CPU u c kh nng qun l c mt khng gian a
ch b nh xc nh.
KGC b nh = 2
N
byte (N l s bit a ch m CPU c kh nng
pht ra)
Mt s CPU c kh nng qun l thm 1 khng gian a ch
vo ra ring bit vi khng gian a ch b nh.
KGC vo-ra = 2
N1
byte
(N1 : s bit a ch dng qun l khng gian a ch vo-ra, 2
N1
<<
2
N
)
Trong trng hp CPU qun l c c 2 KGC th:
CPU phi c tn hiu phn bit khng gian a ch b nh v
khng gian a ch vo-ra.
CPU phi c cc lnh vo-ra chuyn dng.
416
V d
BXL 68030 ca Motorola ch qun l 1 KGC b
nh l 2
32
byte.
BXL Pentium ca Intel c kh nng qun l 2
KGC:
KGC b nh = 2
32
byte = 4GB
KGC vo-ra = 2
16
byte = 64KB
Pentium c:
Tn hiu iu khin phn bit truy nhp khng gian a
ch: IO/M
C 2 lnh vo-ra chuyn dng: IN v OUT
417
b. Cc pp a ch ha cng vo-ra
Vo ra ring bit (Isolated I/O):
Cng vo-ra c a ch ha theo khng gian a ch
vo-ra ring bit.
trao i d liu vi cng, trong chng trnh s dng
cc lnh vo-ra chuyn dng.
Vo ra theo bn b nh (Memory-mapped IO):
Cng vo-ra c a ch ha theo khng gian a ch b
nh.
trao i d liu vi cng, trong chng trnh s dng
cc lnh trao i d liu vi b nh.
418
3.4. H thng vo ra

3.4.1. Tng quan v h thng vo-ra
3.4.2. Cc phng php iu khin vo-ra
3.4.3. Ni ghp vi thit b ngoi vi
3.4.4. Cc cng vo-ra thng dng trn PC

419
3.4.2. Cc pp iu khin vo-ra

1. Vo-ra bng chng trnh
2. Vo-ra iu khin bng ngt
3. Truy cp trc tip b nh - DMA
4. B x l vo-ra

420
1. Vo-ra bng chng trnh
Nguyn tc chung:
Trong chng trnh ngi lp trnh ch ng vit cc
lnh vo-ra.
Khi thc hin cc lnh vo-ra , CPU trc tip iu
khin vic trao i d liu vi cng vo-ra.
421
Lu thc hin
c trng thi ca
module vo-ra
Module vo-ra
sn sng?
Trao i d liu
vi module vo-ra
ng
Sai
422
Hot ng
CPU yu cu thao tc vo-ra.
Module vo-ra thc hin thao tc.
Module vo-ra thit lp cc bit trng thi.
CPU kim tra cc bit trng thi:
Nu cha sn sng th quay li tip tc kim tra.
Nu sn sng th chuyn sang trao i d liu vi
module vo-ra.
423
c im
Vo-ra do mun ca ngi lp trnh
CPU trc tip iu khin vo-ra
CPU phi i module vo-ra sn sng tiu tn
thi gian ca CPU
424
2. Vo-ra iu khin bng ngt
Nguyn tc chung:
CPU khng phi i trng thi sn sng ca module
vo-ra.
CPU ang thc hin mt chng trnh no , nu
module vo-ra sn sng th n pht tn hiu yu cu ngt
gi n CPU.
Nu yu cu ngt c chp nhn th CPU thc hin
chng trnh con vo-ra tng ng trao i d liu.
Kt thc chng trnh con , CPU quay tr li tip tc
thc hin chng trnh ang b ngt.
425
Hot ng
Hot ng vo d liu nhn t pha module vo-
ra:
Module vo-ra nhn tn hiu iu khin c t CPU.
Module vo-ra nhn d liu t thit b ngoi vi, trong khi
CPU lm vic khc.
Khi c d liu, module vo-ra pht tn hiu ngt CPU.
CPU yu cu d liu.
Module vo-ra chuyn d liu n CPU.
426
Hot ng (tip)
Hot ng vo d liu nhn t pha CPU:
CPU pht tn hiu iu khin c.
CPU lm vic khc.
Cui mi chu trnh lnh, CPU kim tra tn hiu ngt.
Nu b ngt, CPU:
Ct ng cnh hin ti ca chng trnh.
Thc hin chng trnh con phc v ngt vo d liu.
Sau khi hon thnh chng trnh con , CPU khi phc ng
cnh v tr v tip tc thc hin chng trnh ang tm dng.
427
Cc vn ny sinh khi thit k
Lm th no xc nh c module vo-ra no
pht tn hiu yu cu ngt.
Khi c nhiu yu cu ngt cng gi n, CPU s
x l nh th no.
428
Cc phng php ni ghp ngt
S dng nhiu ng yu cu ngt
Kim tra vng bng phn mm (Software Poll)
Kim tra vng bng phn cng (Daisy Chain of
Hardware Poll)
S dng b iu khin ngt (PIC)
429
S dng nhiu ng yu cu ngt
Mi module vo-ra c ni vi 1 ng yu cu ngt
CPU phi c nhiu ng tn hiu yu cu ngt
Hn ch s lng module vo-ra
Cc ng yu cu ngt c quy nh mc u tin
Module
vo-ra
Thanh
ghi
yu
cu
ngt
Module
vo-ra
Module
vo-ra
Module
vo-ra
CPU
INTR 0
INTR 1
INTR 2
INTR 3
430
Kim tra vng bng phn mm
CPU thc hin phn mm hi ln lt tng module vo-ra
Tc chm
Th t cc module vo-ra c hi vng chnh l th t u
tin
Module
vo-ra
C
yu
cu
ngt
Module
vo-ra
Module
vo-ra
Module
vo-ra
CPU
INTR
431
Kim tra vng bng phn cng
Module
vo-ra
C
yu
cu
ngt
Module
vo-ra
Module
vo-ra
Module
vo-ra
CPU
INTR
INTA
Bus d liu
432
Kim tra vng bng phn cng (tip)
CPU pht tn hiu chp nhn ngt (INTA) n
module vo-ra u tin.
Nu module vo-ra khng gy ra ngt th n gi
tn hiu n module k tip cho n khi xc nh
c module gy ngt.
Module vo-ra gy ngt s t vector ngt ln bus
d liu.
CPU s dng vector ngt xc nh ni cha
chng trnh con phc v ngt.
Th t cc module vo-ra kt ni trong chui xc
nh th t u tin.
433
B iu khin ngt lp trnh c
PIC: Programmable Interrupt Controller.
PIC c nhiu ng yu cu ngt c quy nh mc u tin.
PIC chn mt yu cu ngt khng b cm c mc u tin
cao nht gi n CPU.
PIC
Module
vo-ra
Module
vo-ra
Module
vo-ra
Module
vo-ra
INTR 0
INTR 1
INTR 2
INTR 3
CPU
INTA
INTR
Bus d liu
434
T chc ngt ca 80x86
IP ca INT 0
CS ca INT 0
IP ca INT 1
CS ca INT 1
IP ca INT 0
CS ca INT 0
IP ca INT 1
CS ca INT 1
IP ca INT 0
CS ca INT 0
IP ca INT 1
CS ca INT 1
IP ca INT 0
CS ca INT 0
IP ca INT 1
CS ca INT 1
Vector 0 : Chia cho 0
Vector 1 : Chy tng lnh
Vector 2 : Ngt khng che c (NMI)
Vector 3 : im dng
Vector 4 : Trn s hc
Vector 5
Vector 31
Vector 32
Vector 254
Vector 255
c nh ngha trc
hoc dnh ring
Dnh cho ngi lp trnh
00000
00002
00004
00006
00008
0000A
0000C
0000E
00010
00012
00014
00016
003F8
003FA
003FC
003FE
a ch B nh
.
.
.
T chc kiu vector ngt.
Mi ngt c c trng
bng s hiu ngt N (00
FF).
Bng vector ngt:
256 x 4 = 1024 byte
00000 003FF
Gi CTC phc v ngt
bng lnh: INT N
435
c im ca vo-ra bng ngt
C s kt hp gia phn cng v phn mm:
Phn cng: gy ngt CPU.
Phn mm: trao i d liu.
CPU trc tip iu khin vo-ra.
CPU khng phi i module vo-ra hiu sut s
dng CPU tt hn.
436
3. Truy cp trc tip b nh
DMA (Direct Memory Access)
Cc phng php vo-ra bng chng trnh v
vo-ra iu khin bng ngt do CPU trc tip iu
khin:
Chim thi gian ca CPU
Tc trao i d liu b hn ch v phi chuyn qua
CPU
khc phc dng DMA:
Thm module phn cng l DMAC (Direct Memory
Access Controller)
DMAC iu khin trao i d liu gia module vo-ra vi
b nh chnh.
437
Cu trc ca DMAC
Thanh ghi a ch
Thanh ghi d liu
B m
Logic iu khin
Cc ng a ch
Cc ng d liu
Yu cu bus
Chuyn nhng bus
Ngt
c
Ghi
Chp nhn DMA
iu khin c
iu khin ghi
Yu cu DMA
438
Cc thnh phn ca DMAC
Thanh ghi d liu: cha d liu cn trao i
Thanh ghi a ch: cha a ch ngn nh d liu
B m d liu: cha s t d liu cn trao i
Logic iu khin: iu khin hot ng ca DMAC
439
Hot ng ca DMAC
CPU gi cho DMAC cc thng tin:
Chiu trao i d liu: vo hay ra d liu
a ch thit b vo-ra (cng vo-ra tng ng)
a ch u ca mng nh d liu np vo thanh ghi a ch
S t d liu cn truyn np vo b m d liu
CPU lm vic khc
DMAC iu khin trao i d liu
Sau khi truyn c 1 t d liu:
Ni dung thanh ghi a ch tng
Ni dung b m d liu gim
Khi b m d liu = 0, DMAC gi yu cu ngt n CPU
bo hiu kt thc DMA
440
Cc kiu DMA
DMA truyn theo khi (Block Transfer DMA): CPU trao
quyn s dng bus cho DMAC trong mt khong thi gian
ln DMAC thc hin trao i xong c khi d liu.
DMA xen k chu k my vi CPU (Cycle Stealing DMA):
DMAC v CPU thay nhau s dng bus trong tng chu k
my.
DMA trong sut (Transparent DMA): Trong qu trnh hot
ng, khng phi chu k no CPU cng s dng bus h
thng, DMAC s pht hin xem nhng chu k CPU khng
dng bus chim dng bus trong chu k v iu khin
trao i 1 t d liu khng lm nh hng n CPU.
441
Cc cu hnh thit k DMA
Cu hnh 1:





Mi ln truyn, DMAC s dng bus 2 ln:
Gia DMAC vi module vo-ra
Gia DMAC vi b nh
CPU DMAC IO Module IO Module Memory
.
System bus
442
Cc cu hnh thit k DMA (tip)
Cu hnh 2:





DMAC iu khin mt hoc mt vi module vo-ra
Mi ln truyn, DMAC s dng bus 1 ln:
Gia DMAC vi b nh
CPU DMAC
IO Module
IO Module
Memory
System bus
DMAC
IO Module
443
Cc cu hnh thit k DMA (tip)
Cu hnh 3:






Bus vo-ra tch ri h tr tt c cc thit b cho php
DMA
Mi ln truyn, DMAC s dng bus 1 ln:
Gia DMAC vi b nh
IO Module IO Module IO Module
.
I/O bus
CPU DMAC Memory
System bus
444
c im ca DMA
CPU khng tham gia vo qu trnh trao i d liu
DMAC iu khin trao i d liu gia b nh
chnh vi module vo-ra hon ton bng phn
cng tc nhanh.
Thch hp vi cc yu cu trao i d liu kch
thc ln.
445
4. B x l vo-ra
Vic iu khin vo-ra c thc hin bi mt b
x l vo-ra chuyn dng.
B x l vo-ra hot ng theo chng trnh ca
ring n.
Chng trnh ca b x l vo-ra c th nm trong
b nh chnh hoc nm trong mt b nh ring.
Hot ng theo kin trc a x l.
446
3.4. H thng vo ra

3.4.1. Tng quan v h thng vo-ra
3.4.2. Cc phng php iu khin vo-ra
3.4.3. Ni ghp vi thit b ngoi vi
3.4.4. Cc cng vo-ra thng dng trn PC

447
3.4.3. Ni ghp vi thit b ngoi vi

1. Cc kiu ni ghp
2. Cc cu hnh ni ghp
448
1. Cc kiu ni ghp
Ni ghp song song:
Truyn nhiu bit song song
Tc nhanh
Cn nhiu ng truyn
Cng
vo-ra
song
song
TBNV
.
.
.
.
.
.
Bus
h
thng
449
Cc kiu ni ghp (tip)
Ni ghp ni tip:
Truyn ln lt tng bit
Cn c b truyn i qua li gia d liu song song v
ni tip
Tc chm hn
Cn t ng dy truyn c xa hn
Cng
vo-ra
ni tip
TBNV
.
.
.
Bus
h
thng
450
2. Cc cu hnh ni ghp
Cu hnh im ti im (Point to Point): thng qua mt cng
vo-ra cho php ni ghp vi mt thit b ngoi vi.
Ni ghp bn phm
Ni ghp chut
Ni ghp a mm
...
Cu hnh im ti a im (Point to Multipoint): thng qua
mt cng vo-ra cho php ni ghp vi nhiu thit b ngoi
vi.
Chun ni ghp SCSI: cho php ni ghp ti 7 hoc 15 thit b
Cng USB: ni ghp ti 127 thit b
Cng IEEE 1394: ni ghp ti 63 thit b
451
3.4. H thng vo ra

3.4.1. Tng quan v h thng vo-ra
3.4.2. Cc phng php iu khin vo-ra
3.4.3. Ni ghp vi thit b ngoi vi
3.4.4. Cc cng vo-ra thng dng trn PC

452
3.4.4. Cc cng vo-ra thng dng
Cc cng PS/2: ni ghp bn phm v chut
Cc cng ni ghp mn hnh
Cng LPT (Line Printer): thng ni ghp vi my
in, l cng song song (Parallel Port)
Cng COM (Communication): thng ni ghp vi
MODEM, l cng ni tip (Serial Port)
Cng USB (Universal Serial Bus): cng ni tip a
nng

453
Cc cng vo-ra thng dng (tip)
454
Kin trc my tnh

Chng 4
B vi x l Intel 8088


455
Ni dung chng 4

4.1. Cu trc bn trong ca 8088
4.2. M hnh lp trnh ca 8088
4.3. Cc thanh ghi on v phn on b nh
4.4. on lnh v thanh ghi con tr lnh
4.5. Stack v cc thanh ghi BP, SP
4.6. Cc on d liu v cc thanh ghi SI, DI, BX
4.7. Cc thanh ghi AX, BX, CX, DX
4.8. Thanh ghi c
4.9. Tp lnh v cc ch a ch
456
B vi x l 8088/8086
Hai BXL 8088 v 8086 c cu to tng t nhau,
im khc nhau c bn l:
8088: Bus d liu ngoi l 8 bit
8086: Bus d liu ngoi l 16 bit
H thng my tnh dng 8088 chm hn 8086
nhng c gi thnh r hn (do dng bus d liu
ngoi 8 bit nn gim c kh nhiu chip ghp ni
v b tr).
Hng IBM s dng 8088 thit k my IBM-
PC (1981).
457
4.1. Cu trc bn trong ca 8088
458
Cu trc bn trong ca 8088
Gm 2 phn:
n v ni ghp bus (Bus Interface Unit BIU)
n v thc hin (Execution Unit EU)
Hai phn ny c th hot ng ng thi: trong khi
EU ang thc hin lnh trc th BIU tm v
nhn lnh tip theo t b nh chnh.
459
Bus Interface Unit - BIU
Bao gm:
Cc thanh ghi on
Con tr lnh
Mch to a ch v iu khin bus
Hng i lnh (8088: 4 Byte, 8086: 6 Byte)
Nhim v:
To v pht a ch
Nhn lnh t b nh
Trao i d liu vi b nh chnh v cng vo-ra
Pht tn hiu iu khin b nh v mch vo-ra
Nhn cc tn hiu yu cu t bn ngoi
460
Execution Unit EU
Gm:
Cc thanh ghi chung
Cc thanh ghi m
n v s hc v logic (ALU)
Khi gii m lnh
Nhim v:
Gii m lnh
Thc hin lnh
461
Ni dung chng 4

4.1. Cu trc bn trong ca 8088
4.2. M hnh lp trnh ca 8088
4.3. Cc thanh ghi on v phn on b nh
4.4. on lnh v thanh ghi con tr lnh
4.5. Stack v cc thanh ghi BP, SP
4.6. Cc on d liu v cc thanh ghi SI, DI, BX
4.7. Cc thanh ghi AX, BX, CX, DX
4.8. Thanh ghi c
4.9. Tp lnh v cc ch a ch
462
4.2. M hnh lp trnh ca 8088
L m hnh m ngi lp trnh c th can thip
c.
Bao gm:
Tp thanh ghi
Khng gian nh
Khng gian vo-ra
Cc kiu d liu
463
Tp thanh ghi
4 thanh ghi on:
CS (Code Segment): thanh ghi on lnh
DS (Data Segment): thanh ghi on d liu
SS (Stack Segment): thanh ghi on ngn xp
ES (Extra Segment): thanh ghi on d liu ph
3 thanh ghi con tr:
IP (Instruction Pointer): thanh ghi con tr lnh
SP (Stack Pointer): con tr ngn xp
BP (Base Pointer): thanh ghi con tr c s
4 thanh ghi d liu:
AX (Accumulator): thanh cha - thanh ghi tch ly
BX (Base): thanh ghi c s
CX (Count): thanh ghi m
DX (Data): thanh ghi d liu
Mi thanh ghi ny u c th c chia ra thnh 2 na c kh nng s dng c lp.
2 thanh ghi ch s:
SI (Source Index): thanh ghi ch s ngun
DI (Destination Index): thanh ghi ch s ch
Thanh ghi c
464
Tp thanh ghi (tip)
465
Khng gian nh
8088 c bus a ch 20 bit KGCBN = 2
20
Byte =
1MB.
8088 c kh nng truy nhp b nh theo:
Tng byte
Tng word: truy nhp theo 2 byte c a ch lin tip
8088 lu tr thng tin trong b nh chnh theo kiu
u nh (Little-endian)
00001h
00000h
FFFFFh
466
Khng gian vo-ra
8088 c kh nng qun l khng gian vo-ra 64 KB
= 2
16
Byte, do s phi pht ra 16 bit a ch
tm cng vo-ra tng ng trn cc chn a ch t
A
0
n A
15
.
Trong trng hp pht ra 8 bit a ch t A
0
n A
7

xc nh mt cng vo-ra th s qun l c
256 cng vo-ra.
467
Cc kiu d liu
Kiu d liu s nguyn, gm 2 loi:
Khng du:
8 bit (1 byte), biu din cc s t 0 n 255
16 bit (2 byte), biu din cc s t 0 n 65535
C du:
8 bit (1 byte), biu din cc s t -128 n 127
16 bit (2 byte), biu din cc s t -32768 n 32767
Kiu d liu s BCD, gm 2 dng: dng nn v
dng khng nn.
M ASCII: t chc theo tng byte, theo m 8 bit.
468
Ni dung chng 4

4.1. Cu trc bn trong ca 8088
4.2. M hnh lp trnh ca 8088
4.3. Cc thanh ghi on v phn on b nh
4.4. on lnh v thanh ghi con tr lnh
4.5. Stack v cc thanh ghi BP, SP
4.6. Cc on d liu v cc thanh ghi SI, DI, BX
4.7. Cc thanh ghi AX, BX, CX, DX
4.8. Thanh ghi c
4.9. Tp lnh v cc ch a ch
469
4.3. Cc th.ghi on v phn on BN
8088 c 4 thanh ghi on 16 bit, do ti mt thi
im, 8088 ch lm vic c vi 4 on nh:
CS (Code Segment): qun l on lnh
SS (Stack Segment): qun l on ngn xp
DS (Data Segment): qun l on d liu
ES (Extra Data Segment): qun l on d liu ph
8088 pht ra mt a ch ca ngn nh = 20 bit, do
khng gian nh ca n l 1 MB (=2
20
Byte)
Cc thanh ghi bn trong 8088 u c di l 16
bit.
470
Cc thanh ghi on
471
Phn on b nh
Intel chia khng gian nh ca 8088 thnh cc on
nh (segment) c dung lng 64 KB =2
16
Byte
a ch u ca mi on nh chia ht cho 16, do
a ch u ca mt on no s c dng:
xxxx0h (x l ch s Hexa bt k).
qun l a ch u ca mt on nh ch cn
lu tr 4 s Hexa (16 bit cao), y gi l a ch
on.
VD: nu a ch on l 1234h th a ch vt l ca u
on nh l 12340h
472
Phn on b nh (tip)
Gi s c mt on nh xc nh (dung lng ti a = 64
KB), xc nh 1 byte nh c th trong on , cn
bit khong cch (offset lch) gia byte nh so
vi ngn nh u on.
a ch logic c dng:
a ch on (16 bit): offset (16 bit)
a ch vt l (20 bit) = a ch on * 10h + offset
V d:
C a ch logic 1234h:0076h
a ch vt l = 1234h * 10h + 0076h = 123B6h
Ngi lp trnh ch lp trnh vi a ch logic, cn vic
chuyn sang a ch vt l l do b vi x l thc hin.
473
Phn on b nh (tip)
a ch on: xxxxh
a ch vt l u on: xxxx0h
a ch vt l cui on: xxxx0h + FFFFh
a ch on do cc thanh ghi on qun l.
a ch offset do cc thanh ghi IP, BX, BP, SP, SI,
DI qun l.
Vi mt a ch vt l, c th tm ra nhiu a ch
logic khc nhau.
V d:
00070h = 0000h:0070h = 0001h:0060h = 0002h:0050h ...
474
Ni dung chng 4

4.1. Cu trc bn trong ca 8088
4.2. M hnh lp trnh ca 8088
4.3. Cc thanh ghi on v phn on b nh
4.4. on lnh v thanh ghi con tr lnh
4.5. Stack v cc thanh ghi BP, SP
4.6. Cc on d liu v cc thanh ghi SI, DI, BX
4.7. Cc thanh ghi AX, BX, CX, DX
4.8. Thanh ghi c
4.9. Tp lnh v cc ch a ch
475
4.4. on lnh v thanh ghi con tr lnh
Thanh ghi CS s xc nh on lnh.
on lnh dng cha lnh ca chng trnh. B
vi x l s nhn ln lt tng lnh y gii
m v thc hin.
Thanh ghi IP (con tr lnh) cha a ch offset ca
lnh tip theo s c nhn vo.
CS:IP cha a ch logic ca lnh tip theo s
c nhn vo.
476
Ni dung chng 4

4.1. Cu trc bn trong ca 8088
4.2. M hnh lp trnh ca 8088
4.3. Cc thanh ghi on v phn on b nh
4.4. on lnh v thanh ghi con tr lnh
4.5. Stack v cc thanh ghi BP, SP
4.6. Cc on d liu v cc thanh ghi SI, DI, BX
4.7. Cc thanh ghi AX, BX, CX, DX
4.8. Thanh ghi c
4.9. Tp lnh v cc ch a ch
477
4.5. Stack v cc thanh ghi SP, BP
Stack (ngn xp): vng nh t chc theo c ch LIFO, dng
ct gi thng tin v c th khi phc li.
Chiu t y ln nh ca ngn xp ngc vi chiu tng
ca a ch.
on Stack c qun l nh thanh ghi SS.
Thng tin c trao i vi Stack theo word (16 bit).
SP cha a ch offset ca ngn nh nh Stack
Nu ct thm mt thng tin vo Stack th ni dung ca SP gim i 2
Nu ly ra mt thng tin ca Stack th ni dung ca SP tng ln 2
Nu Stack rng th SP tr vo y Stack
SS:SP cha a ch logic ca ngn nh nh Stack
BP l thanh ghi cha a ch offset ca mt ngn nh no
trong Stack a ch logic ca ngn nh l SS:BP
478
Ni dung chng 4

4.1. Cu trc bn trong ca 8088
4.2. M hnh lp trnh ca 8088
4.3. Cc thanh ghi on v phn on b nh
4.4. on lnh v thanh ghi con tr lnh
4.5. Stack v cc thanh ghi BP, SP
4.6. Cc on d liu v cc thanh ghi SI, DI, BX
4.7. Cc thanh ghi AX, BX, CX, DX
4.8. Thanh ghi c
4.9. Tp lnh v cc ch a ch
479
4.6. Cc on dl v cc th.ghi SI, DI, BX
DS: qun l mt on d liu 64 KB
ES: qun l mt on d liu ph 64 KB
Offset s c xc nh bi ni dung ca cc
thanh ghi SI, DI, BX.
S khc nhau gia chng trnh kiu EXE v
COM:
Trong chng trnh EXE: CS, DS v SS qun l 3 on
nh khc nhau. Ngha l : CS = SS = DS.
Trong chng trnh COM: CS, DS v SS c th qun l
chung mt on nh (khng ln hn 64 KB). Ngha l
CS = DS = SS.
480
Ni dung chng 4

4.1. Cu trc bn trong ca 8088
4.2. M hnh lp trnh ca 8088
4.3. Cc thanh ghi on v phn on b nh
4.4. on lnh v thanh ghi con tr lnh
4.5. Stack v cc thanh ghi BP, SP
4.6. Cc on d liu v cc thanh ghi SI, DI, BX
4.7. Cc thanh ghi AX, BX, CX, DX
4.8. Thanh ghi c
4.9. Tp lnh v cc ch a ch
481
4.7. Cc thanh ghi AX, BX, CX, DX
AX, BX, CX, DX l cc thanh ghi 16 bit
AH, AL, BH, BL, CH, CL, DH, DL l cc thanh ghi 8 bit
Chc nng chung: cha d liu tm thi
Chc nng ring:
AX: . Dng cho lnh nhn chia theo word
. Dng cho vo ra theo word
AL: . Dng cho lnh nhn chia theo byte
. Dng cho vo ra theo byte
. Dng cho cc lnh s hc vi s BCD
AH: . Dng cho cc lnh nhn chia theo byte
BX: . Dng cha a ch c s
CX: . Dng cha s ln lp ca lnh LOOP v cc lnh x l xu
k t
CL: . Dng cha s ln dch ca lnh dch, lnh quay
DX: . Dng cho lnh nhn chia theo word
. Dng cha a ch cng vo ra
482
Ni dung chng 4

4.1. Cu trc bn trong ca 8088
4.2. M hnh lp trnh ca 8088
4.3. Cc thanh ghi on v phn on b nh
4.4. on lnh v thanh ghi con tr lnh
4.5. Stack v cc thanh ghi BP, SP
4.6. Cc on d liu v cc thanh ghi SI, DI, BX
4.7. Cc thanh ghi AX, BX, CX, DX
4.8. Thanh ghi c
4.9. Tp lnh v cc ch a ch
483
4.8. Thanh ghi c


Bao gm:
Cc c php ton: biu th trng thi ca kt qu php ton.
Cc c iu khin: t ch lm vic cho b vi x l.
TF IF DF OF AF ZF SF CF PF
484
Cc c php ton
C ZF (Zero - c khng/c rng): c thit lp (= 1) nu kt qu
php ton bng 0 v ngc li s b xa (=0) nu kt qu php ton
khc 0.
C SF (Sign - c du): c thit lp nu kt qu php ton nh
hn 0 v b xo nu kt qu php ton ln hn hoc bng 0.
C CF (Carry - c nh): Nu php cng c nh ra khi bit cao nht
hay php ton tr c mn ra khi bit cao nht th CF c thit lp
(bo trn vi s nguyn khng du).
C OF (Overflow - c trn): Nu php ton xy ra overflow th OF
c thit lp (bo trn vi s nguyn c du).
C PF (Parity - c kim tra chn l): Nu tng s bit 1 ca kt qu l
chn th c PF c thit lp.
C AF (Auxiliary - c nh ph): Nu php cng c nh t bit 3 sang
bit 4 hoc php tr c mn t bit 4 sang bit 3 th c AF c thit
lp.
485
Cc c iu khin
C TF (Trap - c by):
Nu TF = 1 th b vi x l hot ng theo ch thc
hin tng lnh (ch g ri chng trnh).
C IF (Interrupt - c ngt):
Nu IF = 1 th b vi x l cho php ngt vi yu cu ngt
a n chn tn hiu INTR (Interrupt Request) ca b vi
x l.
Nu IF = 0 th cm ngt.
C DF (Director - c hng): ch hng x l xu
k t.
Nu DF = 0, x l t tri sang phi.
Nu DF = 1, x l t phi sang tri.
486
Ni dung chng 4

4.1. Cu trc bn trong ca 8088
4.2. M hnh lp trnh ca 8088
4.3. Cc thanh ghi on v phn on b nh
4.4. on lnh v thanh ghi con tr lnh
4.5. Stack v cc thanh ghi BP, SP
4.6. Cc on d liu v cc thanh ghi SI, DI, BX
4.7. Cc thanh ghi AX, BX, CX, DX
4.8. Thanh ghi c
4.9. Tp lnh v cc ch a ch
487
4.9. Tp lnh v cc ch a ch
Tp lnh:
Tp lnh ca 8088 c khong 120 lnh, chia thnh
cc nhm nh sau:
Cc lnh chuyn d liu (copy)
Cc lnh s hc
Cc lnh logic, dch, quay
Cc lnh x l xu k t (string)
Cc lnh iu khin h thng
Cc lnh chuyn iu khin (r nhnh)
Cc lnh x l c bit
Cc lnh vo-ra trc tip
488
Cc lnh chuyn d liu
489
Cc lnh chuyn d liu (tip)
490
Cc lnh s hc
491
Cc lnh s hc (tip)
492
Cc lnh s hc (tip)
493
Cc lnh logic
494
Cc lnh logic (tip)
495
Cc lnh x l chui
496
Cc lnh chuyn iu khin
497
Cc lnh chuyn iu khin (tip)
498
Cc lnh chuyn iu khin (tip)
499
Cc lnh chuyn iu khin (tip)
500
Cc lnh iu khin h thng
501
Ch thch
502
Tp lnh v cc ch a ch (tip)
Cc ch a ch (Addressing modes):
Ch a ch l cch xc nh ton hng ca lnh
Ton hng gm: ton hng ngun v ton hng ch
H Intel x86: nu trong lnh c 2 ton hng th ton hng ch
c vit bn tri.
Ton hng c th l:
Hng s (c cho ngay trong lnh)
Ni dung ca thanh ghi (trong lnh cn cho bit tn thanh ghi)
Ni dung ca ngn nh
Ni dung ca cng vo-ra

503
Cc ch a ch
Ch a ch tc th:
Ton hng l mt gi tr hng s nm ngay trong lnh.
V d:
MOV CX, 5 ; np gi tr 5 vo thanh ghi CX
MOV 5, CX ; ch : khng tn ti lnh ny !!!
Ch a ch thanh ghi:
Ton hng l ni dung ca 1 thanh ghi m tn thanh ghi
c cho bit trong lnh.
V d:
MOV AX, BX ; chuyn ni dung ca BX vo AX
504
Cc ch a ch (tip)
Ch a ch trc tip:
Ton hng l ni dung ca ngn nh m a ch ca
ngn nh c cho trong lnh.
V d:
MOV AX, [1234h] ; khc vi MOV AX, ES:[1234h]

1234h l a ch offset ca ngn nh
Nu khng ch nh a ch on th ngm nh thanh ghi on
tng ng l DS
Lnh ny chuyn 1 word nm trong b nh bt u t a ch
DS:1234h vo thanh ghi AX
505
Minh ha ch a ch trc tip
1234h
1235h
0000h
AX
AH AL
FFFFh
DS
(on d liu)
MOV AX, [1234h]
506
Cc ch a ch (tip)
Ch a ch gin tip qua thanh ghi:
Ton hng l ni dung ca ngn nh c a ch offset
nm trong 1 trong cc thanh ghi sau: BX, SI, DI.
Ch : nu khng ch nh a ch on th ngm nh
thanh ghi on tng ng l DS.
V d:
MOV AL, [SI] ; tng ng MOV AL, DS:[SI]

Lnh ny chuyn 1 byte nh a ch DS:SI vo thanh
ghi AL
507
Minh ha
0000h
SI
FFFFh
DS
(on d liu)
MOV AL, [SI]
AL
508
Cc ch a ch (tip)
Ch a ch c s:
Ton hng l ni dung ca ngn nh c a ch offset
bng tng ni dung ca mt thanh ghi c s (BX hoc
BP) + hng s.
Nu khng ch nh thanh ghi on th ngm nh thanh
ghi on l:
DS nu thanh ghi c s l BX
SS nu thanh ghi c s l BP
V d:
MOV AL, [BX+3] ; tng ng MOV AL, [BX]+3
; tng ng MOV AL, 3[BX]

509
Minh ha
0000h
BX
AL
FFFFh
DS
(on d liu)
3
MOV AL, [BX+3]
510
Cc ch a ch (tip)
Ch a ch ch s:
Ton hng l ni dung ca ngn nh c a ch offset
bng tng ni dung ca mt thanh ghi ch s (SI hoc DI)
+ hng s.
Nu khng ch nh thanh ghi on th ngm nh thanh
ghi on l DS.
V d:
MOV AX, [SI+3] ; tng ng MOV AX, [SI]+3
; tng ng MOV AX, 3+[SI]
; tng ng MOV AX, 3[SI]

511
Minh ha
0000h
SI
FFFFh
DS
(on d liu)
3
MOV AX, [SI+3]
AX
AH AL
512
Cc ch a ch (tip)
Ch a ch ch s c s:
Ton hng l ngn nh c a ch offset bng tng ca
ni dung mt thanh ghi c s (BX, BP) vi mt thanh ghi
ch s (SI, DI) v mt hng s.
V d:
MOV AL, [BX][SI]+4 ; MOV AL, [BX+SI+4]
513
Tng kt ch a ch
Ch a ch Ton hng Thanh ghi on ngm nh
Thanh ghi Reg -
Tc th Data -
Trc tip [Offset] DS
Gin tip [DX] [SI] [DI] [BX] DS
Tng i c s
[BX] + disp
[BP] + disp
DS
SS
Tng i ch s [SI hoc DI] + disp DS
Tng i ch s
c s
[BX][SI hoc DI] + disp
[BP][SI hoc DI] + disp
DS
SS
514
Cc cp thanh ghi on:lch ngm nh
Thanh ghi on
Thanh ghi lch
CS
IP
DS
BX, SI, DI
ES
DI
SS
SP, BP
Ghi ch: cc cp DS:SI v ES:DI dng vi cc lnh thao tc chui
515



HT CHNG 4
516
Cu trc my tnh

Chng 5
LP TRNH HP NG VI 8088


517
Ni dung chng 5

5.1. M u v lp trnh hp ng
5.2. Cc cu trc lp trnh vi hp ng
5.3. Cc lnh logic, lnh dch v lnh quay
5.4. Ngn xp v th tc
5.5. Cc lnh nhn, chia
5.6. Cc lnh thao tc chui
5.7. Mt s v d
518
5.1. M u v lp trnh hp ng
1. Cc loi ngn ng lp trnh
2. C php ca hp ng
3. D liu ca chng trnh
4. Khai bo bin
5. Khai bo hng
6. Mt s lnh c bn
7. Cu trc chng trnh
8. Chng trnh EXE v COM
9. Vo-ra n gin
10. Cc v d
11. Dch v chy chng trnh
519
1. Cc loi ngn ng lp trnh
Ngn ng my:
Ch c biu din bng s nh phn.
B vi x l ch hiu c cc chng trnh m my.
Con ngi rt kh khn to lp hay c hiu chng trnh ngn
ng my.
Hp ng (Assembly Language):
L ngn ng lp trnh bc thp (gn ngn ng my nht).
c xy dng trn c s k hiu tp lnh ca b vi x l tng
ng.
Ph thuc hon ton vo b vi x l c th.
Ngn ng lp trnh bc cao:
Gn vi ngn ng t nhin hn.
c xy dng c lp vi cu trc ca my tnh.
520
Lp trnh vi hp ng
u im:
Can thip su vo cu trc h thng.
Hiu su hn v h thng.
Chng trnh m my tng ng s ngn hn, thng
nhanh hn v tn t b nh hn.
Nhc im:
Kh hc v gn vi m my.
Chng trnh ngun di, khng thch hp xy dng
nhng chng trnh ln.
Kt hp ngn ng lp trnh bc cao vi hp ng.
521
Chng trnh dch hp ng
c gi l ASSEMBLER
Mt s chng trnh dch hp ng cho IBM-PC:
MASM Microsoft Marco Assembler:
Cc tp: MASM.EXE, LINK.EXE, EXE2BIN.EXE ...
TASM Turbo Assembler:
Cc tp: TASM.EXE, TLINK.EXE ...
522
Cc bc lp trnh
Bc 1: Pht biu bi ton
Bc 2: Xy dng thut gii
Bc 3: Vit m chng trnh
Bc 4: Dch v sa li c php
Bc 5: Chy th v hiu chnh chng trnh

523
Cc cu trc lp trnh c bn
Cu trc tun t
Cu trc r nhnh
Cu trc lp
524
2. C php ca hp ng
Chng trnh hp ng gm cc dng lnh, mi lnh vit
trn mt dng, mi dng c th l:
Lnh ca b vi x l (instruction)
Ch dn ca chng trnh dch ASSEMBLER
Cc lnh hp ng khng phn bit ch hoa, ch thng.
Khi dch thnh m my th ch c cc lnh ca b vi x l
mi c dch.
Cu trc ca mt dng lnh :
Tn Thao tc Ton hng Ch thch
( Name Operation Operand Comment )
Gia cc trng phi c t nht mt du cch (hoc TAB)
V d:
MAIN PROC
BAT_DAU: MOV CX, 50 ; khoi tao bo dem
525
ngha cc trng trong lnh
Trng tn:
S dng cho: nhn lnh, tn th tc, tn bin
Quy c t tn: di t 1 n 31 k t, cho php s
dng:
Ch ci (khng phn bit ch hoa v ch thng)
Ch s (khng c dng lm k t u tin)
Cc k t khc: ?, @, $, %, . (du . ch c dng khi n l k t
u tin).

526
ngha cc trng trong lnh
(tip)
Trng thao tc:
Nu l lnh ca vi x l th chnh l m lnh (MOV,
CALL, ADD,...).
Nu l ch dn th l lnh gi ca chng trnh dch
(Pseudo-op).

527
ngha cc trng trong lnh
(tip)
Trng ton hng:
i vi lnh th ton hng xc nh d liu b tc ng
bi m lnh.
Mt lnh c th c 0, 1, 2 ton hng.
V d:
MOV CX,5 ; 2 ton hng
INC AX ; 1 ton hng
NOP ; 0 ton hng
i vi lnh gi th ton hng cho thm thng tin cho
lnh gi .
Trng ch thch:
Bt u bng du ";" theo sau l li gii thch.
528
3. D liu ca chng trnh
Hp ng cho php biu din di dng:
S nh phn: 1011b, 1011B, ...
S thp phn: 35, 35d, 35D, ...
S Hexa: 4Ah, 0ABCDh, 0FFFFH, ...
K t: "A", 'HELLO', "Bach Khoa", ...
Tt c cc kiu d liu trn sau u c trnh
dch Assembler dch ra m nh phn.
Mi k t c dch thnh m ASCII tng ng
Chng trnh khng phn bit 'A' vi 41h hay 65
529
Cc ch th gi nh s liu
Ch th gi Biu din
DB nh ngha byte
DW nh ngha word (2 byte)
DD nh ngha double word (4 byte)
DQ nh ngha quadword (8 byte lin tip)
DT nh ngha tenbyte (10 byte lin tip)
530
4. Khai bo bin
Bin Byte:
Khai bo:
Ten_bien DB Gia_tri_khoi_dau
Ten_bien DB ?
V d:
Age DB 25 ; Khi to gi tr ban u Age = 25
Alpha DB ? ; Ban u Alpha khng xc nh
Khong xc nh ca bin Byte:
S khng du: [0, 255]
S c du: [-128, 127]
531
Khai bo bin (tip)
Bin Word:
Khai bo:
Ten_bien DW Gia_tri_khoi_dau
Ten_bien DW ?
V d:
Test DW -5 ; -5 = 1111111111111011b
Beta DW 1234h ; 1234h = 0001001000110100b
XYZ DW ?
Khong xc nh ca bin Word:
S khng du: [0, 65535]
S c du: [-32768, 32767]

1111 1011
1111 1111
34h
12h

a

c
h

n
g

d

n
?
Test
Beta
XYZ
532
Khai bo bin (tip)
Bin mng:
Mng Byte:
MangB DB 10h, 20h, 30h, 40h
Buffer DB 100 dup (?)
Mng Word:
MangW DW -12, 127, 0A48Bh
Mng k t:
Thc cht l mng Byte
V d: 2 cch vit sau l tng ng
M DB 'ABC'
M DB 41h, 42h, 43h
10h
MangB
20h
30h
40h
1111 0100
1111 1111
0111 1111
0000 0000
1000 1011
1010 0100
MangW
533
5. Khai bo hng
C php:
Ten_hang EQU Gia_tri
V d:
TenTruong EQU 'BACH KHOA'
CR EQU 13
LF EQU 10
...
ThongBao DB 'DAI HOC', CR, LF, TenTruong
DoDaiChuoi EQU $ - offset ThongBao
Hng khng c cp pht ngn nh
534
6. Mt s lnh c bn
Lnh MOV (Move): MOV ch, ngun
Copy d liu t ton hng ngun sang ton hng ch
Kch thc ca 2 ton hng phi ging nhau
Thanh ghi
chung
Thanh ghi on
Ngn nh
Hng
Ngun
ch
Thanh ghi
chung
Thanh ghi
on
Ngn nh
C
C
C
C
C
C
C
Khng
C
C
Khng
C
V d:
MOV AX, BX
MOV AL, 'A'
MOV BH, 120

; MOV DS, 0A000h ; SAI
MOV AX, 0A000h
MOV DS, AX

; MOV Bien_2, Bien_1; SAI
MOV AL, Bien_1
MOV Bien_2, AL
535
Mt s lnh c bn (tip)
Lnh XCHG (Exchange): XCHG ch, ngun
Hon i ni dung 2 ton hng cho nhau
Kch thc ca 2 ton hng phi ging nhau
V d:
XCHG AX, BX
XCHG AH, Byte_1
XCHG Word_1, BX

; XCHG Word_1, Word_2 ; SAI
MOV AX, Word_1
MOV BX, Word_2
MOV Word_1, BX
MOV Word_2, AX
Thanh ghi
chung
Ngn nh
Ngun
ch
Thanh ghi
chung
Ngn nh
C
C
C
Khng
536
Cc lnh ADD v SUB
C php:
ADD ch, ngun ; ch : ch + ngun
SUB ch, ngun ; ch : ch - ngun
Thanh ghi
chung
Ngn nh
Hng
Ngun
ch
Thanh ghi
chung
Ngn nh
C
C
C
C
Khng
C
V d:
MOV AX, 50
MOV BX, 30
ADD BX, 10 ; BX = 40
SUB AX, BX ; AX = 10

; ADD Byte_1, Byte_2 ; SAI
MOV AL, Byte_1
ADD AL, Byte_2
MOV Byte_1, AL
537
Cc lnh INC, DEC v NEG
C php:
INC ch ; ch : ch + 1
DEC ch ; ch : ch 1
NEG ch ; ch : - ch (ly b 2 ca ch)
Ton hng ch l thanh ghi hoc ngn nh
V d:
MOV AX, 20 ; AX = 20
INC AX ; AX = 21 = 0000000000010101b
NEG AX ; AX = 1111111111101011b
DEC AX ; AX = FFEAh
538
Bi tp
Gi s A v B l cc bin kiu Word, hy thc hin
cc php gn sau y bng hp ng:
1. A := B
2. A := 10 A;
3. A := B A * 2;
539
7. Cu trc chng trnh
Chng trnh m my khi c thc thi s chim 3
vng nh c bn trong b nh chnh:
Vng nh lnh (Code)
Vng d liu (Data)
Vng ngn xp (Stack)
Chng trnh hp ng cng c t chc tng
t nh vy.
M lnh, d liu v ngn xp c cu trc nh
cc on chng trnh.
540
Cc ch b nh
Kch thc ca on m v d liu trong chng
trnh c ch nh bng cch ch ra ch b nh
nh ch th bin dch .MODEL
C php:
.Model Kieu_bo_nho
Ch b nh thng dng khi lp trnh hp ng
l SMALL.
541
Cc ch b nh (tip)
Kiu M t
M lnh trong mt on
D liu trong mt on
M lnh chim nhiu hn mt on
D liu trong mt on
M lnh trong mt on
D liu chim nhiu hn mt on
M lnh chim nhiu hn mt on
D liu chim nhiu hn mt on
Khng c mng no ln hn 64 KB
M lnh chim nhiu hn mt on
D liu chim nhiu hn mt on
Cc mng c th ln hn 64 KB
SMALL
MEDIUM
COMPACT
LARGE
HUGE
M lnh v d liu gi gn trong mt on TINY
542
on d liu (Data Segment)
on d liu cha tt c cc khai bo bin.
Cc khai bo hng cng thng y.
khai bo on d liu ta dng ch th .DATA
V d:
.Data
Bien_1 db 10
Bien_2 dw 0FEDCh
TBao db 'Xin chao ban', '$'
Nam equ 2006
543
on ngn xp (Stack Segment)
C php:
.STACK Kich_thuoc
Kich_thuoc: l s Byte ca Stack (nu khng ch
nh Kich_thuoc th ngm nh l 1KB)
V d:
.Stack 100h
544
on m lnh (Code Segment)
on m lnh c khai bo vi ch th .CODE
Bn trong on m, cc dng lnh c t chc
di dng 1 chng trnh chnh v cc chng
trnh con (nu cn).
V d:
.Code
Main Proc
; cc lnh ca CT chnh
Main EndP
545
Cu trc chng trnh thng dng
.Model Small
.Stack 100h
.Data
; khai bo bin, hng y
.Code
Main Proc
; cc lnh ca chng trnh chnh y
Main EndP
; cc chng trnh con khc y
End Main
546
8. Chng trnh EXE v COM
C 2 loi chng trnh m my c th thc thi c trong
DOS, l chng trnh .EXE v .COM
Chng trnh EXE:
u file chng trnh c 1 vng thng tin gi l Header
Khi thc thi, CS, DS v SS tr n 3 phn on khc nhau
Chng trnh COM:
File chng trnh c kch thc nh gn (< 64KB), cha c m lnh v
d liu
Khi thc thi, CS, DS v SS tr n cng 1 phn on
DOS s chn 1 a ch phn on gi l PSP (Program
Segment Prefix) lm a ch c s ti chng trnh.
PSP thng c kch thc l 256 Byte (=100h), cha cc
thng tin lin quan n chng trnh c thc thi.
547
Thc thi chng trnh EXE
Ni dung file EXE c ti vo b nh bt u t
a ch PSP:0100h.
Sau cc a ch phn on c ti nh v nh
cc thng tin c c t Header nm u file
EXE.
Sau khi chng trnh EXE ly quyn iu khin:
DS v ES tr n PSP (ch khng phi on d liu)
=> Trong chng trnh hp ng ta cn thay i DS (v
ES) tr n ng on d liu.
CS, IP, SS v SP c t theo nhng gi tr ch ra trong
EXE Header.
548
Khung chng trnh EXE
.Model Small
.Stack 100h
.Data
; khai bo bin v hng y
.Code
Main Proc
mov ax, @Data
mov ds, ax ; khi to DS tr n on Data
; mov es, ax ; b du ; khi to ES = DS

; thn chng trnh

mov ah, 4Ch ; hm thot v DOS
int 21h
Main EndP
End Main
549
Thc thi chng trnh COM
Ni dung file COM c ti vo b nh bt u t
a ch PSP:0100h.
Sau khi file .COM c np vo b nh:
CS, DS, ES v SS c t cng gi tr vi PSP
SP tr n cui on PSP (thng th SP = 0FFFEh)
IP c t l 100h
550
Khung chng trnh COM
.Model Tiny
.Code
Org 100h
Start:
jmp Continue
; khai bo d liu y
Continue:
Main Proc

; thn chng trnh

int 20h ; V DOS
Main EndP
End Start
on u chng trnh (PSP)
JMP CONTINUE
D liu thng nm y
CONTINUE:
(chiu tin ca lnh v d liu)
M
(chiu tin ca ngn xp)
0000h
0100h
FFFEh
IP
SP
Offset
551
9. Vo-ra n gin
CPU c th trao i d liu vi cc thit b ngoi
qua cc cng vo-ra nh cc lnh IN v OUT.
Cch vo-ra n gin hn l dng cc dch v ngt
c sn ca BIOS hoc DOS.
Ta thng cn thc hin cc thao tc trao i d
liu vi bn phm v mn hnh dng hm DOS.
Lnh INT (Interrupt): INT N
L lnh gi CTC phc v ngt s hiu N (N t 0 255)
Dch v ngt s 21h cha nhiu hm tin ch ca DOS.
552
Lnh np a ch hiu dng
Lnh LEA (Load Effective Address):
LEA thanh_ghi_chung, ngan_nho
Ly a ch offset ca ngn nh np vo thanh ghi
V d:
LEA DX, Thong_Bao
MOV DX, offset Thong_Bao ; lnh cng chc nng

553
Mt s hm vo-ra ca DOS
Khi gi dch v ngt ca DOS bng lnh Int 21h th
AH cha s hiu dch v hm.
Hm 01h (ch ngi s dng vo 1 phm)
Vo:
AH = 01h
Ra:
AL = m ASCII nu 1 phm k t c nhn
= 0 nu 1 phm iu khin hay chc nng c nhn
V d:
MOV AH, 1
INT 21h
554
Mt s hm vo-ra ca DOS
(tip)
Hm 02h (hin 1 k t hay iu khin)
Vo:
AH = 02h
DL = m ASCII ca k t hin th hay iu khin
Ra:
AL = m ASCII ca k t hin th hay iu khin
V d:
MOV AH, 2
MOV DL, 'A' ; vit ra k t 'A'
INT 21h
MOV DL, 10 ; iu khin con tr xung dng
INT 21h
MOV DL, 13 ; iu khin con tr v u dng
INT 21h
555
Mt s hm vo-ra ca DOS
(tip)
Hm 09h (hin 1 chui k t)
Vo:
AH = 09h
DS:DX = a ch ca chui k t c k t kt thc l '$'
Ra: khng
V d:
ThongBao DB 'Chao cac ban$'
; gi s DS = a ch on ca ThongBao
MOV AH, 9
LEA DX, ThongBao ; hoc MOV DX, OFFSET ThongBao
INT 21h
556
10. Cc v d
V d 1: Chng trnh "Hello World" bng hp ng.
V d 2: Lp trnh thc hin cc cng vic sau:
Hin th thng bo : 'Hy g vo mt ch ci thng: '
Vo ch ci thng
Xung dng, v u dng
Hin th thng bo : 'Ch ci hoa tng ng l: '
Hin th ch ci hoa tng ng
Thot v DOS.

557
V d 1
.Model Small
.Stack 100h
.Data
TBao db 'Hello World$' ; kt thc bng '$'
.Code
Main Proc
mov ax, @Data
mov ds, ax ; DS tr n on Data
HienTB:
mov ah, 9 ; hm hin chui
lea dx, TBao ; DS:DX chui TBao
int 21h ; gi hm
Thoat:
mov ah,4Ch ; hm thot v DOS
int 21h
Main EndP
End Main
558
V d 2
.Model Small
.Stack 100
.Data
TB1 db 'Hay go vao mot chu cai thuong: $'
TB2 db 'Chu cai hoa tuong ung la: $'
.Code
Main Proc
mov ax, @Data
mov ds, ax ; DS tr n on Data
mov ah, 9 ; hm hin th chui
lea dx, TB1 ; DS:DX chui TB1
int 21h
mov ah, 1 ; hm nhp k t
int 21h
mov bl, al ; lu k t vo BL
mov ah, 2 ; hin k t
mov dl, 10 ; LF
int 21h
mov dl, 13 ; CR
int 21h
mov ah, 9 ; hin chui
lea dx, TB2 ; TB2
int 21h
mov ah, 2 ; hin k t
mov dl, bl
sub dl, 20h ; ch HOA
int 21h
mov ah,4Ch ; v DOS
int 21h
Main EndP
End Main
559
11. Dch v chy chng trnh
Nu dng MASM:
Vit chng trnh ngun, ghi ra file .ASM (chng hn l
BAITAP.ASM)
Dch m ngun: MASM BAITAP.ASM
Nu khng c li th ta c file BAITAP.OBJ
Nu c li th xem thng bo li v n dng xut hin li sa
Lin kt: LINK BAITAP.OBJ
Nu khng c li th ta c file BAITAP.EXE
Nu m ngun vit theo dng .COM th cn chuyn t
file .EXE sang dng COM bng lnh:
EXE2BIN BAITAP.EXE BAITAP.COM
Thc hin file BAITAP.EXE (hoc BAITAP.COM)
560
Dch v chy chng trnh (tip)
Nu dng TASM:
Vit chng trnh ngun, ghi ra file .ASM (chng hn l
BAITAP.ASM)
Dch m ngun: TASM BAITAP.ASM
Nu khng c li th ta c file BAITAP.OBJ
Nu c li th xem thng bo li v n dng xut hin li sa
Lin kt:
File EXE: TLINK BAITAP.OBJ /X
File COM: TLINK BAITAP.OBJ /T /X
Thc hin file BAITAP.EXE (hoc BAITAP.COM)
561
Ni dung file TEXE.BAT
@echo off
if not "A%1"=="A" goto ok
echo Syntax: TEXE Filename
goto End
:OK
if not exist %1.asm goto End
echo NPB's Assembly Compiler
echo Compiling : %1.asm
tasm %1.asm
if not exist %1.obj goto End
tlink %1.obj /x
if not ErrorLevel 0 goto End
del %1.obj
:End
562
S dng file TEXE.BAT
File TEXE.BAT cha cc lnh gi 2 file TASM.EXE
v TLINK.EXE dch 1 chng trnh .ASM ra
dng file .EXE
Gi s ta c file chng trnh BAITAP.ASM
G lnh sau: TEXE BAITAP
(Ch : khng g "BAITAP.ASM")
Nu chng trnh vit khng c li th ta s c file
BAITAP.EXE
563
Bi tp 1
D liu ca 1 chng trnh hp ng c khai bo di dng:
DATA SEGMENT
mem1 dw 500
mem2 dw -50
vec2 db 10, 20, -10, -20, -30, -40
DATA ENDS

Hy xc nh ni dung ca AX (Hexa) sau khi thc hin on lnh sau:
mov bx, 1
mov ax, SEG vec2
mov es, ax
mov ax, es:[bx]

a) 01F4 b) 0A14 c) F4FF d) 14F6 e) CE01
564
Bi tp 1 (tip)
F4h
01h
CEh
FFh
0Ah
14h
mem1
mem2
vec2
F6h
ECh
E2h
D8h
0
1
2
3
4
5
6
7
8
9
Offset
565
Bi tp 2
D liu ca 1 chng trnh hp ng c khai bo di dng:
DATA SEGMENT
mem1 dw 500
mem2 dw -50
vec1 db 1, 2, 3, 4, 8, 7
vec2 db 10, 20, -10, -20, -30, -40
DATA ENDS

Hy xc nh ni dung ca CX (Hexa) sau khi thc hin on lnh sau:
mov bx, OFFSET vec1
mov cx, 3[bx]

a) 0304 b) 0408 c) F3F4 d) 0203 e) 0804
566
Bi tp 2 (tip)
F4h
01h
CEh
FFh
01h
02h
mem1
mem2
vec1
03h
04h
08h
0
1
2
3
4
5
6
7
8
9
Offset
14h vec2
F6h
ECh
E2h
D8h
A
B
C
D
E
07h
567
Bi tp 3
Lp trnh thc hin cc cng vic sau:
Hin th thng bo : 'Hy g vo mt ch s: '
Vo mt ch s
Xung dng, v u dng
Hin th thng bo : 'Ch s b 9 l: '
Hin th ch s b 9 tng ng
Thot v DOS.

568
Ni dung chng 5

5.1. M u v lp trnh hp ng
5.2. Cc cu trc lp trnh vi hp ng
5.3. Cc lnh logic, lnh dch v lnh quay
5.4. Ngn xp v th tc
5.5. Cc lnh nhn, chia
5.6. Cc lnh thao tc chui
5.7. Mt s v d
569
5.2. Cc cu trc lp trnh vi hp ng

1. Cc lnh lin quan
2. Cu trc iu kin
3. Cu trc lp
570
1. Cc lnh lin quan
Cc cu trc lp trnh:
Tun t
iu kin
Lp
Cc cu trc iu kin v lp trong hp ng c
to bi phn ln l cc lnh sau:
Lnh so snh CMP
Lnh nhy khng iu kin JMP
Cc lnh nhy c iu kin
Cc cu lnh lp
571
Lnh so snh CMP
C php: CMP ch, gc
ch v gc khng ng thi l ngn nh, ngoi ra
ch khng c l hng s.
Lnh CMP s thc hin tr th ch cho gc (hi
ging lnh SUB) nhng khng thay i gi tr ca
ch m ch cp nht thanh ghi c.
Theo sau lnh CMP thng l cc lnh nhy c
iu kin.
572
Lnh nhy khng iu kin JMP
C php: JMP Target
Chuyn iu khin khng iu kin n Target
Target c th l nhn lnh, tn thanh ghi hoc ni dung
ngn nh.
Cc dng ca lnh nhy:
Nhy ngn (short): IP : IP + (gi tr c du 8 bit thay cho Target)
JMP SHORT NhanLenh
Nhy gn (near): IP : IP + (gi tr c du 16 bit thay cho Target)
JMP NEAR NhanLenh
Nhy xa (far): IP : Target_Ofs; CS : Target_Seg
NhanLenh LABEL FAR
JMP FAR NhanLenh
Gin tip: IP : thanh ghi / b nh (v CS : thanh ghi / b nh)
JMP NEAR PTR BX ; IP : BX
JMP WORD PTR [BX] ; IP : [BX]
JMP DWORD PTR [BX] ; IP : [BX] v CS : [BX+2]
573
Cc lnh nhy c iu kin
C nhiu lnh nhy c iu kin vi c php chung l:
JMP
k
NhanLenh
Nhy trong phm vi khong cch t -128 127 byte.
Cc k hiu cn nh:
J : Jump (nhy)
N : Not (khng ...)
Z : c ZF; C : c CF; O : c OF; S : c SF; P : c PF
A : Above (ln hn so snh s khng du)
B : Below (nh hn so snh s khng du)
G : Greater (ln hn so snh s c du)
L : Less (nh hn so snh s c du)
E : Equal (bng)
574
Nhy hai bc
Cc lnh nhy c iu kin c bc nhy rt ngn
(khong cch t -128 n 127 byte)
Mun nhy n nhn lnh xa th cn thc hin
qua 2 bc:
Bc 1: nhy n mt nhn lnh trung gian gn .
Bc 2: t nhn lnh trung gian ny s dng lnh JMP
nhy n nhn lnh xa.
575
Cc lnh nhy so snh s c du
K hiu Chc nng iu kin nhy
JG / JNLE
Nhy nu ln hn
Nhy nu khng nh hn hoc bng
ZF=0 v SF=OF
JGE / JNL
Nhy nu ln hn hoc bng
Nhy nu khng nh hn
SF=OF
JL / JNGE
Nhy nu nh hn
Nhy nu khng ln hn hoc bng
SF<>OF
JLE / JNG
Nhy nu nh hn hoc bng
Nhy nu khng ln hn
ZF=1 hoc SF<>OF
576
Cc lnh nhy so snh s khng du
K hiu Chc nng iu kin nhy
JA / JNBE
Nhy nu ln hn
Nhy nu khng nh hn hoc bng
ZF=0 v CF=0
JAE / JNB
Nhy nu ln hn hoc bng
Nhy nu khng nh hn
CF=0
JB / JNAE
Nhy nu nh hn
Nhy nu khng ln hn hoc bng
CF=1
JBE / JNA
Nhy nu nh hn hoc bng
Nhy nu khng ln hn
ZF=1 hoc CF=1
577
Cc lnh nhy iu kin n
K hiu Chc nng iu kin nhy
JE / JZ
Nhy nu bng
Nhy nu bng 0
ZF=1
JNE / JNZ
Nhy nu khng bng
Nhy nu khc 0
ZF=0
JC Nhy nu c nh CF=1
JNC Nhy nu khng c nh CF=0
JO Nhy nu trn OF=1
JNO Nhy nu khng trn OF=0
JS Nhy nu kt qu m SF=1
JNS Nhy nu kt qu khng SF=0
JP / JPE Nhy nu c chn PF=1
JNP / JPO Nhy nu c l PF=0
JCXZ Nhy nu thanh ghi CX = 0 CX=0
578
Cc cu lnh lp
Lnh LOOP:
C php: LOOP NhanLenh
Lp li cc lnh t NhanLenh n ht lnh LOOP cho
n khi CX = 0
Sau mi ln lp CX t ng gim 1
NhanLenh cch xa lnh LOOP khng qu -128 byte
Thng thng CX c gn bng s ln lp trc khi
vo vng lp.
V d:
MOV AL, 0 ; gn AL = 0
MOV CX, 16 ; s ln lp
LAP: INC AL ; tng AL thm 1
LOOP LAP ; lp 16 ln, AL = 16
579
Cc cu lnh lp (tip)
Lnh LOOPE / LOOPZ:
C php: LOOPE NhanLenh
LOOPZ NhanLenh
Lp li cc lnh t NhanLenh n ht lnh LOOPE /
LOOPZ cho n khi CX = 0 hoc ZF = 0
Phm vi tc dng v iu kin CX: ging lnh LOOP
Lnh LOOPNE / LOOPNZ:
C php: LOOPNE NhanLenh
LOOPNZ NhanLenh
Lp li cc lnh t NhanLenh n ht lnh LOOPNE /
LOOPNZ cho n khi CX = 0 hoc ZF = 1
Phm vi tc dng v iu kin CX: ging lnh LOOP
580
V d 1
Nhn cc k t '0' t bn phm cho n khi nhn
20 ln hoc k t nhp vo khc '0'.
M lnh:
MOV AH, 1 ; hm nhp k t
MOV CX, 20 ; lp ti a 20 ln
DocKiTu:
INT 21h ; nhn 1 k t
CMP AL, '0' ; so snh vi '0'
LOOPZ DocKiTu ; lp li DocKiTu

581
V d 2
Nhn cc k t t bn phm cho n khi nhn 20
k t hoc k t nhp vo l ENTER.
M lnh:
MOV AH, 1 ; hm nhp k t
MOV CX, 20 ; lp ti a 20 ln
DocKiTu:
INT 21h ; nhn 1 k t
CMP AL, 13 ; so snh vi ENTER
LOOPNZ DocKiTu ; lp li DocKiTu

582
2. Cu trc iu kin
Cc cu trc iu kin thng dng:
IF <iu kin> THEN <cng vic>
IF <iu kin> THEN <cng vic 1> ELSE <cng vic 2>
CASE <biu thc> OF
<gi tr 1> : <cng vic 1>
<gi tr 2> : <cng vic 2>
....
<gi tr N> : <cng vic N>
Else
<cng vic N+1>
END
583
a. Cu trc IF ... THEN
IF <iu kin> THEN <cng vic>
Dng lnh:
CMP <???> ; suy ra t <iu kin>
JMP
ksai
BoQua
<cng vic> ; cc lnh thc hin <cng vic>
BoQua:
....

584
V d lnh IF ... THEN
Gn BX = gi tr tuyt i ca AX
Thut gii:
BX := AX
If BX < 0 Then
BX := -BX
EndIf
M lnh:
MOV BX, AX
CMP BX, 0
JNL BoQua
NEG BX
BoQua: ...
585
b. Cu trc IF ... THEN ... ELSE
IF <iu kin> THEN <cng vic 1> ELSE <cng
vic 2>
Dng lnh:
CMP <???> ; suy ra t <iu kin>
JMP
ksai
Viec2
<cng vic 1> ; cc lnh thc hin <cng vic 1>
JMP TiepTuc
Viec2:
<cng vic 2> ; cc lnh thc hin <cng vic 2>
TiepTuc:
....
586
V d lnh IF ... THEN ... ELSE
AL v BL ang cha m ASCII ca 2 k t. Hy hin th ra
mn hnh k t c m ASCII nh hn.
M lnh chng trnh:
MOV AH, 2 ; hm hin k t
CMP AL, BL ; AL <= BL ?
JA Viec2 ; khng ng => ti Viec2
MOV DL, AL ; chuyn k t trong AL vo DL
JMP TiepTuc ; ti TiepTuc
Viec2:
MOV DL, BL ; chuyn k t trong BL vo DL
TiepTuc:
INT 21h ; hin k t trong DL
Thut gii:
If AL <= BL Then
Hin th k t trong AL
Else
Hin th k t trong BL
EndIf
587
c. Cu trc CASE ... OF
CMP <so_sanh_1> ; suy ra t <biu thc> = <gi tr 1>
JMP
kng
Viec_1
CMP <so_sanh_2> ; suy ra t <biu thc> = <gi tr 2>
JMP
kng
Viec_2
....
CMP <so_sanh_N> ; suy ra t <biu thc> = <gi tr N>
JMP
kng
Viec_N
<cong_viec_N+1> ; trng hp cn li => thc hin vic N+1
JMP TiepTuc
Viec_1:
<cong_viec_1> ; thc hin vic 1
JMP TiepTuc
Viec_2:
<cong_viec_2> ; thc hin vic 2
JMP TiepTuc
...
Viec_N:
<cong_viec_N> ; thc hin vic N
TiepTuc: ...
588
V d lnh CASE ... OF
Kim tra nu AX < 0 th gn BX = -1, nu AX = 0 th
gn BX = 0, cn nu AX > 0 th gn BX = 1

M lnh chng trnh:
CMP AX, 0 ; so snh AX vi 0
JL SoAm ; AX < 0 => ti SoAM
JE BangKhong ; AX = 0 => ti BangKhong
MOV BX, 1 ; TH cn li, gn BX = 1
JMP TiepTuc ; kt thc x l
SoAm:
MOV BX, -1 ; gn BX = -1
JMP TiepTuc ; kt thc x l
BangKhong:
MOV BX, 0 ; gn BX = 0
TiepTuc:
...
Thut gii:
Case AX Of
<0: BX := -1
=0: BX := 0
Else
BX := 1
End
589
d. iu kin cha AND
If <iu kin 1> AND <iu kin 2> Then <cng
vic>
Dng lnh:
CMP <so snh 1> ; suy ra t <iu kin 1>
JMP
ksai
BoQua
CMP <so snh 2> ; suy ra t <iu kin 2>
JMP
ksai
BoQua
<cng vic> ; thc hin <cng vic>
BoQua:
....

590
V d
c 1 k t, nu l ch ci hoa th hin th.
M lnh chng trnh:
MOV AH, 1 ; hm c k t
INT 21h ; AL cha k t c c
CMP AL, A ; so snh k t vi A
JB BoQua ; k t < A => BoQua
CMP AL, Z ; so snh k t vi Z
JA BoQua ; k t > Z => BoQua
MOV AH, 2 ; hm hin k t
MOV DL, AL ; DL cha k t cn hin
INT 21h ; hin k t trong DL
BoQua:
Thut gii:
c 1 k t (vo AL)
If (AL >= A) AND (AL <= Z) Then
Hin th k t trong AL
End
591
e. iu kin cha OR
If <iu kin 1> OR <iu kin 2> Then <cng
vic>
Dng lnh:
CMP <so snh 1> ; suy ra t <iu kin 1>
JMP
kng
ThucHien
CMP <so snh 2> ; suy ra t <iu kin 2>
JMP
kng
ThucHien
JMP BoQua
ThucHien:
<cng vic> ; thc hin <cng vic>
BoQua:
....
592
V d
c 1 k t, nu l 'y' hoc 'Y' th hin th li, nu
khng phi th thot chng trnh.
Thut gii:
c 1 k t (vo AL)
If (AL = y) OR (AL = Y) Then
Hin th k t trong AL
Else
Thot chng trnh
End
593
V d (tip)
M lnh chng trnh:
MOV AH, 1 ; hm c k t
INT 21h ; AL cha k t c c
CMP AL, y ; so snh k t vi y
JE HienThi ; k t = y => Hin th
CMP AL, Y ; so snh k t vi Y
JE HienThi ; k t = Y => Hin th
JMP Thoat ; cc TH khc => Thoat
HienThi:
MOV AH, 2 ; hm hin k t
MOV DL, AL ; DL cha k t cn hin
INT 21h ; hin k t trong DL
JMP TiepTuc ; tip tc
Thoat:
MOV AH, 4Ch ; thot khi chng trnh
INT 21h
TiepTuc:
594
3. Cu trc lp
Cc cu trc lp thng dng:
FOR <s ln lp> DO <cng vic>
REPEAT <cng vic> UNTIL <iu kin>
WHILE <iu kin> DO <cng vic>
595
a. Lnh lp FOR
FOR <s ln lp> DO <cng vic>
Dng lnh:
<Khi to CX = s ln lp>
; JCXZ BoQua ; nu CX = 0 th khng lp
VongLap:
<cng vic>
LOOP VongLap
BoQua:
596
V d
Hin th ra mn hnh 80 du '*'
M lnh:
MOV CX, 80 ; s k t cn hin
MOV AH, 2 ; hm hin k t
MOV DL, '*' ; k t cn hin l *
HienSao:
INT 21h ; hin k t
LOOP HienSao ; lp li 80 ln
597
b. Lnh lp REPEAT ... UNTIL
REPEAT <cng vic> UNTIL <iu kin>
Dng lnh:
VongLap:
<cng vic> ; thn vng lp
CMP <so snh> ; suy ra t <iu kin>
JMP
ksai
VongLap
598
V d 1
c vo cc k t cho n khi gp ENTER
M lnh:
MOV AH, 1 ; hm c k t
DocKiTu:
INT 21h ; c 1 k t vo AL
CMP AL, 13 ; k t l ENTER ?
JNE DocKiTu ; sai => lp tip

599
V d 2 REPEAT lng vi FOR
Hin th ra 5 dng, mi dng gm 50 du '*'
M lnh:
MOV BL, 5 ; s dng cn hin
HienDong:
MOV CX, 50 ; hin 50 du * trn 1 dng
MOV AH, 2 ; hm hin k t
MOV DL, '*' ; DL = k t cn hin
VietSao:
INT 21h ; gi hm hin k t trong DL
LOOP VietSao ; lp li cho n khi 50 '*'
MOV DL, 10 ; xung dng
INT 21h
MOV DL, 13 ; v u dng
INT 21h
DEC BL ; gim s dng cn phi hin tip
JNZ HienDong ; cha ht 5 dng => quay li
600
c. Lnh lp WHILE ... DO
WHILE <iu kin> DO <cng vic>
Dng lnh:
VongLap:
CMP <so snh> ; suy ra t <iu kin>
JMP
ksai
DungLap ; <iu kin> sai th dng
<cng vic> ; thc hin <cng vic>
JMP VongLap ; lp li
DungLap:
601
V d
Nhp 1 dng kt thc bng ENTER. m s k t
c nhp.
M lnh:
MOV DX, 0 ; khi to b m = 0
MOV AH, 1 ; hm c k t
DocKiTu:
INT 21h ; c 1 k t vo AL
CMP AL, 13 ; k t l ENTER ?
JE DungLap ; ng => DungLap
INC DX ; sai => tng b m ln 1
JMP DocKiTu ; lp li
DungLap:
602
Ni dung chng 5

5.1. M u v lp trnh hp ng
5.2. Cc cu trc lp trnh vi hp ng
5.3. Cc lnh logic, lnh dch v lnh quay
5.4. Ngn xp v th tc
5.5. Cc lnh nhn, chia
5.6. Cc lnh thao tc chui
5.7. Mt s v d
603
5.3. Cc lnh logic, dch v quay

1. Cc lnh logic
2. Cc lnh dch
3. Cc lnh quay
4. Vo-ra s nh phn v Hexa
604
1. Cc lnh logic
Cc php ton logic:






Cc lnh logic: AND, OR, XOR, NOT, TEST
a b
0 0
0 1
1 0
1 1
a AND b
0
0
0
1
a OR b
0
1
1
1
a XOR b
0
1
1
0
a NOT a
0 1
1 0
605
Cc lnh AND, OR v XOR
C php:
AND ch, ngun ; ch : ch AND ngun
OR ch, ngun ; ch : ch OR ngun
XOR ch, ngun ; ch : ch XOR ngun
TEST ch, ngun ; Php AND nhng khng thay i ch
Ch :
Ton hng ngun: hng s, thanh ghi hay ngn nh
Ton hng ch: thanh ghi hay ngn nh
Hai ton hng khng c ng thi l ngn nh
nh hng ti cc c:
SF, ZF, PF phn nh kt qu ca lnh
AF khng xc nh
CF = OF = 0
606
Cc v d
VD 1: i m ASCII ca 1 ch s thnh s tng ng.
Gi s AL cha k t (chng hn '5' m ASCII l 35h)
Cn chuyn AL v gi tr ch s (l 5)
Thc hin: SUB AL, 30h hoc AND AL, 0Fh
VD 2: i ch thng thnh ch hoa.
Gi s DL cha k t ch thng, cn chuyn v ch hoa.
Thc hin: SUB DL, 20h hoc AND DL, 0DFh
VD 3: Xa thanh ghi AX v 0.
Thc hin: XOR AX, AX
VD 4: Kim tra xem AX c bng 0 hay khng?
Thc hin: OR AX, AX ; AX = 0 ZF = 1
607
Lnh NOT
C php: NOT ch
Lnh ny khng nh hng n c
608
Lnh TEST
C php: TEST ch, ngun
Thc hin php ton AND nhng khng thay i
ch m ch cp nht cc c.
Cc c b tc ng:
SF, ZF, PF phn nh kt qu ca lnh
AF khng xc nh
CF = OF = 0
V d: Kim tra tnh chn l ca AL
AL chn bit LSB ca = 0
Thc hin: TEST AL, 1 ; AL chn ZF = 1
609
2. Cc lnh dch
Cc lnh dch v quay c 2 dng:
Dch (hoc quay) 1 v tr:
Lnh ch, 1
Dch (hoc quay) N v tr:
Lnh ch, CL ; vi CL = N

610
Cc lnh dch tri
Dch tri s hc (SAL Shift Arithmetically Left) v dch tri
logic (SHL Shift (Logically) Left):
SAL ch, 1 hoc SAL ch, CL
SHL ch, 1 hoc SHL ch, CL
Lnh SAL v SHL l tng ng
Tc ng vo cc c:
SF, PF, ZF phn nh kt qu
AF khng xc nh
CF cha bit cui cng c dch ra khi ch
OF = 1 nu kt qu b thay i du trong php dch cui cng
CF MSB LSB
0
Lnh SAL / SHL
611
Cc lnh dch phi
Dch phi logic: SHR Shift (Logically) Right
C php:
SHR ch, 1
SHR ch, CL
Cc c b tc ng nh l lnh dch tri
Minh ha:
0
CF MSB LSB
612
Cc lnh dch phi (tip)
Dch phi s hc: SAR Shift Arithmetically Right
C php:
SAR ch, 1
SAR ch, CL
Cc c b tc ng nh l lnh SHR
Minh ha:
CF MSB LSB
613
3. Cc lnh quay
Cc dng lnh quay:
ROL : quay tri
ROR : quay phi
RCL : quay tri qua c nh
RCR : quay phi qua c nh
Tc ng vo cc c:
SF, PF, ZF phn nh kt qu
AF khng xc nh
CF cha bit cui cng b dch ra khi ton hng
OF = 1 nu kt qu b thay i du trong ln quay cui
cng
614
Minh ha cc lnh quay
CF MSB LSB
Lnh ROL
CF MSB LSB
Lnh RCL
CF MSB LSB
Lnh ROR
CF MSB LSB
Lnh RCR
615
V d
Xc nh gi tr ca AX v BX di dng Hexa sau
khi thc hin on chng trnh sau:
MOV CX, 16
MOV AX, 5A6Bh
LAP:
ROL AX, 1
RCR BX, 1
LOOP LAP
616
4. Vo-ra s nh phn v Hexa
Cc thao tc:
Nhp s nh phn
In s nh phn
Nhp s Hexa
In s Hexa
617
a. Nhp s nh phn
c cc bit nh phn t bn phm (kt thc nhp
bng ENTER), chuyn thnh s nh phn ri lu
vo BX.
Thut gii:
Xa BX (l thanh ghi cha kt qu)
Nhp 1 k t ('0' hoc '1')
WHILE k t <> Enter DO
i k t ra gi tr nh phn
Dch tri BX
Chn gi tr nhn c vo bit LSB ca BX
Nhp k t
END WHILE
618
on lnh nhp s nh phn

XOR BX, BX ; Xa BX
MOV AH, 1 ; Hm nhp k t
INT 21h ; Nhp k t
NhapKyTu:
CMP AL, 13 ; L phm ENTER?
JE DungNhap ; ng kt thc nhp
AND AL, 0Fh ; Sai i ra gi tr nh phn
SHL BX, 1 ; Dnh ch cho bit mi tm c
OR BL, AL ; Chn bit ny vo cui BX
INT 21h ; Nhp tip k t khc
JMP NhapKyTu ; Lp li
DungNhap:
619
b. In s nh phn
In gi tr BX ra mn hnh di dng s nh phn.
Thut gii:
FOR 16 ln DO
Quay tri BX (bit MSB ca BX c a ra CF)
IF CF = 1 THEN
a ra '1'
ELSE
a ra '0'
END IF
END FOR
C th dng lnh ADC: ADC ch, ngun
ch : ch + ngun + CF
620
M lnh
MOV CX, 16 ; s bit cn hin
MOV AH, 2 ; hm hin k t
Print:
ROL BX, 1 ; quay tri BX CF = MSB
MOV DL, 0 ; DL = 0
ADC DL, 30h ; DL : 30h + CF
INT 21h ; in k t trong DL
LOOP Print ; lp li 16 ln
621
c. Nhp s Hexa
c cc k t Hexa t bn phm (ti a 4 ch s, ch nhp
cc ch s v cc ch ci hoa, kt thc nhp bng
ENTER). Chuyn thnh s Hexa tng ng ri lu vo BX.
Thut gii:
Xa BX (l thanh ghi cha kt qu)
Nhp k t Hexa
WHILE k t <> Enter DO
i k t ra nh phn
Dch tri BX 4 ln
Chn gi tr mi vo 4 bit thp nht ca BX
Nhp k t tip
END WHILE
622
on lnh nhp s Hexa
XOR BX, BX ; Xa BX
MOV CL, 4 ; S ln dch tri BX
MOV AH, 1 ; Hm nhp k t
INT 21h ; Nhp 1 k t AL = m ASCII
VongLap:
CMP AL, 13 ; K t va nhp l Enter?
JE KetThucLap ; ng Kt thc
CMP AL, '9' ; So snh vi '9'
JG ChuCai ; Ln hn l ch ci hoa
AND AL, 0Fh ; Khng ln hn i ch s ra nh phn
JMP ChenBit ; Ri chn vo cui BX
ChuCai:
SUB AL, 37h ; i ch ci ra gi tr nh phn
ChenBit:
SHL BX, CL ; Dch tri BX dnh ch cho c/s mi
OR BL, AL ; Chn ch s mi vo 4 bit thp ca BX
INT 21h ; Nhn tip k t t bn phm
JMP VongLap ; Lp li
KetThucLap:
623
d. In s Hexa
a gi tr Hexa 4 ch s trong BX ra mn hnh.
Thut gii:
FOR 4 ln DO
Chuyn BH vo DL (gi tr cn in nm trong BX)
Dch phi DL 4 v tr
IF DL < 10 THEN
i thnh k t '0' ... '9'
ELSE
i thnh k t 'A' ... 'F'
END IF
a k t ra
Quay tri BX 4 v tr
END FOR
624
M lnh
MOV CX, 4
MOV AH, 2
InHexa:
MOV DL, BH
SHR DL, 1
SHR DL, 1
SHR DL, 1
SHR DL, 1
CMP DL, 9
JA ChuCai
ADD DL, 30h
JMP TiepTuc
ChuCai:
ADD DL, 37h
TiepTuc:
INT 21h
ROL BX, 1
ROL BX, 1
ROL BX, 1
ROL BX, 1
LOOP InHexa
625
Ni dung chng 5

5.1. M u v lp trnh hp ng
5.2. Cc cu trc lp trnh vi hp ng
5.3. Cc lnh logic, lnh dch v lnh quay
5.4. Ngn xp v th tc
5.5. Cc lnh nhn, chia
5.6. Cc lnh thao tc chui
5.7. Mt s v d
626
Ngn xp v th tc

1. Ngn xp
2. Th tc
3. Cc v d
627
1. Ngn xp
Ngn xp (Stack):
Vng nh t chc theo cu trc LIFO dng ct gi
thng tin.
Chiu ca Stack t y ln nh ngc vi chiu tng
ca a ch.
Khai bo ngn xp: .STACK kich_thuoc
V d: .Stack 100h
Khi chng trnh c thc thi th:
SS : cha a ch on ngn xp
SP : cha a ch offset ca nh ngn xp. Ban u ngn xp
rng nn 0100h cng l a ch ca y ngn xp (=0100h).
628
Lnh PUSH v PUSHF
Lnh PUSH dng ct 1 d liu 16 bit vo trong
ngn xp.
C php: PUSH ngun
ngun l 1 thanh ghi 16 bit hoc 1 t nh (2 Byte)
Cc bc thc hin:
SP : SP 2
Mt bn sao ca ton hng ngun c chuyn vo a
ch xc nh bi SS:SP (ton hng ngun khng i)
Lnh PUSHF ct ni dung ca thanh ghi c vo
trong ngn xp.
629
V d v lnh PUSH
Xc nh ni dung cc Byte nh trong Stack.
.Stack 100h
...
Start: ; lnh u tin ca chng trnh
MOV AX, 1234h
MOV BX, 5678h
PUSH AX
PUSH BX

630
V d (tip)
y Stack 0100
00FF
00FE
00FD
00FC
0000
Offset
SP
.
.
.
y Stack
12h
34h
0100
00FF
00FE
00FD
00FC
0000
Offset
SP
.
.
.
y Stack
12h
34h
56h
78h
0100
00FF
00FE
00FD
00FC
0000
Offset
SP
.
.
.
Ban u Sau lnh PUSH AX Sau lnh PUSH BX
631
Lnh POP v POPF
Lnh POP dng ly ra 1 t d liu bt u t
nh ngn xp.
C php: POP ch
ch l 1 thanh ghi 16 bit (tr IP) hoc 1 t nh
Cc bc thc hin:
Ni dung ca t nh a ch xc nh bi SS:SP c
chuyn ti ton hng ch.
SP : SP + 2
Lnh POPF a vo thanh ghi c ni dung ca t
nh nh ngn xp.
632
V d v lnh POP
Xc nh ni dung cc Byte nh trong Stack.
.Stack 100h
...
Start: ; lnh u tin ca chng trnh
MOV AX, 1234h
MOV BX, 5678h
PUSH AX
PUSH BX
POP CX
POP DX

633
V d (tip)
y
12h
34h
56h
78h
0100
00FF
00FE
00FD
00FC
Offset
SP
.
.
.
Sau lnh PUSH BX
00FCh
0000
?
?
SP
CX
DX
y
12h
34h
56h
78h
0100
00FF
00FE
00FD
00FC
Offset
SP
.
.
.
Sau lnh POP CX
00FEh
0000
?
SP
CX
DX
y
12h
34h
56h
78h
0100
00FF
00FE
00FD
00FC
Offset
SP
.
.
.
Sau lnh POP DX
0100h
0000
SP
CX
DX
5678h 5678h
1234h
634
Mt s lu
Cc lnh PUSH, PUSHF, POP v POPF khng nh
hng n cc c.
Cc lnh trn ch thao tc vi cc WORD.
Cc lnh sau l khng hp l:
PUSH AH ; thanh ghi 8 bit
POP DL ; thanh ghi 8 bit
PUSH 2 ; gi tr hng s
635
Bi tp
D liu ca 1 chng trnh hp ng c khai bo di dng:
DATA SEGMENT
mem1 dw 500
mem2 dw -50
vec1 db 1, 2, 3, 4, 8, 7
vec2 db 10, 20, -10, -20, -30, -40
DATA ENDS

Hy xc nh ni dung ca DX (Hexa) sau khi thc hin on lnh sau:
push mem1
push mem2
mov bp, sp
mov dx, [bp]+2

a) FFCE b) 0000 c) 01F4 d) FFFF
636
Bi tp 2 (tip)
F4h
01h
CEh
FFh
01h
02h
mem1
mem2
vec1
03h
04h
08h
0
1
2
3
4
5
6
7
8
9
Offset
14h vec2
F6h
ECh
E2h
D8h
A
B
C
D
E
07h
y
01h
F4h
FFh
CEh
i
i-1
i-2
i-3
i-4
Offset
SP
.
.
.
0000
637
2. Th tc
Ngoi th tc chnh, ta c th khai bo v s dng
cc th tc khc.
Khai bo th tc:
Tn_th_tc PROC Kiu_th_tc
<Thn th tc>
RET
Tn_th_tc ENDP
Trong :
Tn_th_tc: do ngi lp trnh nh ngha
Kiu_th_tc:
NEAR : gi th tc trong cng 1 on
FAR : gi th tc on khc
638
Lnh CALL
L lnh gi chng trnh con (th tc)
Thng dng: CALL Tn_th_tc
Cc bc thc hin:
Th tc NEAR
SP SP 2
Ct ni dung ca IP (a ch quay v) vo Stack
Np a ch ca lnh u tin ca chng trnh con vo IP
Th tc FAR
SP SP 2
Ct ni dung ca CS vo Stack
SP SP 2
Ct ni dung ca IP vo Stack
Np vo CS v IP a ch u ca chng trnh con
639
Lnh RET
L lnh tr v t chng trnh con
Cc bc thc hin:
Tr v kiu NEAR
IP word nh nh Stack
SP SP + 2
Tr v kiu FAR (RETF)
IP word nh nh Stack
SP SP + 2
CS word nh tip
SP SP + 2
640
Truyn d liu gia cc th tc
Cc th tc ca hp ng khng c danh sch tham
s i km nh cc ngn ng lp trnh bc cao.
Ngi lp trnh phi ngh ra cch truyn d liu
gia cc th tc.
Cc cch truyn d liu thng dng:
Truyn qua thanh ghi
S dng bin ton cc
Truyn a ch ca d liu
S dng ngn xp (thng dng trong cc NNLT bc
cao)

641
3. Cc v d
VD1: Nhp 1 chui k t kt thc bi ENTER. Hin
chui k t vit theo th t ngc li dng tip
theo.
VD2: Ci t cc th tc vit s nh phn v s
Hexa ra mn hnh.
642
Ni dung chng 5

5.1. M u v lp trnh hp ng
5.2. Cc cu trc lp trnh vi hp ng
5.3. Cc lnh logic, lnh dch v lnh quay
5.4. Ngn xp v th tc
5.5. Cc lnh nhn, chia
5.6. Cc lnh thao tc chui
5.7. Mt s v d
643
5.5. Cc lnh nhn, chia

1. Cc lnh MUL v IMUL
2. Cc lnh DIV v IDIV
3. Vo-ra s thp phn
644
1. Cc lnh MUL v IMUL
C s khc nhau gia php nhn cc s khng du vi
php nhn cc s khc du.
Lnh nhn cho cc s khng du: MUL ngun
Lnh nhn cho cc s c du: IMUL ngun
Cc lnh trn lm vic vi byte (cho KQ l 1 word) hoc
word (cho KQ l 1 double word)
ngun (thanh ghi / ngn nh) c coi l s nhn, nu
ngun l gi tr:
8 bit: AX : AL x ngun
S b nhn l s 8 bit cha trong AL
Tch l s 16 bit cha trong AX
16 bit: DXAX : AX x ngun
S b nhn l s 16 bit cha trong AX
Tch l s 16 bit cha trong DXAX
645
nh hng n cc c
SF, ZF, AF, PF : khng xc nh
Sau lnh MUL:
CF = OF = 0 nu na cao ca kt qu = 0
CF = OF = 1 trong cc trng hp cn li
Sau lnh IMUL:
CF = OF = 0 nu na cao ca kt qu ch cha cc gi
tr ca du
CF = OF = 1 trong cc trng hp cn li
Ni cch khc, CF = OF = 1 ngha l kt qu qu
ln cha trong na thp (AL hoc AX) ca tch.
646
2. Cc lnh DIV v IDIV
Php chia khng du: DIV s_chia
Php chia c du: IDIV s_chia
Chia s 16 bit (trong AX) cho s chia 8 bit hoc
chia s 32 bit (trong DXAX) cho s chia 16 bit.
Thng v s d c cng kch thc vi s chia.
S chia 8 bit: AL cha thng, AH cha s d
S chia 16 bit: AX cha thng, DX cha s d
S d v s chia c cng du.
Nu s chia = 0 hoc thng nm ngoi khong
xc nh th BXL thc hin INT 0 (li chia cho 0).
Cc c khng xc nh sau php chia.
647
S m rng du ca s b chia
Trong php chia cho Word, s b chia c t
trong DXAX ngay c khi n c th cha va trong
AX. Khi DX phi c chun b nh sau:
Vi lnh DIV, DX phi c xa v 0.
Vi lnh IDIV, DX c lp y bng bit du ca AX.
Php bin i ny c thc hin bi lnh CWD.
Trong php chia cho Byte, s b chia c t
trong AX ngay c khi n c th cha va trong AL.
Khi AH phi c chun b nh sau:
Vi lnh DIV, AH phi c xa v 0.
Vi lnh IDIV, AH c lp y bng bit du ca AL.
Php bin i ny c thc hin bi lnh CBW.
648
3. Vo-ra s thp phn
Cc thao tc:
In s thp phn
Nhp s thp phn
649
a. In s thp phn
In s nguyn c du trong AX ra mn hnh di
dng s thp phn.
Thut gii:
IF AX < 0 THEN
In ra du ''
AX := s b 2 ca AX
END IF
Ly dng thp phn ca tng ch s trong AX
i cc ch s ny ra k t ri in ra mn hnh

650
In s thp phn (tip)
Ly dng thp phn ca tng ch s trong AX:
m := 0
REPEAT
Chia s b chia cho 10 ; s b chia ban u = AX
Ct s d vo trong Stack
m := m + 1
UNTIL Thng = 0
i cc ch s ra k t ri in ra mn hnh:
FOR m ln DO
Ly tng ch s t Stack
i ra k t
In k t ra mn hnh
END FOR
651
b. Nhp s thp phn
Thut gii (n gin):
Tng := 0
c 1 k t ASCII
REPEAT
i k t ra gi tr thp phn
Tng := Tng * 10 + gi tr nhn c
c k t
UNTIL k t va nhn = Enter
652
Ni dung chng 5

5.1. M u v lp trnh hp ng
5.2. Cc cu trc lp trnh vi hp ng
5.3. Cc lnh logic, lnh dch v lnh quay
5.4. Ngn xp v th tc
5.5. Cc lnh nhn, chia
5.6. Cc lnh thao tc chui
5.7. Mt s v d
653
5.6. Cc lnh thao tc chui

1. C nh hng
2. Chuyn mt chui
3. Lu k t vo chui
4. Np k t ca chui
5. Tm k t trong chui
6. So snh chui
7. Tng kt thao tc chui
654
1. C nh hng
C nh hng DF (Direction Flag) xc nh hng
cho cc thao tc chui.
Cc thao tc chui c thc hin thng qua 2
thanh ghi ch s SI v DI.
Nu DF = 0 th SI v DI c x l theo chiu tng
ca a ch b nh (t tri qua phi trong chui).
Nu DF = 1 th SI v DI c x l theo chiu gim
ca a ch b nh (t phi qua tri trong chui).
655
Cc lnh CLD v STD
Lnh CLD (Clear Direction Flag): xa c hng
CLD ; xa DF = 0
Lnh STD (Set Direction Flag): thit lp c hng
STD ; thit lp DF = 1
Cc lnh ny khng nh hng n cc c khc.
656
2. Chuyn mt chui
Bi ton: gi s c 2 chui c nh ngha nh
sau:
.DATA
STRING1 DB 'BACH KHOA'
STRING2 DB 9 DUP (?)
Cn chuyn ni dung ca chui STRING1 (chui
ngun) sang chui STRING2 (chui ch).
657
Cc lnh lin quan
Lnh: MOVSB (Move String Byte)
Chuyn 1 phn t 1 byte ca chui gc (tr bi DS:SI)
sang 1 phn t ca chui ch (tr bi ES:DI).
Sau khi thc hin:
SI v DI tng thm 1 nu c hng DF = 0 (dng lnh CLD)
SI v DI gim i 1 nu c hng DF = 1 (dng lnh STD)
Lnh: MOVSW (Move String Word)
Chuyn 1 phn t 1 word (2 byte) ca chui gc (tr bi
DS:SI) sang 1 phn t ca chui ch (tr bi ES:DI).
Sau khi thc hin:
SI v DI tng thm 2 nu c hng DF = 0 (dng lnh CLD)
SI v DI gim i 2 nu c hng DF = 1 (dng lnh STD)
658
Cc lnh lin quan (tip)
chuyn nhiu k t ta cn s dng cc lnh lp.
Lnh: REP <lnh thao tc k t>
Lp li lnh vit sau cho n khi CX = 0
Mi ln lp CX gim i 1 s ln lp phi gn trc vo
CX. V d:
MOV CX, 5
REP MOVSB ; chuyn 5 byte t chui ngun n chui ch
Lnh: REPE/REPZ <lnh thao tc k t>
Lp li lnh vit sau cho n khi CX = 0 hoc ZF = 0
Lnh: REPNE/REPNZ <lnh thao tc k t>
Lp li lnh vit sau cho n khi CX = 0 hoc ZF = 1
659
V d
MOV AX, @DATA
MOV DS, AX ; khi to DS
MOV ES, AX ; v ES u tr n on d liu DATA
LEA SI, STRING1 ; SI tr n chui ngun
LEA DI, STRING2 ; DI tr n chui ch
CLD ; Xa c hng
MOV CX, 9 ; S byte cn chuyn
REP MOVSB ; Chuyn 9 byte t STRING1 sang STRING2

660
Gii thch v d
'B' 'A' 'C' 'H' ' ' 'K' 'H' 'O' 'A' STRING1
Offset 0 1 2 3 4 5 6 7 8
SI
STRING2
Offset 9 10 11 12 13 14 15 16 17
DI
Trc khi thc hin cc lnh MOVSB
'B' 'A' 'C' 'H' ' ' 'K' 'H' 'O' 'A' STRING1
Offset 0 1 2 3 4 5 6 7 8
SI
'B' STRING2
Offset 9 10 11 12 13 14 15 16 17
DI
Sau khi thc hin lnh MOVSB th 1
'B' 'A' 'C' 'H' ' ' 'K' 'H' 'O' 'A' STRING1
Offset 0 1 2 3 4 5 6 7 8
SI
'B' 'A' STRING2
Offset 9 10 11 12 13 14 15 16 17
DI
Sau khi thc hin lnh MOVSB th 2
'B' 'A' 'C' 'H' ' ' 'K' 'H' 'O' 'A' STRING1
Offset 0 1 2 3 4 5 6 7 8
SI
'B' 'A' STRING2
Offset 9 10 11 12 13 14 15 16 17
DI
Sau khi thc hin lnh MOVSB th 9
18
'C' 'H' ' ' 'K' 'H' 'O' 'A'
661
3. Lu k t vo chui
Lnh: STOSB (Store String Byte from AL)
Chuyn ni dung thanh ghi AL sang 1 phn t (1 byte)
c tr bi ES:DI ca chui ch.
Sau khi thc hin:
DI tng thm 1 nu c hng DF = 0 (dng lnh CLD)
DI gim i 1 nu c hng DF = 1 (dng lnh STD)
Lnh: STOSW (Store String Word from AX)
Chuyn ni dung thanh ghi AX sang 1 phn t (2 byte)
c tr bi ES:DI ca chui ch.
Sau khi thc hin:
DI tng thm 2 nu c hng DF = 0 (dng lnh CLD)
DI gim i 2 nu c hng DF = 1 (dng lnh STD)
662
V d 1
Lu 5 k t 'A' vo u chui STRING2
MOV AX, @DATA
MOV ES, AX ; ES tr n on d liu DATA
LEA DI, STRING2 ; ES:DI tr n u chui STRING2
CLD ; Xa c hng
MOV CX, 5 ; S k t cn lu
MOV AL, 'A' ; K t cn lu vo chui
REP STOSB ; Lp lu 5 ln k t 'A' vo STRING2
663
V d 2
Nhp cc k t t bn phm ri lu vo chui STRING cho
n khi nhp 20 k t hoc gp phm ENTER.
MOV AX, @DATA
MOV ES, AX ; ES tr n on d liu DATA
LEA DI, STRING ; ES:DI tr n u chui STRING
CLD ; Xa c hng
MOV CX, 20 ; S k t ti a c nhp t bn phm
XOR BX, BX ; Khi to s k t c nhp ban u = 0
MOV AH, 1 ; Hm nhp k t t bn phm
DocKiTu:
INT 21h ; Nhp 1 k t AL cha m ASCII ca k t
CMP AL, 13 ; L phm ENTER ?
JZ DungNhap ; Dng nhp
STOSB ; Nu khng phi th lu AL vo chui STRING
INC BX ; Tng s m s k t c nhp
LOOP DocKiTu ; Lp li (ti a 20 ln)
DungNhap:
664
4. Np k t ca chui
Lnh: LODSB (Load String Byte into AL)
Chuyn 1 phn t (1 byte) c tr bi DS:SI ca chui
ngun vo thanh ghi AL.
Sau khi thc hin:
SI tng thm 1 nu c hng DF = 0 (dng lnh CLD)
SI gim i 1 nu c hng DF = 1 (dng lnh STD)
Lnh: LODSW (Load String Word into AX)
Chuyn 1 phn t (2 byte) c tr bi DS:SI ca chui
ngun vo thanh ghi AX.
Sau khi thc hin:
SI tng thm 2 nu c hng DF = 0 (dng lnh CLD)
SI gim i 2 nu c hng DF = 1 (dng lnh STD)
665
V d
Gi s STR1 v STR2 l cc chui c di l 40 k t. Vit on chng trnh
chuyn cc k t ch hoa t STR1 sang STR2.
MOV AX, @DATA
MOV DS, AX ; khi to DS
MOV ES, AX ; v ES u tr n on d liu DATA
LEA SI, STR1 ; SI tr n chui ngun STR1
LEA DI, STR2 ; DI tr n chui ch STR2
CLD ; Xa c hng
MOV CX, 40 ; S k t ca STR1 cn xt ( di xu STR1)
XOR BX, BX ; Khi to s k t thc s c chuyn ban u = 0
VongLap:
LODSB ; Np 1 k t ca STR1 vo AL
CMP AL, 'A' ; Nu AL < 'A' khng phi l ch hoa
JB LapTiep ; th xt k t tip theo
CMP AL, 'Z' ; Nu AL > 'Z' khng phi l ch hoa
JA LapTiep ; th xt k t tip theo
STOSB ; Nu AL l ch ci hoa th ct vo chui STR2
INC BX ; Tng s m s ch ci hoa
LapTiep:
LOOP VongLap ; Lp li, xt k t tip theo ca STR1
666
5. Tm k t trong chui
Lnh: SCASB (Scan String Byte)
Tr th ni dung ca AL cho 1 byte ch ang c tr
bi ES:DI, khng thay i gi tr AL m ch cp nht c.
Sau khi thc hin:
DI tng thm 1 nu c hng DF = 0 (dng lnh CLD)
DI gim i 1 nu c hng DF = 1 (dng lnh STD)
Lnh: SCASW (Scan String Word)
Tr th ni dung ca AX cho 1 word ch ang c tr
bi ES:DI, khng thay i gi tr AX m ch cp nht c.
Sau khi thc hin:
DI tng thm 2 nu c hng DF = 0 (dng lnh CLD)
DI gim i 2 nu c hng DF = 1 (dng lnh STD)
667
V d 1
Cho 1 chui c khai bo nh sau:
.DATA
STRING1 DB 'ABC'
Kho st on chng trnh sau:
MOV AX, @DATA
MOV ES, AX
CLD
LEA DI, STRING1
MOV AL, 'B'
SCASB
SCASB
668
V d 1 (tip)
'A' 'B' 'C' STRING1
Offset 0 1 2
DI
'B'
AL
?
ZF
Trc khi thc hin lnh SCASB
'A' 'B' 'C' STRING1
Offset 0 1 2
DI
'B'
AL
0
ZF
Sau khi thc hin lnh SCASB th 1
'A' 'B' 'C' STRING1
Offset 0 1 2
DI
'B'
AL
1
ZF
Sau khi thc hin lnh SCASB th 2
(Khng xc nh)
(Khng thy)
(Tm thy)
669
V d 2
Tm ch ci 'A' u tin trong chui STRING2 c di 40
k t.
on chng trnh:
MOV AX, @DATA
MOV ES, AX ; ES tr n on d liu
CLD ; Xa c hng
LEA DI, STRING2 ; ES:DI tr n chui ch STRING2
MOV CX, 40 ; di chui STRING2
MOV AL, 'A' ; AL cha k t cn tm
REPNE SCASB ; Tm cho n khi thy hoc CX=0
Ra khi on chng trnh:
Nu ZF = 1 th ES:[DI-1] l k t 'A' u tin tm thy
Nu ZF = 0 th trong chui STRING2 khng cha k t 'A'
670
6. So snh chui
Lnh: CMPSB (Compare String Byte)
Tr th 1 byte a ch DS:SI cho 1 byte a ch
ES:DI, kt qu khng c lu li m ch cp nht c.
Sau khi thc hin:
SI, DI tng thm 1 nu c hng DF = 0 (dng lnh CLD)
SI, DI gim i 1 nu c hng DF = 1 (dng lnh STD)
Lnh: CMPSW (Compare String Word)
Tr th 1 word a ch DS:SI cho 1 word a ch
ES:DI, kt qu khng c lu li m ch cp nht c.
Sau khi thc hin:
SI, DI tng thm 2 nu c hng DF = 0 (dng lnh CLD)
SI, DI gim i 2 nu c hng DF = 1 (dng lnh STD)
671
V d
Cho 2 chui c khai bo nh sau:
.DATA
STRING1 DB 'ABC'
STRING2 DB 'ACB'
Kho st on chng trnh sau:
MOV AX, @DATA
MOV DS, AX
MOV ES, AX
CLD
LEA SI, STRING1
LEA DI, STRING2
CMPSB
CMPSB
CMPSB
672
V d (tip)
'A' 'B' 'C' STRING1
Offset 0 1 2
SI
?
ZF
SF
Trc lnh CMPSB th 1
'A' 'C' 'B' STRING2
Offset 3 4 5
DI
?
'A' 'B' 'C' STRING1
Offset 0 1 2
SI
1
ZF
SF
Sau lnh CMPSB th 1
'A' 'C' 'B' STRING2
Offset 3 4 5
DI
0
'A' 'B' 'C' STRING1
Offset 0 1 2
SI
0
ZF
SF
Sau lnh CMPSB th 2
'A' 'C' 'B' STRING2
Offset 3 4 5
DI
1
'A' 'B' 'C' STRING1
Offset 0 1 2
DI
0
ZF
SF
Sau lnh CMPSB th 3
'A' 'C' 'B' STRING2
Offset 3 4 5
SI
0
673
7. Tng kt thao tc chui
Lnh
Ton hng
ngun
Ton hng
ch
Dng byte Dng word
Chuyn chui
Lu k t vo
chui
Np k t ca
chui
Tm k t trong
chui
So snh chui
(Khng lu KQ)
ES : DI DS : SI MOVSB MOVSW
ES : DI AL hay AX STOSB STOSW
AL hay AX DS : SI LODSB LODSW
ES : DI AL hay AX SCASB SCASW
ES : DI DS : SI CMPSB CMPSW
674
Ni dung chng 5

5.1. M u v lp trnh hp ng
5.2. Cc cu trc lp trnh vi hp ng
5.3. Cc lnh logic, lnh dch v lnh quay
5.4. Ngn xp v th tc
5.5. Cc lnh nhn, chia
5.6. Cc lnh thao tc chui
5.7. Mt s v d
675
5.7. Mt s v d
Bi tp 1:
c 1 chui k t t bn phm cho n khi gp phm
ENTER.
Hin cc k t va nhp theo chiu ngc li.
Bi tp 2:
Nhp ni dung chui STR1 c ti a 40 k t t bn
phm. Qu trnh nhp kt thc khi gp phm ENTER.
Duyt qua chui STR1, chuyn cc k t ch hoa sang
chui STR2.
Hin th ni dung chui STR2 ra mn hnh.
676
Mt s v d (tip)
Bi tp 3: Dng vng lp hin th ra hnh v sau:




Bi tp 4: Dng vng lp hin th ra hnh v sau:
*
**
***
****
*****
*
***
*****
*******
*********

You might also like