DuyTan University Assembly Language Programming
CHNG 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 HM
Hnh/phân
Hbát phân
Hth2pphân
Hth2p l3cphân
Nguyen Van Tho Duy Tan University.
CHUY!NIGI"ACÁC HM
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ý tS bXng mã ASCII
MZi tSU\]cmã hóa b_ng 1 s21byte
tShiFnth`:0..9,A..Z, kí tSUccbidt#,$ …
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ŒXLÝ (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
chs
Các thanh ghi
o n 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 chaAX (accumulator): chBa kDtquFcGacác
phép tính. KDtquF8bit JKLc chBatrong AL
Thanh ghi csBX (base): chBaJ/achMcNsO
Thanh ghi U’mCX (count): 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 dliduDX (data): 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 thRkhông ch$yJKLctrên
máy tính có bxlý thAp hNn.
Nguyen Van Tho Duy Tan University.
2-9
”ACHVTLÝ Ô NH
00000H
00001H
00002H
FFFFFH
FFFFEH
8bit
Mgi ô nhhtrong b
nhhJKLcn cho 1
J/achM20bit. ólà J/a
chMv2t
Mgi ô nhhchMcó 1
J/achMv2tlý duy nhAt.
Không có 2 ô nhhnào
cùng J/a chMv2t
DuyTan University Assembly Language Programming
Nguye n Van Tho – Duy Tan University.
2-10
”ACHLOGIC Ô NH
Chia bVnh˜thành nhihuUoBn
MZiUoBn64KB
Hai UoBnliên tipcách nhau 16
byte
MZiUoBnU\]cgán cho 1 g tr`
gšiU`ach UoBn(Segment)
Trong mZiUoBnc ô nh˜U\]c
Uánh 1 s2thtStœ0000h –
FFFFh gšiU`acht\•ng U2i
(Offset)
Segment : Offset gšiU`ach
logic
o$n0005h (Segment)
Ônhh0000h (Offset)
ÔnhhFFFFh (Offset)
0005 : FFFFh
0005h:0000h
Nguyen Van Tho Duy Tan University.
2-11
”ACHVTLÝ & ”ACHLOGIC
Quan hdgiaU`achvžtlý và U`achlogic
”ACHVTLÝ = SEGMENT x 10H + OFFSET
d3:
/a chMlogic : A4FBh : 4872h
/a chMlogic : A4FBh x 10h + 4872h = A9822h
Nguyen Van Tho Duy Tan University.
2-12
”ACHVTLÝ & ”ACHLOGIC
Các UoBnchŸng nhau
1U`achvžtlý có nhihu
U`achlogic
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
ChaU`ach UoBn(Segment)
CS
DS
ES
SS
16bit
o$n
o$n dYliu
o$nthêm
o$nngn xDp
Nguyen Van Tho Duy Tan University.
2-14
THANH GHI CON TR &CHS¡
ChaU`achldch (offset)
Con tr¢ldnh IP (instruction pointer): chaU`a chldnh tiptheo trong UoBn
mã ldnh CS.
CS:IP
Con tr¢csBP (Base Pointer): chaU`a chc£a dlidutrong UoBnng¤n
xpSS hocccác UoBn khác
SS:BP
Con tr¢ng¤n xpSP (Stack Pointer): chaU`a chhidn th¥i c£aU›nh ng¤n
xp
SS:SP
Chs2nguŸnSI (Source Index): chaU`a chdlidunguŸntrong UoBn d
liduDS trong các ldnh chuZi
DS:SI
Chs2 Uích (Destination Index): chaU`a chdliduUích trong UoBn dlidu
DS trong các ldnh chuZi
DS:DI
SI và DI có thFU\]c sNdOng nh\thanh ghi Ua n¤ng
80386 trlê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 ktquX 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 ktquXb_ng 0
ShoccSF (Sign flag): SF=1 khi ktquXâm
OhoccOF (Overflow flag): c¥tràn OF=1 khi ktquX mVt s2v\]tra
ngoài gi˜i hBnbiFudiGn c£a trong khi thSchidnphép toán cVng trœ
s2 d<u
1021514
CPAZSTIDO