
DuyTan University Assembly Language Programming
CHNG 1
TCHC CAMÁY
TÍNH PC-IBM
Nguyn VnTh
Bmôn in tvinthông
Khoa Công nghthông tin, $i hcDuy Tân – 2008
I HCDUY TÂN
KHOA CÔNG NGHTHÔNG TIN
Nguyen Van Tho – Duy Tan University.
CÁC H M
Hnh/phân
Hbát phân
Hth2pphân
Hth2p l3cphân
Nguyen Van Tho – Duy Tan University.
CHUY!NIGI"ACÁC H M
BINHEX
HEXBIN
DECBIN
BINDEC
1111F15011177
1110E14011066
1101D13010155
1100C12010044
1011B11001133
1010A10001022
100199000111
100088000000
BINHEXDECBINHEXDEC

DuyTan University Assembly Language Programming
Nguye n Van Tho – Duy Tan University.
TCHC LUTR"D"LIU CAMÁY TÍNH
•S2nguyên không d<u :
•1byte : phBmvi biFudiGn [ 0,255]
•2byte : phBmvi biFudiGn[0,65536]
•S2nguyên có d<u :
•sNdOng 1 bit là bit d<u
•1byte : phBmvi biFudiGn [ -127,+128]
•2byte : phBmvi biFudiGn[-32767,+32768]
•S2thSc
•S2d<uch<m tTnh
•S2d<uch<mUVng
•Ký tSvà bXng mã ASCII
•MZikí tSU\]cmã hóa b_ng 1 s21byte
•Kí tShiFnth`:0..9,A..Z, kí tSUccbidt#,$ …
•Kí tS UihukhiFn : UihukhiFnxu2ng dòng, …
Nguyen Van Tho – Duy Tan University.
BkNG MÃ ASCII
w77119c6399O4F79;3B5927391319
v76118b6298N4E78:3A58&26381218
u75117a6197M4D7793957%25371117
t741166096L4C7683856$24361016
s73115_5F95K4B7573755#2335F15
r72114^5E94J4A7463654"2234E14
q71113]5D93I497353553!2133D13
p70112\5C92H4872434522032C12
o6F111[5B91G4771333511F31B11
n6E110Z5A90F4670232501E30A10
m6D109Y5989E4569131491D2999
l6C108
X5888
D4468
03048
1C28
8
8
7F127
k6B107
W5787
C4367
/
2F47
1B27
7
7
~7E126
j6A106
V5686
B4266
.2E46
1A26
6
6
}7D125
i69105
U5585
A4165
-2D45
1925
5
5
|7C124
h68104
T5484
@4064
,2C44
1824
4
4
{7B123g67103S5383?3F63+2B43172333
z71122f66102R5282>3E62*2A42162222
y79121e65101Q5181=3D61)2941152111
x78120d64100P5080<3C60(2840142000
CH
A
R
H
E
X
D
E
C
CH
A
R
H
E
X
D
E
C
CH
A
R
H
E
X
D
E
C
CH
A
R
H
E
X
D
E
C
CH
A
R
H
E
X
D
E
C
CH
A
R
H
E
X
D
E
C
CH
A
R
H
E
X
D
E
C
Nguyen Van Tho – Duy Tan University.
2-6
BŒX•LÝ (CPU) CAMÁY IBM-PC
CS
DS
ES
IP
BX
AX
CX
DX
SP
BP
DI
SI SS
ALU
Khiiu
khin
ca EU
Logic
iukhin
bus
Các thanh
ghi a nng
Các thanh ghi
con tr
và chs
Các thanh ghi
o n và con tr
l"nh
Các thanh ghi t mth$i
Thanh ghi c$
Hàng 'i l"nh
Bus ngoài
Bus trong caCPU
16 bit d-li"u
20 bit 0ach
bus 0ach
20 bit
EU BIU
Bus d-li"u
ALU 16 bit

DuyTan University Assembly Language Programming
Nguye n Van Tho – Duy Tan University.
2-7
THANH GHI D"LIU
AX ALAH
BX BLBH
CX CLCH
DX DLDH
8bit cao 8 bit thAp
Thanh ghi ch•aAX (accumulator): chBa kDtquFcGacác
phép tính. KDtquF8bit JKLc chBatrong AL
Thanh ghi c•s‘BX (base): chBaJ/achMcNsO
Thanh ghi U’mCX (count): dùng JR chBa sSlTn lUptrong các
lnh lUp(Loop). CL JKLcdùng JR chBa sSlTn d/ch hoUcquay
trong các lnh d/ch và quay thanh ghi
Thanh ghi d“liduDX (data): cùng AX chBa dYliutrong các
phép tính nhân chia sS16 bit. DX còn JKLcdùng JR chBaJ/a
chMc[ng trong các lnh vào ra dYliutr\ctiDp(IN/OUT)
Nguyen Van Tho – Duy Tan University.
2-8
THANH GHI D"LIU
EAX ALAH
EBX BLBH
ECX CLCH
EDX DLDH
16 bit cao 16 bit thAp
•8088/8086 Dn80286 : 16 bits
•80386 trOlên: 32 bits EAX, EBX, ECX, EDX
Fm bFotính tKNng thích ngKLc : các chKNng trình viDtcho
8088/8086 vanch$yJKLctrên các bxlý 80386 hoUccao
hNn
Các chKNng trình viDtcho 80386 có thRkhông ch$yJKLctrên
máy tính có bxlý thAp hNn.
Nguyen Van Tho – Duy Tan University.
2-9
”ACH•V–TLÝ Ô NH—
00000H
00001H
00002H
FFFFFH
FFFFEH
8bit
Mgi ô nhhtrong b
nhhJKLcgán cho 1
J/achM20bit. ólà J/a
chMv2tlý
Mgi ô nhhchMcó 1
J/achMv2tlý duy nhAt.
Không có 2 ô nhhnào
cùng J/a chMv2tlý

DuyTan University Assembly Language Programming
Nguye n Van Tho – Duy Tan University.
2-10
”ACH•LOGIC Ô NH—
•Chia bVnh˜thành nhihuUoBn
•MZiUoBn64KB
•Hai UoBnliên ti’pcách nhau 16
byte
•MZiUoBnU\]cgán cho 1 giá tr`
gšilà U`ach› UoBn(Segment)
•Trong mZiUoBncác ô nh˜U\]c
Uánh 1 s2th•tStœ0000h –
FFFFh gšilà U`ach›t\•ng U2i
(Offset)
Segment : Offset gšilà U`ach›
logic
o$n0005h (Segment)
Ônhh0000h (Offset)
ÔnhhFFFFh (Offset)
0005 : FFFFh
0005h:0000h
Nguyen Van Tho – Duy Tan University.
2-11
”ACH•V–TLÝ & ”ACH•LOGIC
Quan hdgi“aU`ach›vžtlý và U`ach›logic
”ACH•V–TLÝ = SEGMENT x 10H + OFFSET
Ví d3:
/a chMlogic : A4FBh : 4872h
/a chMlogic : A4FBh x 10h + 4872h = A9822h
Nguyen Van Tho – Duy Tan University.
2-12
”ACH•V–TLÝ & ”ACH•LOGIC
Các UoBnchŸng nhau
1U`ach›vžtlý có nhihu
U`ach›logic
o$n0000h
o$n0001h
o$n0002h
16byte 00000h
00010h
00020h
0FFFFh
1FFFFh
2FFFFh
FFFFFh

DuyTan University Assembly Language Programming
Nguye n Van Tho – Duy Tan University.
2-13
THANH GHI ON
Ch•aU`ach› UoBn(Segment)
CS
DS
ES
SS
16bit
o$nmã
o$n dYliu
o$nthêm
o$nngn xDp
Nguyen Van Tho – Duy Tan University.
2-14
THANH GHI CON TR &CH•S¡
Ch•aU`ach›ldch (offset)
•Con tr¢ldnh IP (instruction pointer): ch•aU`a ch›ldnh ti’ptheo trong UoBn
mã ldnh CS.
CS:IP
•Con tr¢c•s‘BP (Base Pointer): ch•aU`a ch›c£a d“lidutrong UoBnng¤n
x’pSS hocccác UoBn khác
SS:BP
•Con tr¢ng¤n x’pSP (Stack Pointer): ch•aU`a ch›hidn th¥i c£aU›nh ng¤n
x’p
SS:SP
•Ch›s2nguŸnSI (Source Index): ch•aU`a ch›d“lidunguŸntrong UoBn d“
liduDS trong các ldnh chuZi
DS:SI
•Ch›s2 Uích (Destination Index): ch•aU`a ch›d“liduUích trong UoBn d“lidu
DS trong các ldnh chuZi
DS:DI
•SI và DI có thFU\]c sNdOng nh\thanh ghi Ua n¤ng
•80386 tr‘lên 32 bit: EIP, EBP, ESP, EDI, ESI
Nguyen Van Tho – Duy Tan University.
2-15
THANH GHI C¦
9bit U\]c sNdOng, 6 c¥trBng thái:
•Cho¤cCF (carry flag)): CF=1 khi có nh˜hocc m\]n tœMSB
•PhoccPF (parity flag): PF=1 (0) khi t§ng s2bít 1 trong k’tquXlà ch¨n
(l©)
•AhoccAF (auxilary carry flag): c¥nh˜phO,AF=1 khi có nh˜hocc
m\]n tœmVt s2BCD th<psang BCD cao
•ZhoccZF (zero flag): ZF=1 khi k’tquXb_ng 0
•ShoccSF (Sign flag): SF=1 khi k’tquXâm
•OhoccOF (Overflow flag): c¥tràn OF=1 khi k’tquXlà mVt s2v\]tra
ngoài gi˜i hBnbiFudiGn c£anó trong khi thSchidnphép toán cVng trœ
s2có d<u
1021514
CPAZSTIDO