Professional Documents
Culture Documents
4/4/2006
MUC TIEU
:
1. Kham pha b mat ben trong may tnh. 2.Trang b nhng kien thc c ban ve cau truc tong quat cua may tnh cung nh cac thanh phan cau tao nen may tnh. 3. Na m c cach hoat ong,cach giao tip cua cac thanh phan cau tao nen may tnh. 4. Biet viet 1 chng trnh bang Assembly dch lien ket va thc thi chng trnh nay. 5. Biet lap trnh x ly n gin phan cng, lap trnh he thong . 6. Cc khi nim c bn v virus TH - nghin cu cc k thut ly lan ca virus tin hc
4/4/2006 Chuong 1 CU TRC TNG QUT CA HTMT 2
4/4/2006
4/4/2006
4/4/2006
cng mn hc
Chng 1 : T chc tng qut ca h thng MT Chng 2 : T chc CPU Chng 3 : Mc logic s Chng 4 : T chc b nh Chng 5 : Xut nhp Chng 6 : Lp trnh Assembly Tp lnh Chng 7 : Cu trc iu khin & Vng lp Chng 8 : Macro & Procedure nhng CT Assembly vo ngn ng cp cao nh C Chng 9 : Lp trnh x l mn hnh-bn phm-mouse. Chng 10 : Lp trnh x l File Chng 11 : Cc khi nim c bn v Virus tin hc phn tch cc k thut ly lan chung ca VR tin hc v ly lan trn mng. Chuong 1 CU TRC TNG
4/4/2006 QUT CA HTMT 6
4/4/2006
Mc tiu :
Nm c tng quan v cu trc my tnh. Hiu v My Turing & Nguyn l Von Neumann Bit s khi chi tit ca my tnh Nam nguyn l hot ng my tnh Bit cc component ca my tnh : Processors,Memory,Input/Output devices,Bus
4/4/2006
Chng 1
Tong quan ve cau truc may tnh. Mo hnh may Turing Nguyen ly Von Neumann. S o tong quat cua mot may tnh. Nguyen ly hoat ong cua may tnh Cau hoi on tap
Chuong 1 CU TRC TNG QUT CA HTMT
4/4/2006
4/4/2006
10
4/4/2006
11
2+3/4*3-5=? . .. .
4/4/2006
12
The system bus (shown in yellow) connects the various components of a computer. The CPU is the heart of the computer, most of computations occur inside the CPU. RAM is a place to where the programs are loaded in order to be executed.
4/4/2006 Chuong 1 CU TRC TNG QUT CA HTMT 13
M hnh Turing :
M hnh ny rt n gin nhng n c tt c cc c trng ca 1 h thng my tnh sau ny. Nguyn l cu to my Turing : u c ghi khi x l cha tp hu hn cc trng thi
Si
Chuong 1 CU TRC TNG QUT CA HTMT
4/4/2006
14
Nguyn l xy dng MT
MT in t lm vic theo hai nguyn l c bn : nguyn l s v nguyn l tng t. Nguyn l s s dng cc trng thi rI rc ca 1 I lng vt l biu din s liu nguyn l m. Nguyn l tng t s dng 1 I lng vt l bin I lin tc biu din s liu nguyn l o
4/4/2006
15
Mch in trong MT
Trong MT c nhng loI mch in no ? Mch t hp : l mch in c trng thi ng ra ph thuc tc thI vo t hp ca trng thi ng vo. Ex : Mch giI m a ch Mch tun t : l mch in thc hin 1 mc ch m trng thi ng ra ph thuc vo t hp ca trng thi ng vo v trng thi ca qu kh ng vo. Ex : mch cng, tr, nhn , chia
4/4/2006
16
Nguyn l Turing
khi x l u c ghi cha tp hu hn cc trng thi Bng d liu v hn, d liu kt thc l b
Si
Sj
My lm vic theo tng bc ri rc. Mt lnh ca my nh sau : qiSiSjXqj. Ngha l : u c ghi ang Si th s ghi Sj vo hin ti v dch chuyn hoc ng yn theo ch th l X v trng thi hin hnh ca my l qj
4/4/2006 Chuong 1 CU TRC TNG QUT CA HTMT 17
Th d my Turing
Xt th d my Turing thc hin php ton NOT trn chui cc bit 0/1.Chui d liu nhp ban au l 10 tp cc k hiu ca my {0,1} tp cc trng thi trong {q0, q1} tp lnh gm 3 lnh : q001Rq0 , q010Rq0 , q0bbNq1 q0 Ban u 0 Dng q0
Chuong 1 CU TRC TNG QUT CA HTMT Kt
q0
b q1
19
4/4/2006
qu 01
Nguyn l VonNeumann
My Von Neumann l m hnh ca cc my tnh hin i. Nguyn l ca n nh sau : V mt logic (chc nng) , my gm 3 khi c bn : n v x l, b nh v h thng xut nhp. B nh nh B Trao i thng tin iu khin H xut nhp data
4/4/2006
nv v x l l n x
chng trnh
Chuong 1 CU TRC TNG QUT CA HTMT 20
Nguyn l Von Neumann (cont) Chng trnh iu khin x l d liu cng c xem l data v c lu tr trong b nh gi l chng trnh lu tr. B nh chia lm nhiu , mi c 1 a ch (nh s th t) c th chn la nh trong qu trnh c ghi d liu. (nguyn l nh a ch)
4/4/2006
21
Nguyn l Von Neumann (cont) Cc lnh c thc hin tun t nh 1 b m chng trnh (thanh ghi lnh) nm bn trong n v x l.
4/4/2006
22
A L U
4/4/2006
23
Nguyn l hot ng MT
CPU CPU
nh ccll nh Phntch tchll nh Phn nh Th thill nh Th ccthi nh
B nh nh chnh chnh B
Lutr tr thng thngtin tin Lu Nich ch ach ch ngtrnh trnh Ni a ng CPU CPU vth th thi ccv ccthi
Kh xu nh p Kh ii xu tt nh p
Giaoti ti pv v mitr tr ngbn bnngoi ngoi Giao p iimi ng nh pd d li li u,b b nh nh ph ph xu ttnh p u, xu
4/4/2006 Chuong 1 CU TRC TNG QUT CA HTMT 24
Registers
Main Memory . .
I/O Devices
Disk Printer
Bus
Bus
4/4/2006 Chuong 1 CU TRC TNG QUT CA HTMT 25
Bus
Php ton: s hc, lun l, so snh, dch, quay,x l bit. MI php ton cho 4/4/2006 2 kt qu
26
Tng kt chng
My tnh c thit k trn tng ca My Turing v nguyn l Von Neumann. V mt chc nng my tnh gm 3 phn : n v x l, b nh chnh v cc thit b xut nhp.
4/4/2006
27
Cu hi
Cu 1: Trnh by nguyn l Von Neumann. Cu 2: Cho bit s khc nhau gia m hnh Turing v m hnh VonNeumann. Cu 3: Trnh by nguyn l hot ng ca My Turing. Cu 4: Truc khi c nguyn l Von Neumann, chng trnh my tnh thc hin c u? Cu 5 : Cho bit kt qu ca 2+3 ?
4/4/2006
28
2.1 Gii thiu h thng s 2.2 B x l trung tm CPU 2.3 H thng Bus 2.4 B thanh ghi 2.5 C ch nh v a ch 2.6 Cc c tnh thit k lin quan n hiu sut CPU h Intel 2.7 Cc c trng ca CPU h Intel 2.8 Cu hi n tp
Chuong 2 : T chc CPU 2
2.1 H thng s
H m nh phn bt phn thp phn thp lc phn C s 2 8 10 16 s k s 2 8 10 16 dng k s v k t biu din s
0 1
Ex : 1010b Ex : 24o
01234567
H thng s
H thng s l g ? Vo thI im , vic dng cc que m l 1 tng v i!! Cn vic dng cc k hiu thay cho cc que m cn v i hn!!!! Mt trong cc cch biu din 1 s hin nay l s dng h thng s m decimal. C nhiu cch biu din 1 gi tr s. Ngy xa, con ngidng cc que m sau hc v cc hnh trn mtt v trn giy. th d s 5 ln u c biu din bng | | | | | (bng 5 que). Sau ch s La M bt u dng cc k hiu khc nhau biu din nhiu s gn hn. Th d s 3 vn biu din bI 3 que | | | nhng s 5 th c thay bng V cn s 10 th thay bng X.
H thng s
S dng que m l 1 ngha v I thi im ny.V vic dng cc k hiu thay cho cc que m cng v i hn!!!.
Mt trong nhng cch tt nht hin nay l dng h thng s thp phn (decimal system).
Decimal System
Con ngi ngy nay dng h 10 m.Trong h 10 c 10 digits 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Nhng k s ny c th biu din bt k 1 gi tr no, th d : 754
Binary System
on and off, or 1 and 0. MT dng binary system, binary system c 2 digits: 0, 1 Nh vy c s (base) l 2. Mi k s (digit) trong h binary number c gi l BIT, 4 bits nhm thnh 1 NIBBLE, 8 bits to thnh 1 BYTE, 2 bytes to thnh 1 WORD, 2 words to thnh 1 DOUBLE WORD (t dng):
Hexadecimal System
Hexadecimal System Hexadecimal System dng 16 digits: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F do c s (base) l 16. Hexadecimal numbers are compact and easy to read. Ta d dng bin I cc s t binary system sang hexadecimal system and v ngc li, mi nibble (4 bits) c th bin thnh 1 hexadecimal digit : Ex : 1234h = 4660d
: 0- 0=0
0 - 1 = 1 mn 1 1 0 = 1 1- 1=0
Nhn : c th coi l php cng lin tip Chia : c th coi l php tr lin tip
10
A and B 0 0 0 1
A or B 0 1 1 1
A xor B 0 1 1 0
Not A
0 0 1 1
0 1 0 1
1 1 0 0
11
Chuyn h t 10
oi t he 10 he 2 : Ex : 12d = 1100b
he 2
Cach oi : lay so can oi chia lien tiep cho 2, dng khi so b chia bang 0. Ket qua la cac so d lay theo chieu ngc lai. 12 : 2 = 6 0 6:2=3 0 3:2 =1 1 1:2 = 0 1
Chuong 2 : T chc CPU 12
dng
Chuyn h t he 2
oi t he 2 he 10 : Ex : 1100b = ?d
he 10
Cach oi :
ai*2i vi i 0...n
Chuyn h t he 10
oi t he 10 Ex : 253d = ?h he 16 :
he 16
Cach oi : lay so can oi chia lien tiep cho 16, dng khi so b chia
= 0. Ket qua la chuoi so d lay theo chieu ngc lai.
253d = FDh
14
Chuyn h t he 2
oi t he 2 he 16 : Ex : 101011010b = ?h
he 16
000101011010d = 15Ah 1 5 A
15
16
CPU (cont)
Cac nha che tao CPU qui nh toc o thc hien cua tng chip phu hp vi nhp tim cua chip o (clock speed) toc o ong ho, nhp ong ho. n v o toc o cua chip CPU la Mhz cho biet chip ap bao nhieu nhp trong 1 s. Ex : CPU 500Mhz.
18
S khi
CPU
19
Chu ky lenh
Mot chu ky thc hien lenh may gom 3 giai oan chnh sau :
1.
2.
3.
Lay lenh : lenh cat o nh se c lay vao thanh ghi lenh. Giai ma va thc hien lenh : lenh trong thanh ghi lenh se c giai ma va thc hien theo mo ta cua lenh trong tap lenh. Xac nh a ch cua lenh tiep theo : trong khi lenh c thc hien, gia tr cua bo em chng trnh se t ong tang len ch en o nh cha lenh se c thc hien tiep theo.
20
Chu ky may
Chu ky may la chu ky cua 1 hoat ong c ban cua may tnh nh : Chu ky oc bo nh Chu ky ghi bo nh Chu ky oc toan hang Chu ky ghi ket qua Clock : xung lam nhiem vu nh th cho mach tuan t.
Chuong 2 : T chc CPU 21
23
S phn phi thi gian cho 2 qu trnh ly lnh v thi hnh lnh ca CPU thng v CPU ng ng
LNH 1 LNH 1
LNH 2 LNH 2
LNH 3 LNH 3
CPU thng
LNH 1 LNH 2 LNH 3 Thi gian tit kim c LNH 1 LNH 2 LNH 3
He a bo x ly (MultiProccessor)
Shared memory
CPU CPU
CPU CPU
CPU CPU
CPU CPU
Bus
He MultiProccessor s dung 1 ng Bus
25
He a bo x ly (MultiProccessor)
Local Memory
CPU CPU
CPU CPU
CPU CPU
CPU CPU
Shared memory
Bus
He MultiProccessor s dung nhieu bo nh cuc bo
Chuong 2 : T chc CPU 26
Bus
Bus l cc ng truyn. Thng tin s c chuyn qua li gia cc thnh phn linh kin thng qua mng li gi l cc Bus.
27
Cc loi Bus
Address Bus : nhm ng truyn nhn din v tr truy xut trong thit b ch : thng tin c c t u hoc ghi vo u. Data Bus : nhm ng truyn ti data thc s gia cc thit b h thng do a ch trn address bus xc nh. rng ca data bus (s ng dy dn) xc nh data trong mi ln truyn l bao nhiu. Control Bus : nhm ng truyn cho cc tn hiu iu khin nh : tc v l c hay ghi, tc v thc thi trn b nh hay trn thit b ngoi vi, nhn dng chu k bus v khi no th hon tt tc v Chuong 2 : T chc CPU
29
CPU CPU
Control
Memory
IO devices devices IO
Chuong 2 : T chc CPU 30
31
An Input and an Output Device That Share the Same Address (a Dual I/O Port)
32
33
PCI local bus n. Short for Peripheral Component Interconnect local bus. A specification introduced by Intel Corporation that defines a local bus system that allows up to 10 PCI-compliant expansion cards to be installed in the computer. A PCI local bus system requires the presence of a PCI controller card, which must be installed in one of the PCI-compliant slots. Optionally, an expansion bus controller for the systems ISA, EISA, or Micro Channel Architecture slots can be installed as well, providing increased synchronization over all the systems bus-installed resources. The PCI controller can exchange data with the systems CPU either 32 bits or 64 bits at a time, depending on the implementation, and it allows intelligent, PCI-compliant adapters to perform tasks concurrently with the CPU using a technique called bus mastering. The PCI specification allows for multiplexing, a technique that permits more than one electrical signal to be present on the bus at one time.
34
Bus PCI
PCI chun nI ghp cc thit b ngai vi vi b VXL tc cao ca Intel nh 486/Pentium
Tc ti a 33MHz Data bus 32 bits v 64 bits H tr cho 10 thit b ngoi vi Plug and Play
35
36
37
rng Bus
rng bus chnh l s ng dy dn hp thnh bus. Vi address bus : trn mi ng dy ch c th c 1 trong 2 trng thi 0 hoc 1 nn bus c rng n th c th nhn bit c 2n a ch. Vi data bus : c thit k theo nguyn tc l bi ca 8 (8,16,32,64 bit) nh th mi ln truyn 1 byte/2 bytes/4 bytes ty theo my. B rng Data bus cng ln th data truyn cng nhanh.
Chuong 2 : T chc CPU 39
Bus PC/XT c khe cm 62 chn bao gm : Data bus D0-D7 Adrress Bus A0-A19 Cc tn hiu iu khin . Bus PC/AT : bus XT + 36 chn na lm vic vI data bus 16 bit, bus a ch 24 bit. 36 chn b sung c dng lm cc ng d liu D8-D15, cc ng a ch A21-A23, D0-D7 : l bus d liu 8 bit, 2 chiu ni gia b VXL vi b nh, I/O.
Chuong 2 : T chc CPU 40
41
Chu k Bus
Mi chu k bus l 1 tc v xy ra trn bus truyn ti data. Mi ln CPU cn lnh (hoc data) t b nh hoc I/O, chng phi thc thi 1 chu k bus c c thng tin hoc ghi thng tin ra b nh hoc ra I/O. Mi chu k bus gm 2 bc : bc 1 : gi a ch bc 2 : truyn data t a ch c nh v.
42
4 chu k bus c bn : c b nh (memory Read) ghi b nh (memory Write) c I/O (I/O Read) ghi I/O (I/O Write). Cc tn hiu cn thit thc hin cc chu k bus c sinh ra bi CPU hoc DMA Controller hoc b lm ti b nh.
43
Chu k Bus
Mi chu k Bus i hi ti thiu trn vn 2 xung ng h h thng. y l mc tham chiu theo thi gian ng b ho tt c cc tc v bn trong my tnh. Xung u tin gi l Address time , a ch truy xut s c gi i cng vi tn hiu xc nh loi tc v s c thc thi (c/ghi/n mem/n I/O).
44
Chu k Bus
Cui xung th 2, CPU s kim tra ng tn hiu Ready. Nu thit b cn truy xut sn sng p ng tc v, thit b ny s kch 1 tn hiu ln ng Ready bo cho CPU bit v chu k bus hon tt. Khi 1 thit b khng sn sng, khng c tn hiu trn ng Ready, CPU phi ch, c th phi tiu tn thm 1 hay nhiu xung clock.
45
Add1
Add2 Data2 Data1 Chu ky Bus khi co trang thai ch InactiveReady Chu k bus
Chuong 2 : T chc CPU 46
AX Register
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
AH AL Thanh ghi AX (Accumulator register) : thanh ghi tch lu, di 16 bit nhng n cng c th chia lm 2 thanh ghi 8 bit AH v AL
AX ngoi chc nng lu tr d liu, n cn c CPU dng trong php ton s hc nh nhn, chia.
Chuong 2 : T chc CPU 49
AX Register
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
AH AL Thanh ghi AH l na cao ca thanh ghi AX Thanh ghi AL l na thp ca thanh ghi AX
Th d nu AX=1234h th AH=12H AL=34h
Chuong 2 : T chc CPU 50
BX Register
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BH
BL
Thanh ghi BX (Base register) : di 16 bit nhng n cng c th chia lm 2 thanh ghi 8 bit BH v BL BX lu gi a ch ca 1 th tc hay bin, n cng c dng thc hin cc php di chuyn s hc v d liu.
Chuong 2 : T chc CPU 51
DX Register
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DX DH DL
Thanh ghi DX (Data register) : di 16 bit nhng n cng c th chia lm 2 thanh ghi 8 bit DH v DL Thanh ghi DX : c vai tr c bit trong php nhn v php chia ngoi chc nng lu tr d liu. Ex : khi nhn DX s lu gi 16 bit cao ca tch.
Chuong 2 : T chc CPU 52
CX Register
CX
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
CX (Counter register) : thanh ghi ny dng lm b m trong cc vng lp. Cc lnh t ng lp li v sau mi ln lp gi tr ca CX t ng gim i 1. CL thng cha s ln dch, quay trong cc lnh dch, quay thanh ghi CX di 16 bit, n cng c th chia lm 2 thanh ghi 8 bit l CH v CL
Chuong 2 : T chc CPU 53
CH
CL
55
S PHN ON B NH
CPU 8086 dng phng php phn an b nh qun l b nh 1MB ca n. a ch 20 bit ca b nh 1MB khng th cha trong cc thanh ghi 16 bit ca CPU 8086 b nh 1MB c chia ra thnh cc on (segment) 64KB. a ch trong cc an 64KB ch c 16 bit nn CPU 8086 d dng x l bng cc thanh ghi ca n. PHN ON B NH : l cch dng cc thanh ghi 16 bit biu din cho a ch 20 bit.
Chuong 2 : T chc CPU
57
58
a ch lun l
a ch ca 1 nh c xc nh bi 2 phn: Segment : offset a ch on Ex : B001:1234 Mi a ch thnh phn l 1 s 16 bit v c vit theo cch sau : Segment : offset a ch trong on ( di)
59
S hnh thnh a ch
Hng Intel xut 1 phng php hnh thnh a ch. Mi a ch nh c hnh thnh t 1 php tnh tng 1 a ch c s v 1 a ch offset. a ch c s lu trong 1 thanh ghi segemnt, cn a ch offset nm trong 1 thanh ghi ch s hay thanh ghi con tr. Php cng ny s to 1 a ch 20 bit gi l a ch vt l.
60
15
ach ch segment a segment
0
0000
19
cng
ach ch v l20 20bit bit a v ttl
Chuong 2 : T chc CPU
61
Ga s ta c a ch
08F1 : 0100
a ch tng i
0100
09010
Chuong 2 : T chc CPU 62
S chng cht cc on
a ch segment hay cn gi l a ch nn ca on. N cho bit im bt u ca on trong b nh. a ch offset th hin khong cch k t u an ca nh cn tham kho. Do offset di 16 bit nn chiu di ti a ca mi an l 64K.
64
S chng cht cc on
Trong mi on, nh u tin c offset l 0000h v nh cui cng l FFFFh. segment B nh
offset
0000
nh c a ch segment: offset
64KB FFFF
65
66
hiu r ti sao ta hy xt mi quan h gia a ch vt l vi segment v offset 00000h 0000: 00010h 0001: 00020h 0002:
Phn chng chp ca 3 segment 0000,0001,0002
Gii thch
0000:0000 00000h
Gi nguyn phn segment, tng phn offset ln 1 thnh ra a ch lun l l 0000:0001 a ch vt l tng ng l 00001h Tng t vI a ch lun l l 0000:0002 ta c a ch vt l l 00002h Khi offset tng 1 n v th a ch vt l tng 1 a ch hoc l tng 1 byte. Nh vy c th xem n v ca offset l byte
68
Lm li qu trnh trn nhng gi nguyn phn offset ch tng phn segment. 0001:0000 0002:0000 00010h 00020h
Khi segment tng 1 n v th a ch vt l tng 10h a ch hoc l tng 16 bytes n v ca segemnt l paragraph
69
Ta thy segment 0000 nm u vng nh nhng segment 0001 bt u cch u vng nh ch c 16 bytes, segment 0002 bt u cch u vng nh 32 bytes.. Phn chng chp 3 segment 0000,0001,0002 trn hnh v l vng b nh m bt k nh no nm trong (a ch vt l t 00020h n 0FFFFh) u c th c a ch lun l tng ng trong c 3 segment.
70
Ex : nh c a ch 0002Dh s c a ch logic trong segment 0000 l 0000:002D Trong segment 0001 l 0001:001D Trong segment 0002 l 0002:000D nu vng b nh no cng c nhiu segment chng chp ln nhau th cc nh trong cng c nhiu a ch lun l.
71
Mt nh c bao nhiu a ch lun l Mt nh c t nht 1 a ch lun l v nhiu nht l 65536/16 = 4096 a ch lun l
72
O D I T S Z
O OverFlow flag T : Trap flag A : Auxiliary flag D : Direction flag S : Sign flag P : Parity flag
Chuong 2 : T chc CPU
A
Z : Zero flag
I : Interrupt flag
C : Carry flag
75
78
79
tham kho n b nh trong chng trnh, VXL 8086 cho php s dng cc a ch lun l 1 cch trc tip hoc thng qua cc thanh ghi ca n. Thanh ghi on dng cha segment Thanh ghi tng qut dng cha a ch trong on offset tham kho n a ch lun l c segment trong thanh ghi DS, offset trong thanh ghi BX, ta vit DS:BX
Chuong 2 : T chc CPU 80
Ex : nu lc tham kho DS = 2000h BX = 12A9h th a ch lun l DS:BX chnh l tham kho n nh 2000:12A9
81
Trong cch s dng a ch lun l thng qua cc thanh ghi c 1 s cp thanh ghi lun phi dng chung vi nhau 1 cch bt buc : CS:IP ly lnh (a ch lnh sp thi hnh) SS:SP a ch nh Stack SS:BP thng s trong Stack (dng trong chng trnh con) DS:SI a ch chui ngun ES:DI a ch chui ch
82
Chng trnh m VXL 8086 thi hnh thng c 3 an : an chng trnh c a ch trong thanh ghi CS. an d liu c a ch trong thanh ghi DS. an stack c a ch trong thanh ghi SS.
83
84
85
87
88
91
CPU Pentium
3 thanh phan gop sc tang toc o x ly cua Pentium :
n v tnh toan so nguyen supercallar Bo nh Cache cap 1 ben trong CPU. n v tnh toan so cham ong supercallar
92
S O KHOI PENTIUM
Vung em ch Re nhanh Bo x ly dau cham ong Registers U Pipeline cua ALU Hang nhat sm registers V Pipeline cua ALU
BIU Quan ly Bus
Chuong 2 : T chc CPU 93
Cache lenh 8K
Cache Data 8K
Bus ISA-8 bits : a. chy tc ng h l 8 MHz truyn ti d liu ti a 8 MB/s. b. chy tc ng h l 4.77 MHz truyn ti d liu ti a 6MB/s. c. chy tc ng h l 4.77 MHz truyn ti d liu ti a 1MB/s. d. chy tc ng h l 4.77 MHz truyn ti d liu ti a 12MB/s.
97
b. chy tc ng h l 32 MHz truyn ti d liu ti a 12MB/s. c. chy tc ng h l 4.77 MHz truyn ti d liu ti a 12MB/s. d. chy tc ng h l 16MHz truyn ti d liu ti a 12MB/s.
98
Bus PCI : a. truyn ti d liu ti a 528 MB/s. b. truyn ti d liu ti a 128MB/s. c. truyn ti d liu ti a 512MB/s. d. truyn ti d liu ti a 64MB/s.
99
100
H thng Bus l h thng xa l thng tin bn trong PC gip trao i: a.thng tin gia cc my tnh b.d liu gia cc thit b ngai vi c. d liu gia b VXL v cc thit b khc d. tt c u ng
101
Mi hat ng ca my tnh t CPU n b nh RAM v nhng thit b I/O u phI thng qua s nI kt c gi chung l : a.Chun giao tip b.Bus c.BIOS d.CMOS
102
BI TP
Bi 1 : Cho bit gi tr chui XY c lu tr trong MT dI dng s hex v dng s bin? Bi 2 : Cho bit gi tr h 10 ca cc s nguyn c du sau : a.10000000b MOV AH,7F MOV AX,1234 MOV BH,AL MOV BL,AH b.01111111b INT 20H Hy cho bit gi tr ca cc thanh ghi AX,BX ?
Chuong 2 : T chc CPU 103
BI TP
Bi 4: Cho on code sau : MOV AL,81 ADD AL, 0FE INT 20H Gi s cc s u l s c du. Gii thch kt qu cha trong thanh ghi AL khi on code trn c thc thi. S dng gi tr h 10 gii thch.
104
BI TP
Bi 5: Gi s thanh ghi trong MT ca bn di 24 bits, cho bit gi tr ca s dng ln nht m thanh ghi ny c th cha 2 h 2 v h 16? Bi 6 : Bin I a ch sau thnh a ch tuyt i a. 0950:0100 b. 08F1:0200
105
MAINBOARD
106
MAINBOARD
107
MAINBOARD
108
109
110
MAINBOARD
111
112
Ex : F000:0100
DS: 200
4/4/2006
0AF5
Chuong 3 Debug
4/4/2006
Chuong 3 Debug
C (Compare)
So sanh nh 2 vung ng bo nh va liet ke cac o nh co noi dung khac nhau. Cu phap : C <khoang> , < a ch>
Ex : - C 100, 200, 3000 : 1000 So sanh o nh DS:100h vi o nh 3000:1000h, o nh DS:101h vi o nh 3000:1001h.. Cho en o nh DS :200h vi o nh 3000:1100h. So sanh 101 bytes
4/4/2006 Chuong 3 Debug 6
D (Dump)
Hien noi dung bo nh theo dang ng he 16 va ASCII.
Cach goi : D <khoang>
4/4/2006
Chuong 3 Debug
Lenh nh F (Fill)
Cu phap : F <khoang> ng> <danh sach> ch> Cong dung ng : lap ay tr vao vung ng nh ngay tai a ch mong muon. n.
Tr nhap vao tng byte mot theo he 16 Dau tr (-) dung e lui lai 1 a ch. SPACE BAR dung e ti 1 a ch. ENTER e ket thuc.
4/4/2006
Chuong 3 Debug
OFFSET 100H
4/4/2006
Chuong 3 Debug
KET QUA
-F 100 "TOI DUA EM SANG SONG" -D 100 0ADD:0100 54 4F 49 20 44 55 41 20-45 4D 20 53 41 4E 47 20 0ADD:0110 53 4F 4E 47 54 4F 49 20-44 55 41 20 45 4D 20 53 0ADD:0120 41 4E 47 20 53 4F 4E 47-54 4F 49 20 44 55 41 20 0ADD:0130 45 4D 20 53 41 4E 47 20-53 4F 4E 47 54 4F 49 20 0ADD:0140 44 55 41 20 45 4D 20 53-41 4E 47 20 53 4F 4E 47 0ADD:0150 54 4F 49 20 44 55 41 20-45 4D 20 53 41 4E 47 20 0ADD:0160 53 4F 4E 47 54 4F 49 20-44 55 41 20 45 4D 20 53 0ADD:0170 41 4E 47 20 53 4F 4E 47-54 4F 49 20 44 55 41 20 TOI DUA EM SANG SONGTOI DUA EM S ANG SONGTOI DUA EM SANG SONGTOI DUA EM SANG SONG TOI DUA EM SANG SONGTOI DUA EM S ANG SONGTOI DUA
4/4/2006
Chuong 3 Debug
10
D (DUMP)
Muc ch : in noi dung bo nh trong MT ra man hnh di dang so hex. Cu phap : D [ address] D [range] Ex : in noi dung vung nh a lap ay v du trc a ch 100h Ex2 : xem noi dung vung nh 16 bytes bat au a ch F000:100
- D F000:100 L10
4/4/2006 Chuong 3 Debug 11
006F
- D 0000:0040 L 30
So bytes
4/4/2006 Chuong 3 Debug 12
E (ENTER)
Dung ng e a d lieu byte vao bo nh ngay tai a ch mong muon. n.
Cach goi : - E <a ch> <danh sach>
Tr nhap vao theo dang so 16 tng byte mot Dau - dung e lui lai 1 a ch Space Bar dung e ti 1 a ch Enter dung e ket thuc
4/4/2006
Chuong 3 Debug
13
4/4/2006
Chuong 3 Debug
14
Lenh U (Unassemble)
cong dung ng : in ra 32 bytes ma may cua chng trnh trong bo nh ra man hnh di lenh nh gi nh. cu phap : U [address] U [range]
Ex : U 100
In ra ma n hnh c ac ch CS:1 lenh ma may t 00 en C a S:119
4/4/2006 Chuong 3 Debug 15
119
Lenh nh R (Register)
Cong dung ng : xem va sa noi dung thanh ghi. Cu phap : - R enter (xem tat ca thanh ghi) xem thanh ghi AX : - R AX xem thanh ghi c : R F Ex : muon bat thanh ghi c CF va ZF ta nhap CY va ZR.
4/4/2006
Chuong 3 Debug
16
Lenh nh N (Name)
Cong dung ng : tao tap tin can oc hay ghi trc khi dung ng lenh nh L hay W. Cu phap : - N <ten file> [ thong so] L [a ch]
4/4/2006
Chuong 3 Debug
17
4/4/2006
Chuong 3 Debug
18
Thoat khoi Debug va goi lai tap tin theo cach sau : C :\> Debug Love.txt tm xem Debug a nap tap tin Love.txt vao cho nao trong bo nh.
4/4/2006
Chuong 3 Debug
19
Cu phap : W [address]
Ex : tao tap tin co ten Love.txt
Lenh nh W (Write)
Bc 1 : dung lenh E e a cau I love you more than I can say vao o nh a ch 100. Bc 2 : dung lenh D e kiem tra lai a ch 100 Bc 3 : dung lenh N e at ten tap tin : - N Love.txt Bc 4 : dung lenh R e nh so byte can ghi len a trong 2 thanh ghi BX va CX. (BX cha 16 bit cao, CX cha 16 bit thap). ay so byte can ghi la 1Eh. Bc 5 : dung lenh W e ghi cau tren a nhap vao vung nh co a ch bat au la 100.
4/4/2006
Chuong 3 Debug
20
Lenh T (Trace)va P
cu phap : - T [= <ia ch>][so lan]
Muc ch : dung e chay 1 hay nhieu lan cac lenh trong bo nh Ex : - T = 3000:1000 Ex : - T = 3000:1000 <so lan>
4/4/2006
Chuong 3 Debug
21
Lenh L (Load)
nap tap tin hoac nap sector luan ly t a vao bo nh.
Cu phap : - L <a ch> [<a> <sector><so>] Dang 1 : neu ch co a ch dung e nap tap tin. Ten tap tin phai c gan trc bang lenh N. Tap tin luon luon c gan a ch offset 100h
Dang 2 : neu co ay u cac thong so , dung e oc sector luan ly tren a vao bo nh. a : = 0 o a A, =1 o a B, =2 o a C .
4/4/2006 Chuong 3 Debug 22
4/4/2006
Chuong 3 Debug
23
Lenh nh S (Search)
Cong dung ng : tm kiem tr trong 1 vung ng bo nh. Cu phap : - S <khoang> ng> <danh sach> ch> Giai thch : tm kiem tr co hien dien trong vung ng bo nh a ch nh hay khong? Neu co Debug hien cac a ch au cua nhng ni co cha danh sach. ch. Ex : - S 100 L 1000 DOS 18AF : 0154 18AF : 0823 Ex2 : - S 2000 2200 13,15,8A, 8
4/4/2006
Chuong 3 Debug
24
Lenh nh M (Move)
Cong dung ng : chep noi dung vung ng nh en 1 a ch khac. c. Cu phap : - M <khoang> ng> Ex : - M 100 105 200 Chep 5 bytes t DS:100 en DS:200
Ex2 : - M CS:100 L 50 ES:300 Chep 50 bytes t CS:100 en ES:300
4/4/2006 Chuong 3 Debug 25
Lenh nh I (Input)
Cong dung ng : nhap 1 byte t cong ng xuat nhap va hien ra man hnh. Cu phap : - I <a ch cong> ng> a ch cong ng la so he 16 toi a 4 ch so. Ex : - I 37E EC
4/4/2006
Chuong 3 Debug
26
Lenh nh O (Output)
Cong dung ng : xuat 1 byte ra cong ng xuat nhap. p.
Cu phap :- O<a ch cong> ng> <tr> a ch cong ng la so he 16 toi a 4 ch so.
Ex : - O 378 5E
4/4/2006
Chuong 3 Debug
27
Summary
Dung ng lenh nh D e xem noi dung vung ng nh tai a ch cua ROM BIOS F000:0000. Tng t xem noi dung vung ng nh RAM man hnh a ch B800:0000; bang ng vector ngat quang 0000:0000 Go vao may bang ng lenh nh A, oan chng trnh sau a ch 2000:0100
4/4/2006
Chuong 3 Debug
28
Summary
2000:0100 MOV AL,32 2000:0102 MOV AH, 4F 2000:0104 MOV CX, [200] 2000:0108 MOV WORD PTR [1800], 1 2000:010E MOV BYTE PTR [1800], 1 2000:0113 Xem lai oan chng trnh va anh nh tren bang ng lenh nh U. Chu y quan sat phan ma may. y. Tm xem cac toan hang ng tc thi va cac a ch xuat hien au trong phan ma may cua lenh. nh. Phan ma may cua 2 cau lenh nh cuoi co g khac nhaukhi dung ng cac toan t WORD PTR va BYTE PTR.
4/4/2006 Chuong 3 Debug 29
Summary
Dung ng lenh nh E nhap vao oan van ban sau vao bo nh tai a ch DS:0100 8086/8088/80286 Assembly language. Copyright 1988, 1886 by Brady Books, a division of Simon, Inc. All right reserved, including the of reproduction in whole or in part, in any form. (chu y ky t au dong ng xuong ng dong ng co ma ASCCI la 0D va 0A).
4/4/2006
Chuong 3 Debug
30
B NH (Memory)
Muc tieu : 1. Hieu c cau tao cua bo nh, chc nang va hoat ong cua bo nh. 2. Nam c qua trnh oc bo nh & ghi bo nh. 3. Vai tro cua bo nh Cache trong may tnh.
Bo nh (Memory)
Noi dung : 1. To chc bo nh cua may tnh IBM PC 2. Phan loai bo nh : Primary Memory va Secondary Memory. 3. Qua trnh CPU oc bo nh. 4. Qua trnh CPU ghi bo nh. 5. Bo nh Cache.
Memory
B nh (Memory) la ni cha chng trnh va d lieu. n v o bo nh : Bit : n v bo nh nho nhat la bit. Moi bit co the lu tr 1 trong 2 trang thai la 0 va 1. Byte = 8 bits, c anh ch so t 0 en 7 bat au t phai sang trai. Kbyte = 1024bytes = 210 bytes. Mbyte = 1024Kbytes = 210 Kbytes. Gbyte = 1024Mbytes = 210 Mbytes.
Chng 3 : T chc Memory 3
Primary Memory
Cn c gi l b nh chnh hay b nh trung tm. Chia lm 2 loi : RAM v ROM
RAM
RAM (Random Access Memory) b nh truy xut ngu nhin.L ni lu gi cac chng trnh va d liu khi chy chng trnh. c im ca RAM : Cho phep c/ ghi d liu. D liu b mt khi mt ngun.
Khi may tnh khi ong, Ram rong. Ngi lap trnh chu yeu la lam viec vi Ram vung nh tam e d lieu va chng trnh.
Chng 3 : T chc Memory 5
RAM
Ram la vung nh lam viec neu vung nh nay tr nen nho so vi nhu cau s dung th ta tang them Ram (gan them Ram).
RAM c th chia lm 2 loi : Dynamic v Static RAM Dynamic RAM : phi c lm ti trong vng di 1 ms nu khng s b mt ni dung. Static RAM : gi c gi tr khng cn phi lm ti. RAM tnh c tc cao, c tn l b nh CACHE nm trong CPU.
Chng 3 : T chc Memory 6
RAM
ROM
ROM (Read Only Memory) : b nh ch c. ROM BIOS cha phn mm cu hnh v chn on h thng, cc chng trnh con nhp/xut cp thp m DOS s dng. Cc chng trnh ny c m ho trong ROM v c gi l phn do (firmware).
Mt tnh nng quan trng ca ROM BIOS l kh nng pht hin s hin din ca phn cng mi trong MT v cu hnh li h iu hnh theo Driver thit b.
ROM(cont)
c im ca ROM: Ch cho php c khng cho php ghi. D liu vn tn ti khi khng c ngun.
Secondary Memory
L b nh ph nm ngoi hp CPU. Floppy disk, Tapes, Compact discs l secondary Memory.
11
S lc v Cache
Cache cp 1 (Level 1-cache) : nm trong CPU, tc truy xut rt nhanh, theo tc ca CPU.
Cache cp 2 (Level 2-cache) : thng c dung lng 128K,256K l cache nm gia CPU v Ram, thng cu to bng Ram tnh (Static Ram), tc truy xut nhanh v khng cn thi gian lm ti d liu. Cache cp 3 (Level 3-cache) : chnh l vng nh DRAM dng lm vng m truy xut cho a cng v cc thit b ngoi vi. Tc truy xut cache cp 3 chnh l tc truy xut DRAM.
12
Cache (cont)
T chc ca Cache :lin quan n chin lc tr m v cch thc lu thng tin trong Cache. Loi lnh phi thi hnh : Cache cha c chng trnh v d liu, khi CPU truy xut m chng c sn th truy xut nhanh. Khi CPU cn truy xut b nh, cache s kim tra xem ci m CPU cn c trong cache cha. Dung lng cache : nh vy nu 1 tp lnh nm gn trong cache (vng lp chng hn) th thc thi rt nhanh.
13
Cu trc Cache
Cache c cu to thnh tng hng (cache lines) , 32 bit/hng cho 386, 128 bit/hng cho 486, 256 bit/hng cho Pentium. Mi hng c km theo 1 tag lu tr a ch bt u ca on b nh m thng tin c a vo cache. Nu l cache cp 2 (SRAM), a ch bt u ca on b nh chuyn data vo cache cn c lu trong 1 vng nh ring. Mt b iu khin cache (cache controller) s iu khin hot ng ca cache vi CPU v data vo/ra cache. Chnh Cache controller phn nh chin lc tr m ca cache. Vi cache cp 1, cache controller l 1 thnh phn ca CPU. Vi cache cp 2, cache controller nm trn Mainboard.
Chng 3 : T chc Memory 14
15
18
19
Interrup Vector Table BIOS and DOS data Resident portion of DOS
M E M O
User RAM
A0000 B0000 B8000 C0000 F0000 F6000 FE000
R Y M A P
20
EGA Color Video Monochrome Video Color Video Reserved ROM (not used) Reserved ROM ROM BASIC Chng 3 : BIOS T chc Memory ROM
Memory Map
Dos data Area cha cac bien c DOS s dung nh :
Keyboard buffer : cac phm nhan c lu cho en khi c x ly. C ch tnh trang keyboard : cho biet phm nao ang c nhan. a ch cong printer. a ch cong tuan t Mo ta cac thiet b ang co trong he thong : tong dung lng bo nh, so o a, kieu man hnh
Chng 3 : T chc Memory 21
Memory Map
User Ram : v tr thng tru cua DOS a ch 0600H. Vung nh trong nam ngay di vung nh Dos. Rom Area : t C000H FFFFHc IBM danh rieng cho Rom s dung cha hard disk controller, Rom Basic. Rom BIOS : t F000H FFFFH vung nh cao nhat cua bo nh cha cac chng trnh con cap thap cua Dos dung cho viec xuat nhap va cac chc nang khac..
22
23
Trnh t tac vu oc o nh
CPU a a ch o nh can oc vao thanh ghi a ch. Mach giai ma xac nh a ch o nh. CPU gi tn hieu ieu khien oc bo nh. Noi dung o nh can oc c a ra thanh ghi d lieu. CPU oc noi dung cua thanh ghi d lieu.
24
Mach giai ma a ch o nh
Mach ien co nhiem vu xac nh ung o nh can truy xuat ang co a ch lu trong thanh ghi a ch. Bo nh lam viec c chia thanh nhieu o nh. Kch thc moi o nh thay oi tuy theo may, thng la 8 hay 16 bit tc 1 byte hay 1 word. Neu kch thc moi o nh la 1 byte th se co 8 ng d lieu song song noi bo nh lam viec vi bo VXL. Moi ng 1 bit , tat ca 8 ng tao thanh mot tuyen d lieu (data bus)
Chng 3 : T chc Memory 25
oc / ghi d lieu
O NH
H H N N O O B B
Chng 3 : T chc Memory
N V X LY
26
Bo nh
... . . . . .
11110 11111 Chng 3 : T chc Memory 28
nv X ly
Bo giai ma a ch
Stack
Stack la vung nh ac biet dung e lu tr a ch va d lieu.
Stack thng tru trong stack segment.Moi vung 16 bit tren stack c tro en bi thanh ghi SP, goi la stack pointer. Stack pointer lu tr a ch cua phan t d lieu cuoi mi c them vao (pushed len stack.)
29
Stack
phan t d lieu cuoi mi c them vao nay lai la phan t se c lay ra (popped trc tien). Stack lam viec theo c che LIFO (Last In First Out).
Stack
BEFORE HIGH MEM AFTER SP
HIGH MEM
0006
0006
00A5 SP SP giam 1
LOW MEM
31
32
Summary Slide
C nao c thiet lap khi 1 phep tnh so hoc khong dau qua rong khong va vi ch? Hai thanh ghi nao c to hp thanh a ch cua lenh se c thc ke tiep? Neu qua trnh oc bo nh. Tai sao qua trnh oc bo nh lai chiem nhieu chu ky may hn so vi truy cap thanh ghi? Thanh ghi AH b sa oi, tai sao thanh ghi AX cung thay oi theo. Noi dung nao chiem 1024 bytes thap nhat cua bo nh?
33
34
35
36
h1 h2
Hieu ngon ng may va ngon ng Assembly. Trnh hp dch Assembler. Ly do nghien cu Assembly. Hieu cac thanh nh phan c ban cua Assembly Nam c cau truc cua 1 CT Assembly. Biet viet 1 chng trnh Assembly. Biet cach ch dch, lien ket va thc thi 1 chng trnh Assembly.
4/4/2006 Chuong 5 Nhap mon ASM 1
Slide 1 h1 h2 shjsahjsa
huh, 13/10/2004
ssasasasas
huh, 13/10/2004
4/4/2006
Mot chng trnh viet bang ng ngon ng Assembly muon MT thc hien c ta phai chuyen thanh nh ngon ng may. y. Chng trnh dung ng e dch 1 file viet bang ng Assembly ngon ng may , goi la Assembler. Co 2 chng trnh dch: MASM va TASM
Assembler
4/4/2006
Ly do nghien cu Assembly o la cach ch tot nhat e hoc phan cng ng MT va he ieu hanh. nh. V cac tien ch cua no . Co the nhung ng cac chng trnh con viet bang ng ASM vao trong cacch cchng trnh viet bang ng ngon ng cap cao .
4/4/2006 Chuong 5 Nhap mon ASM 4
Lenh nh may
La 1 chuoi nh phan co y ngha ac biet no ra lenh nh cho CPU thc hien tac vu.
Tac vu o co the la : di chuyen 1 so t v tr nh nay sang v tr nh khac. c. Cong ng 2 so hay so sanh nh 2 so.
Add a number to the AL register Add a number to a variable Move the AX reg to another reg
4/4/2006
4/4/2006
Lien ket CT
Chay CT
4/4/2006
Go ten tap tin thc hien .EXE t dau nhac DOS e chay
Chuong 5 Nhap mon ASM 7
TenCT .MAP
TenCT .LIST
TenCT .CRF
4/4/2006
4/4/2006
4/4/2006
10
File Listing
Microsoft (R) Macro Assembler Version 5.10 Page 1-1 10/11/4 1 DOSSEG 2 .MODEL SMALL 3 .STACK 100H 4 .DATA 5 0000 48 45 4C 4C 4F 20 MES DB "HELLO WORD$" 6 57 4F 52 44 24 7 .CODE 8 0000 MAIN PROC 9 0000 B8 ---- R MOV AX,@DATA 10 0003 8E D8 MOV DS, AX 11 0005 B4 09 MOV AH,9 12 0007 BA 0000 R MOV DX, OFFSET MES 13 000A CD 21 INT 21H 14 000C B4 4C MOV AH,4CH 15 000E CD 21 INT 21H 16 0010 MAIN ENDP 17 END MAIN Microsoft (R) Macro Assembler Version 5.10 10/11/4
4/4/2006 Chuong 5 Nhap mon ASM 11
Map File
Start Stop Length Name 00000H 0001FH 00020H _TEXT 00020H 0002AH 0000BH _DATA 00030H 0012FH 00100H STACK Origin Group 0002:0 DGROUP Program entry point at 0000:0010 Class CODE DATA STACK
4/4/2006
12
Giai thch
.model small : dung ng kieu cau truc <= 64 K bo nh cho ma , 64K cho d lieu. u. .Stack 100h : danh nh 256 bytes cho stack cua chng trnh . .Data : anh nh dau phan oan d lieu o cac bien c lu tr. .Code : anh nh dau phan oan ma cha cac lenh nh phai thi hanh. nh. Proc : khai bao au 1 thu tuc, c, trong Ex nay ta ch co 1 thu tuc Main.
4/4/2006
13
4/4/2006
14
4/4/2006
15
Cac che o bo nh
Kieu SMALL MEDIUM Mo ta Ma lenh nh trong 1 oan.D n.D lieu trong 1 oan Ma lenh nh nhieu hn 1 oan.D n.D lieu trong 1 oan
COMPACT Ma lenh nh trong 1 oan. n. D lieu nhieu hn 1 oan LARGE Ma lenh nh nhieu hn 1 oan D lieu nhieu hn 1 oan,kho n,khong co mang ng nao > 64K HUGE Ma lenh nh nhieu hn 1 oan D lieu nhieu hn 1 oan, n, mang ng co the > 64K
4/4/2006
16
Dang ng lenh nh
Moi dong ch cha 1 lenh va moi lenh phai nam tren 1 dong
4/4/2006
17
INT 21H
Lenh nh INT so hieu ngat c dung ng e goi chng trnh ngat cua DOS va BIOS.
Ngat 21h Muon s dung ham nao cua INT 21h ta at function_number vao thanh ghi AH, sau o goi INT 21h
Function_number 1 2 9
4/4/2006
chc nang nhap 1 ky t t ban phm Xuat 1 ky t ra ma hnh. Xuat 1 chuoi ky t ra man hnh
18
Ham 2 : Hien th 1 ky t ra man hnh Input : AH =2 DL = Ma ASCII cua ky t hien th hay ky t ieu khien
4/4/2006
19
Th du minh hoa
DOSSEG .MODEL SMALL .STACK 100H .CODE MAIN PROC MOV AH , 2 MOV DL , ? INT 21H MOV AH ,1 INT 21H MOV BL,AL MOV AH,2 MOV DL, 0DH INT 21H MOV DL , 0AH INT 21H MOV DL , BL INT 21H MOV AX , 4C00H INT 21H MAIN ENDP END MAIN
KET QUA
4/4/2006
?N N
Chuong 5 Nhap mon ASM 20
Bien
Cu phap : [ten bien] n] DB | DW |.... [tr khi tao] o] La mot ten ky hieu danh nh rieng cho 1 v tr trong bo nh ni lu tr d lieu. u. Offset cua bien la khoang ng cach ch t au phan oan en bien o. Ex : khai bao 1 danh sach ch aList a ch 100 vi noi dung sau : .data aList db ABCD
4/4/2006
22
Bien (cont)
Luc o : Offset 0000 0001 0002 0003 Bien A B C D
4/4/2006
23
4/4/2006
24
KIEU BYTE
Char db A Num db 41h Mes db Hello Word,$ Array_1 db 10, 32, 41h, 00100101b Array_2 db 2,3,4,6,9 Myvar db ? ; bien khong khi tao Btable db 1,2,3,4,5 db 6,7,8,9,10
4/4/2006 Chuong 5 Nhap mon ASM 25
1000h
BO NH
1001h
34
12
D LIEU
1234H
4/4/2006
27
Toan t DUP
Lap lai 1 hay nhieu gia tr khi tao. o. Ex : Bmem DB 50 Dup(?) ; khai bao vung ng nh gom 50 bytes. db 4 dup (ABC) ;12 bytes ABCABCABCABC db 4096 dup (0) ; Vung ng em 4096 bytes tat ca bang ng 0
4/4/2006
28
4/4/2006
30
Toan t DUP
Ch xuat hien sau 1 ch th DB hay DW Vi DUP ta co the lap lai 1 hay nhieu tr cho vung ng nh. Rat co ch khi lam viec vi mang ng hay chuoi. i.
4/4/2006
31
Toan t ?
Muon khai bao 1 bien hay 1 mang ng ma khong can khi tao tr ta dung ng toan t ?
Ex : MEM8 DB ? MEM16 DW ?
BMEM DB 50 DUP(?) ; khai bao 50 byte trong trong bo nh
; khai bao 1 byte trong trong bo nh ; khai bao 2 byte trong trong bo nh
4/4/2006
32
SUMMARY
chng trnh Assembly gom nhieu dong ng lenh. nh. Moi lenh nh phai viet tren 1 dong ng Lenh nh co the gom [ten] [toan t] [toan hang] ng] Cac ky t phai at trong dau hay DB dung ng e nh ngha bien kieu BYTE DW dung ng e nh ngha bien kieu WORD. Co 2 cach ch xuat nhap d lieu : lien lac trc tiep qua cong ng hay dung ng cac phuc vu ngat cua DOS va BIOS.
4/4/2006 Chuong 5 Nhap mon ASM 34
4/4/2006
35
Chng trnh sau co loi. Hay tm cau lenh nh nao gay ra loi, giai thch va sa lai cho ung. ng.
.MODEL SMALL
.STACK 100H .DATA MOV AX, VALUE1 MOV BX, VALUE2 INC BX, 1 INT 21H MOV 4C00H, AX MAIN ENDP VALUE1 VALUE2 END MAIN
4/4/2006 Chuong 5 Nhap mon ASM 36
0AH 1000H
Chng trnh sau co loi. Hay tm cau lenh nh nao gay ra loi, giai thch va sa lai cho ung. ng.
.MODEL SMALL
.STACK 100H .CODE MAIN PROC MOV AX, @DATA MOV DS , AX MOV AX, VALUE1 MOV AX, VALUE2 MOV AX, 4C00H INT 21H MAIN ENDP VALUE1 DB 0AH VALUE2 DB 1000H END MAIN 4/4/2006
37
4/4/2006
4/4/2006
Toan t so hoc
Toan t + * / MOD + SHL SHR Cu phap + expression - expression exp1*exp2 exp1/exp2 exp1 mod exp2 exp1 + exp2 exp1 - exp2 exp shl n exp shr n Cong dung ng
Dng Am Nhan Chia Phan d Cong ng Tr Dch exp sang trai n bit Dch exp sang phai n bit
4/4/2006
Toan t logic
Not And Or Xor
Ex : MOV AH , 8 OR 4 AND 2 MOV AL, NOT (20 XOR 0011100B)
Not expression Exp1 and exp2 Exp1 or exp2 Exp1 xor exp2
4/4/2006
Toan T Quan He So sanh nh 2 bieu thc va cho tr la true (-1) neu ieu kien cua toan t thoa, a, ngc lai la false. EQ Exp1 EQ exp2 NE LT LE Exp1 NE exp2 Exp1 LT exp2 Exp1 LE exp2 True neu Exp1 = exp2 True neu Exp1 <> exp2 True neu Exp1 < exp2 True neu Exp1 <= exp2 True neu Exp1 > exp2 True neu Exp1 >= exp2
5
O U TIEN TOAN T
TOAN T MO TA () Dau ngoac
o u tien giam dan
+,-
Dau dng , am
4/4/2006
Toan t SEG
Cu phap : SEG expression Cho a ch oan cua bieu thc expression. Expression co the la bien | nhan | ten segment hay toan hang ng bo nh khac. c.
4/4/2006
Toan t OFFSET
Cu phap : OFFSET expression Cho a ch OFFSET cua bieu thc expression. Expression co the la bien | nhan | ten segment hay toan hang ng trc tiep bo nh khac. c.
Ex : nap a ch segment va offset cua bien table vao DS :AX TABLE DB ? MOV AX, SEG TABLE MOV DS, AX MOV DX, OFFSET Table
4/4/2006 Chuong 7 Cac phep dinh vi dia chi 8
TOAN T $
Cho a ch cua OFFSET cua phat bieu cha toan t $. Thng ng c dung ng e tnh chieu dai chuoi. i.
4/4/2006
TOAN T PTR
Cu phap : type PTR expression Cho phep thay oi dang ng cua expression neu expr la 1 bien | toan hang ng bo nh th type co the la byte , word hay dword. Neu expr la 1 nhan th type co the la near hay far. Ex : mov ax, word ptr var1 ; var1 la toan hang kieu Word mov bl , byte ptr var2 ; var2 la toan hang kieu byte
4/4/2006 Chuong 7 Cac phep dinh vi dia chi 10
Hau het cac lenh Assembly eu co oi so la 1 hoac 2 toan hang Co 1 so lenh ch co 1 toan hang nh RET, CLC. Vi cac lenh 2 toan hang th toan hang th 2 la toan hang nguon (source) cha d lieu hoac a ch cua d lieu.
4/4/2006
11
4/4/2006
13
4/4/2006
14
NH V THANH GHI
Gi tr ca ton hng c truy xut nm ngay trong thanh ghi ca CPU.
4/4/2006
15
4/4/2006
16
AX, [SI]
AX, [BP]
4/4/2006
17
NH V TRC TIP
a ch Offset ca nh cha d liu ton hng nm trc tip trong cu lnh cn a ch segment ngm nh cha trong DS. Ex : MOV BX, [1234] Np nI dung nh c a ch DS:1234 BX
4/4/2006
18
NH V C S
a ch Offset ca ton hng c tnh l tng ca nI dung thanh ghi BX hoc BP v 1 dch. dch l 1 s nguyn m hoc dng. a ch an l on hin ti.
4/4/2006
19
A CH HIEU DUNG NG
Toan hang bo nh dung trong tap lenh vi x ly 86 s dung phng phap nh a ch tong hp c goi la a ch hieu dung. a ch hieu dung la to hp cua 3 nhom sau at trong dau [ ]. Nhom thanh ghi ch so : SI , DI Nhom thanh ghi nen : BX, BP a ch trc tiep : so 16 bit
Ca thanhghi ghitrong trongcu cu n g1 1nho nho mkho kho n g xua hie ntrong trongcu cu n g1 1 Ca ccthanh n g m n g ccxua tthie n n g ach chhie hie udu du n g. a u n g.
4/4/2006 Chuong 7 Cac phep dinh vi dia chi 20
A CH HIEU DUNG NG
Mot so th du
a ch hieu dung hp le :
[1000h] [SI], [DI] , [BX] , [BP] [SI+BX], [SI+BP] , [DI+BX] , [DI+BP] , [SI+1000h], [DI+100h] [SI] [BX] [1000h], [SI+BP+1000h] , [DI+BX][1000h], [DI+1000h]+[BP]
4/4/2006
22
D lieu 8 bit bo nh : [ a ch ]
D lieu 16 bit bo nh : [ a ch +1, a ch ]
e xac nh ro hoat ong cua bo nh , ta phai dung them toan t PTR nh sau :
8 bit : BYTE PTR [1000H]
Tham khao 1 byte b o nh a ch 1000h Tham khao 2 byte b o nh lien tiep a ch 1000h va 1001 h
23
16 bit
4/4/2006
MOV BX, OFFSET LIST MOV AX, 0 MOV AL, [BX] ADD AL , [BX+1] ADD AL , [BX+2] ADD AL , [BX+3] ADD AL , [BX+4] MOV SUM , AX LIST DB 10h, 20h, 40h, 2h, 5h SUM DW 0
4/4/2006
Lay a ch cua List vao BX Da vao BX e xac nh cac phan t cua array. Khi tnh tong xong, a tong vao bien SUM.
24
4/4/2006
25
Tap lenh nh
Lenh MOV : Y ngha : copy gia tr t toan hang nguon Cu phap : MOV dest , source Yeu cau : Dest va source cung kieu Dang lenh : MOV reg , reg MOV mem , reg MOV reg, mem MOV reg16, segreg MOV segreg, reg16 MOV reg, immed MOV mem, immed MOV mem16, segreg MOV segreg, mem16
4/4/2006 Chuong 7 Cac phep dinh vi dia chi
toan hang ch
26
BP
4/4/2006
27
Chu y
Lenh nh MOV khong lam anh nh hng ng en c. Khong the chuyen d lieu trc tiep gia 2 toan hang ng bo nh vi nhau, muon chuyen phai dung ng thanh ghi trung gian. Khong the chuyen 1 gia tr tc thi vao thanh ghi oan, n, muon chuyen phai dung ng thanh ghi trung gian. Khong the chuyen trc tiep gia 2 thanh ghi oan
4/4/2006
28
4/4/2006
29
Ex3 : MOV AX, [100h] ; chuyen NI DUNG NH 100h vao Reg AX.
4/4/2006
30
Ap dung ng
Viet chng trnh chuyen noi dung vung nh bat au tai a ch 700h sang vung nh co a ch bat au la 1000h. Biet chieu moi vung nh la 9 bytes va d lieu ang khao sat trong oan c ch bi DS.
Cho vung nh MEM co chieu dai 9 bytes gom cac ky t abcdefghi trong oan ch bi DS. Viet chng trnh ao ngc vung nh MEM.
4/4/2006
31
Cu phap : LEA REG | MEM y ngha : nap a ch Offset vao thanh ghi e khi ong Reg. Ex : MOV DX, OFFSET MES Tng ng vi LEA DX, MES
1000h DI + BX + 2000h
4/4/2006
32
4/4/2006
33
Lenh nh PUSH Cu phap : PUSH REG16 PUSH MEM16 PUSH SEGREG ay toan hang nguon 16 bit vao STACK
Ex : PUSH DI ; [SS :SP+1, SS :SP] DI
CS
4/4/2006
34
Lenh nh POP
Cu phap : POP REG16 POP MEM16 POP SEGREG Lay d lieu t nh STACK vao toan hang ch.
Ex : POP AX ; AX
4/4/2006
35
Lenh nh IN
Cu phap : IN ACCUM, IMMED8 IN ACCUM, DX nhap d lieu t cong xuat nhap vao thanh ghi tch luy AL hay AX. Trng hp AX se nhap byte thap trc, byte cao sau.
SUMMARY
Dung ng DEBUG e hp dch va chay chng trnh sau : Chep 3 so nguyen kieu Word a ch 0120h vao a ch 0130h. Cho biet gia tr cua AX sau khi cac lenh nh sau c thc thi : MOV AX, ARRAY1 INC AX ADD AH, 1 SUB AX, ARRAY1 ARRAY1 DW 10h, 20h
4/4/2006
37
Gi s bien VAL1 a ch offset 0120h va PTR1 a ch 0122h. Cho biet gia tr cua cac thanh ghi AX, BX khi moi lenh nh sau c thc thi :
.CODE MOV AX, @DATA MOV DS, AX MOV AX, 0 MOV AL, BYTE PTR VAL1 ; AX = ? MOV BX, PTR1 ; BX = ? XCHG AX, BX ; BX = ? SUB AL,2 ; AX = ? MOV AX, PTR2 ; AX = ? .DATA VAL1 DW 3Ah PTR1 DW VAL1 PTR2 DW PTR1
4/4/2006 Chuong 7 Cac phep dinh vi dia chi 38
SUMMARY
Cho biet gia tr cua cac thanh ghi ben phai, khi moi lenh cua oan chng trnh sau c thc thi. Gia s FIRST offset 0H MOV AL, BYTE PTR FIRST+1 MOV BX, WORD PTR SECOND+2 MOV DX, OFFSET FIRST + 2 MOV AX, 4C00H INT 21H . FIRST DW 1234h SECOND DW 16385 THIRD DB 10,20,30,40
4/4/2006 Chuong 7 Cac phep dinh vi dia chi 39
; AL = ; BX = ; DX =
Bai 2 : Viet chng trnh nhap 2 ky t va hien th ky t th 3 co ma ASCII la tong cua ma 2 ky t a nhap. Ket qua co dang :
4/4/2006
40
Biet cach mo phong cau truc ieu khien va vong lap nh ngon ng lap trnh cap cao. Nam c cac lenh nhay trong lap trnh Assembly. Tren c s o, van dung e lap trnh giai quyet 1 so bai toan.
Noi dung
S can thiet cua lenh nh nhay trong lap trnh ASM. Lenh nh JMP (Jump) : nhay khong ieu kien. n. Lenh nh LOOP : cho phep lap 1 cong viec vi 1 so lan nao o. Cac lenh nh so sanh nh va luan ly. Lenh nh lap co ieu kien. n. Lenh nh nhay co ieu kien. n. Bieu dien mo phong ng cau truc luan ly mc cao. Chng trnh con. Mot so chng trnh minh hoa. a.
Cong dung ng :Chuyen ieu khien khong ieu kie n . phap : JMP ch n. Cu
Nhay gan (NEAR) : 1 tac vu nhay trong cung ng 1 segment. Nhay xa (FAR) : 1 tac vu nhay sang segment khac. c.
JConditional destination
Ex : JNZ nhan ch ;
LENH NH LOOP
Cong dung : cho phep lap 1 cong viec vi 1 so lan nao o. Moi lan lap CX giam i 1 n v. Vong lap cham dt khi CX =0.
Ex 1 : xuat ra man hnh 12 dong gom cac ky t A. MOV CX, 12 * 80 MOV DL, A NEXT : MOV AH, 2 INT 21H LOOP NEXT
Chuong 8 : Cau truc DK va Vong lap 6
LOOP (tt)
Ex : co 1 Array A gom 6 bytes, chep A sang array B dung SI va DI e lay Offset MOV SI, OFFSET A MOV DI, OFFSET B MOV CX, 6 MOVE_BYTE : MOV AL, [SI] MOV [DI], AL INC SI INC DI LOOP MOVE_BYTE A DB 10H,20H,30H,40H,50H,60H B DB 6 DUP (?)
Lenh nh AND
Cu phap : AND Destination , Source
Cong dung : Lenh nay thc hien phep AND gia 2 toan hang, ket qua cuoi cung cha trong toan hang ch. Dung e xoa cac bit nhat nh cua toan hang ch gi nguyen cac bit con lai.
Muon vay ta dung 1 mau bit goi la mat na bit (MASK), cac bit mat na c chon e sao cho cac bit tng ng cua ch c thay oi nh mong muon.
Lenh nh AND
Ex1 : xoa bit dau cua AL, gi nguyen cac bit con lai : dung AND vi 01111111b lam mat na AND AL, 7FH
Ex2 : MOV AL, 5 ; oi ma ASCII cua so AND AL, 0FH ; thanh so tng ng. Mask bits Ex3 : MOV DL, a ; oi ch thng thanh ch hoa. AND DL, 0DFH ; thanh so tng ng. Mask bits
10
LENH NH OR
Cong dung : dung e bat len 1 so bit va gi nguyen cac bit khac. Cu phap : OR destination, source Ex1 : OR AL , 10000001b ; bat bit cao nhat va bit thap nhat trong thanh ghi AL len 1 Ex 2: MOV AL , 5 ; oi 0..9 thanh ky so Ex 3: OR AL , 30h ; ASCII tng ng.
11
12
LENH NH XOR
Cong dung : dung e tao o hoa mau toc o cao. Cu phap : XOR destination, source
Ex : lat bit cao cua AL 2 lan MOV AL , 00111011b ; XOR AL, 11111111b ; AL = 11000100b XOR AL, 11111111b ; AL = 00111011b
13
LENH NH TEST
Cu phap : TEST destination, source
Cong dung : dung e khao sat tr cua tng bit hay nhom bit. Test thc hien giong lenh AND nhng khong lam thay oi toan hang ch.
Ex : kiem tra bit 13 trong DX la 0 hay 1 TEST DX, 2000h JZ BitIs0 BitIs1 : bit 13 is 1 BitIs0 : bit 13 is 0 e kiem tra 1 bit nao o ch can at bit 1 vao ung v tr bit can kiem tra va khao sat c ZF. (neu bit kiem la 1 th ZF se xoa, ngc lai ZF c lap.
14
15
16
Lenh nh CMP
Cu phap : CMP destination , source Cong dung : so sanh toan hang ch vi toan hang nguon bang cach lay toan hang ch toan hang nguon. Hoat ong : dung phep tr nhng khong co toan hang ch nao b thay oi. Cac toan hang cua lenh CMP khong the cung la cac o nh. lenh CMP giong het lenh SUB tr viec toan hang ch khong thay oi.
17
Pham vi
Ch nhay en nhan co khoang cach t -128 en +127 byte so vi v tr hien hanh. Dung cac trang thai c e quyet nh co nhay hay khong?
18
e thc hien 1 lenh nhay CPU nhn vao cac thanh ghi c. neu ieu kien cua lenh nhay thoa, CPU se ieu chnh IP tro en nhan ch cac lenh sau nhan nay se c thc hien.
PRINT_LOOP : INT 21H INC DL DEC CX JNZ PRINT_LOOP MOV AX, 4C00H INT 21H
19
LENH NH NHAY DA TREN KET QUA SO SANH NH CAC TOAN HANG NG KHONG DAU. U. Thng dung lenh CMP Opt1 , Opt2 e xet ieu kien nhay hoac da tren cac c.
JZ JE JNZ JNE
Nhay neu ket qua so sanh nh = 0 Nhay neu 2 toan hang ng bang ng nhau Nhay neu ket qua so sanh nh la khac nhau. Nhay neu 2 toan hang ng khac nhau.
JA Nhay neu Opt1 > Opt2 JNBE Nhay neu Opt1 <= Opt2 JAE JNB Nhay neu Opt1 >= Opt2
Chuong 8 : Cau truc DK va Vong lap 20
LENH NH NHAY DA TREN KET QUA SO SANH NH CAC TOAN HANG NG KHONG DAU (ctn) .
JNC
JB Nhay neu Opt1 < Opt2 JNAE Nhay neu Not(Opt1 >= Opt2) JC JBE JNA Nhay neu co Carry Nhay neu Opt1<=Opt2 Nhay neu Not (Opt1 > Opt2)
21
LENH NH NHAY DA TREN KET QUA SO SANH NH CAC TOAN HANG NG CO DAU .
JG Nhay neu Opt1>Opt2 JNLE Nhay neu Not(Opt1 <= Opt2) JGE JNL JL JNGE JLE JNG Nhay neu Opt1>=Opt2 Nhay neu Not (Opt1 < Opt2) Nhay neu Opt1 < Opt2 Nhay neu Not (Opt1 >= Opt2) Nhay neu Opt1 <= Opt2 Nhay neu Not (Opt1 > Opt2)
Chuong 8 : Cau truc DK va Vong lap 22
JCXZ Nhay neu CX=0 JS JNS JO Nhay neu SF=1 Nhay neu SF =0 Nhay neu a tran tr
JL Nhay neu Opt1 < Opt2 JNGE Nhay neu Not (Opt1 >= Opt2) JLE JNO JP JNP Nhay neu Opt1 <= Opt2 Nhay neu tran tr Nhay neu parity chan Nhay neu PF =0
Chuong 8 : Cau truc DK va Vong lap 23
CAC V DU MINH HOA LENH NHAY CO K Ex1 : tm so ln hn trong 2 so cha trong thanh ghi AX va BX . Ket qua e trong DX
MOV DX, AX CMP DX, BX JAE QUIT MOV DX, BX QUIT : MOV AH,4CH INT 21H
; gia s AX la so ln hn. ; IF AX >=BX then ; nhay en QUIT ; ngc lai chep BX vao DX
24
CAC V DU MINH HOA LENH NHAY CO K Ex1 : tm so nho nhat trong 3 so cha trong thanh ghi AL BL va CL . Ket qua e trong bien SMALL ; gia s AL nho nhat ; neu SMALL <= BL th Nhay en L1 ; neu SMALL <= CL th ; Nhay en L2 ; CL la so nho nhat
MOV SMALL, AL CMP SMALL, BL JBE L1 MOV SMALL, BL L1 : CMP SMALL, CL JBE L2 MOV SMALL, CL L2 : . . .
25
Cu phap : SHL toan hang ch ,1 Dch 1 v tr. Cu phap : SHL toan hang ch ,CL Dch n v tr trong o CL cha so bit can dch.
v tr o a v a c e s 0 bit msb r t n a o i c g , t h g : mo ng c n a o h n t a a o Ho t cua t a h n i a C F c o a ben ph v a c o n a u c
26
27
Cu phap : SHR toan hang ch , 1 SHR toan hang ch , CL ; dch phai n bit trong o CL cha n Hoat ong : 1 gia tr 0 se c a vao bit msb cua toan hang ch, con bit ben phai nhat se c a vao c CF. MT thc hien phep chia bang dch phai
28
29
30
31
32
33
34
Phat bieu IF se kiem tra 1 ieu kien va theo sau o la 1 so cac phat bieu c thc thi khi ieu kien kiem tra co gia tr true.
HIEN THC BANG ASM CMP OP1,OP2 JNE CONTINUE <STATEMENT1> <STATEMENT2> CONTINUE : .
35
Cau truc IF vi OR
CMP A1,OP1 JG EXCUTE CMP A1,OP2 JGE EXCUTE CMP A1,OP3 JE EXCUTE CMP A1,OP4 JL EXCUTE JMP CONTINUE EXCUTE : <STATEMENT> CONTINUE : ..
36
Cau truc logic IF (A1>OP1) AND (A1>=OP2) AND (A1=OP3) AND (A1<OP4) <STATEMENT> ENDIF
JMP CONTINUE
CONTINUE : .. CHU Y : khi ieu kien co toan t AND, cach hay nhat la dung nhay vi ieu kien ngc lai en nhan, bo qua phat bieu trong cau truc Logic.
CMP A1,OP1 JNG CONTINUE CMP A1,OP2 JL CONTINUE CMP A1,OP3 JNE CONTINUE CMP A1,OP4 JNL CONTINUE <STATEMENT>
37
HIEN THC BANG ASM DO_WHILE : CMP OP1, OP2 JNL ENDDO <STATEMENT1>
38
VONG LAP WHILE CO LONG IF HIEN THC BANG ASM _WHILE : CMP OP1, OP2 JNL WHILE_EXIT <STATEMENT1> CMP OP2,OP3 ; phan If
Cau truc logic DO WHILE (OP1<OP2) <STATEMENT> IF (OP2=OP3) THEN <STATEMENT2> <STATEMENT3> ENDIF ENDDO
JNE ELSE ; khong thoa If <STATEMENT2> ; thoa If <STATEMENT3> JMP ENDIF; thoa If nen bo qua Else ELSE : <STATEMENT4> ENDIF : JMP _WHILE WHILE_EXIT : ..
39
Cau truc logic REPEAT <STATEMENT1> <STATEMENT2> <STATEMENT3> UNTIL (OP1=OP2) OR (OP1>OP3) hau n ng at a B ho t at e p Re
REPEAT : <STATEMENT1> <STATEMENT2> <STATEMENT3> TESTOP12: CMP OP1, OP2 JE ENDREPEAT TESTOP13 : CMP OP1, OP3 JNG REPEAT ENDREPEAT : ..
40
Cau truc logic CASE INPUT OF A : Proc_A B : Proc_B C : Proc_C D : Proc_D End ;
41
LooKup Table
Rat hieu qua khi x ly phat bieu CASE la dung bang OFFSET cha a ch cua nhan hoac cua ham se nhay en tuy vao ieu kien. Bang Offset nay c goi Lookup Table rat hieu qua khi dung phat bieu Case co nhieu tr la chon.
42
LooKup Table
; gia tr tm kiem a ch cac procedure gia s a ch 0120 gia s a ch 0130 gia s a ch 0140 gia s a ch 0150
43
LooKup Table Case : MOV AL, INPUT MOV BX, OFFSET CASE_TABLE MOV CX, 4 ; lap 4 lan so entry cua table TEST : CMP AL, [BX] ; kiem tra Input JNE TESTAGAIN ; khong thoa kiem tra tiep CALL WORD PTR [BX+1] ; goi thu tuc tng ng JMP ENDCASE TESTAGAIN : ADD BX , 3 ; sang entry sau cua CaseTable LOOP TEST ENDCASE : ..
44
45
Ky thuat lap trnh Hay to chc chng trnh cac chng trnh con n gian hoa cau truc luan ly cua CT lam cho CT de oc, de hieu , de kiem tra sai sot.. au CTC hay cat tr thanh ghi vao Stack bang lenh PUSH e lu trang thai hien hanh. Sau khi hoan tat cong viec cua CTC nen phuc hoi lai tr cac thanh ghi luc trc a Push bang lenh POP . Nh trnh t la ngc nhau e tr cua thanh ghi nao tra cho thanh ghi nay.
ng toi u qua CT v co the lam cho CT kem thong minh, kho oc.
46
Ky thuat lap trnh (tt) Co gang to chc chng trnh cho tot phai thiet ke c cac bc chng trnh se phai thc hien. Kinh nghiem : khi van e cang ln th cang phai to chc logic chng trnh cang chat che. Bang s to hp cua lenh nhay ta hoan toan co the mo phong cau truc ieu khien va vong lap.
47
SUMMARY
Co the mo phong cau truc logic nh ngon ng cap cao trong Assembly bang lenh JMP va LOOP. cac lenh nhay : co ieu kien va vo ieu kien. Khi gap lenh nhay, CPU se quyet nh nhay hay khong bang cach da vao gia tr thanh ghi c. cac lenh luan ly dung e lam ieu kien nhay la AND, OR, XOR, CMP . . . Bat c khi nao co the, hay to chc chng trnh thanh cac chng trnh con n gian c cau truc luan ly cua chng trnh.
48
Cau hoi 1. Gia s DI = 2000H, [DS:2000] = 0200H. Cho biet a ch o nh toan hang nguon va ket qua lu trong toan hang ch khi thc hien lenh MOV DI, [DI] 2. Gia s SI = 1500H, DI=2000H, [DS:2000]=0150H . Cho biet a ch o nh toan hang nguon va ket qua lu trong toan hang ch sau khi thc hien lenh ADD AX, [DI]
3. Co khai bao A DB 1,2,3 Cho biet tr cua toan hang ch sau khi thi hanh lenh MOV AH, BYTE PTR A. 4. Co khai bao B DB 4,5,6 Cho biet tr cua toan hang ch sau khi thi hanh lenh MOV AX, WORD PTR B.
49
Bai 1 : Co vung nh VAR1 dai 200 bytes trong oan c ch bi DS. Viet chng trnh em so ch S trong vung nh nay.
Bai 2 : Co vung nh VAR2 dai 1000 bytes. Viet chng trnh chuyen oi cac ch thng trong vung nh nay thanh cac ky t hoa, cac ky t con lai khong oi. Bai 3 : Viet chng trnh nhap 2 so nho hn 10. In ra tong cua 2 so o.
50
Bai 4 : Viet chng trnh nhap 2 so bat ky. In ra tong va tch cua 2 so o. Chng trnh co dang sau : Nhap so 1 : 12 Nhap so 2 : 28 Tong la : 40 Tch la : 336
Bai 5 : Viet chng trnh nhap 1 ky t. Hien th 5 ky t ke tiep trong bo ma ASCII. Ex : nhap ky t : a 5 ky t ke tiep : b c d e f
51
Bai 6 : Viet chng trnh nhap 1 ky t. Hien th 5 ky t ng trc trong bo ma ASCII. Ex : nhap ky t : f 5 ky t ke tiep : a b c d e Bai 7 : Viet chng trnh nhap 1 chuoi ky t. In chuoi a nhap theo th t ngc. Ex : nhap ky t : abcdef 5 ky t ke tiep : fedcba
52
MACRO MACRO
nh ngha Macro v gi Macro Van e truyen thong so trong Macro. Macro long ng nhau. S dung ng Macro e goi chng trnh con. Cac toan t Macro. Th vien Macro So sanh nh viec dung ng Macro vi Procedure Mot so Macro mau.
CHUONG 9 MACRO 1
LM QUEN VI MACRO
Khi ta c nhiu on code ging nhau, chng ta c th dng macro thay th, ging nh ta dng define trong C. Th d chng ta thay th an lnh sau bng macro in du xung dng.
MOV DL,13 ; v u dng MOV AH,2 INT 21H MOV DL,10 ; xung dng mi MOV AH,2 INT 21H
CHUONG 9 MACRO
Thay v phi vit li 6 dng lnh trn, ta c th to 1 macro c tn @Newline thay th on code ny :
@NewLine Macro MOV DL,13 MOV AH,2 INT 21H MOV DL,10 MOV AH,2 INT 21H ENDM Sau , bt k ch no cn xung dng, ta ch cn gi macro @NewLine. @NewLine
CHUONG 9 MACRO
CHUONG 9 MACRO
M RONG NG CUA MACRO CO THE XEM TRONG FILE.LIST. 3 DIRECTIVE BIEN DCH SAU SE QUYET NH M RONG NG MACRO NH THE NAO. O.
.SALL (SUPRESS ALL) PHAN M RONG NG MACRO KHONG C IN. S DUNG NG KHI MACRO LN HAY MACRO C THAM CHIEU NHIEU LAN TRONG CT. .XALL CH NHNG DONG NG MACRO TAO MA NGUON MI C IN RA.TH DU CAC DONG NG CHU THCH C BO QUA. AY LA TUY CHON DEFAULT. .LALL (LIST ALL) TOAN BO CAC DONG NG TRONG MACRO C IN RA TR NHNG CHU THCH BAT AU BANG NG 2 DAU ;;
CHUONG 9 MACRO 6
CHUONG 9 MACRO
CHUONG 9 MACRO
SWAP MACRO BIEN1, N1, BIEN2 N2 MOV AX, BIEN1 XCHG AX, BIEN2 MOV BIEN1, AX ENDM GOI : SWAP TRI1, TRI2
CHUONG 9 MACRO
PUTCHAR MACRO CHAR MOV AH, 2 MOV DL, CHAR INT 21H ENDM
CHUONG 9 MACRO
10
MACRO TRUYN THNG S Th d : macro @Printstr Vit chng trnh in 2 chui Hello v Hi. .DATA MSG1 DB Hello,13,10 MSG2 DBHi,13,10 .CODE . MOV DX, OFFSET MSG1 MOV AH,9 INT 21H MOV DX, OFFSET MSG2 MOV AH,9 INT 21H .. Ta thy on 1 v on 2 gn ging nhau c th to macro c tham s nh sau :
;1 ;1 ;1 ;2 ;2 ;2
CHUONG 9 MACRO
11
TH DU VE MACRO DISPLAY MACRO STRING PUSH AX PUSH DX LEA DX, STRING MOV AH,9 INT 21H POP DX GOI : DISPLAY POP AX ENDM
CHUOI
CHUONG 9 MACRO
12
LOCATE MACRO ROW, COLUMN S DUNG MACRO PUSH AX PUSH BX TA CO CAC DANG S DUNG PUSH DX SAU : MOV BX, 0 LOCATE 10,20 MOV AH, 2 LOCATE ROW, COL MOV DH, ROW MOV DL, COLUMN LOCATE CH, CL INT 10H POP DX CHU Y : KHONG DUNG CAC POP BX THANH GHI AH,AL,BH,BL V POP AX SE UNG O VI CAC ENDM
13
DISPLAY_AT MACRO ROW, COL, STRING LOCATE ROW, COL ;Goi macro nh v cursor DISPLAY STRING ; Goi Macro xuat string ENDM MOT MACRO CO THE THAM CHIEU EN CHNH NO, NHNG MACRO NH VAY GOI LA MACRO E QUI.
CHUONG 9 MACRO 14
CU PHAP :
LOCAL LABEL_NAME
CHUONG 9 MACRO
15
Mot so Macro yeu cau user nh ngha cac thanh phan d lieu va cac nhan ben trong nh ngha cua Macro. Neu s dung Macro nay nhieu hn 1 lan trong cung mot chng trnh, trnh ASM nh ngha thanh phan d lieu hoac nhan cho moi lan s dung cac ten giong nhau lap lai khien cho ASM bao loi. e am bao ten nhan ch c tao ra 1 lan, ta dung ch th LOCAL ngay sau phat bieu Macro Khi ASM thay 1 bien c nh ngha la LOCAL no se thay the bien nay bang 1 ky hieu co dang ??n, trong o n la 1 so co 4 ch so. Neu co nhieu nhan co the la ??0000, ??0001, ??0002 ... Ta can biet ieu nay e trong CT chnh ta khong s dung cac bien hay nhan i cun g 1 dang. CHUONG 9 MACRO 16
ASM SE DUNG C CHE ANH SO CAC NHAN (T 0000H EN FFFFH) E ANH DAU CAC NHAN CO CH NH LOCAL.
CHUONG 9 MACRO
18
Th du minh hoa
Viet 1 macro a t ln hn trong 2 t vao AX
GETMAX MACRO WORD1, WORD2 LOCAL EXIT MOV AX, WORD1 CMP AX, WORD2 JG EXIT MOV AX, WORD2 EXIT : ENDM
GIA S FIRST,SECOND, THIRD LA CAC BIEN WORD. S THAM CHIEU MACRO C M RONG NH SAU : MOV AX, FIRST CMP AX, SECOND JG ??0000 MOV AX, SECOND ??0000:
CHUONG 9 MACRO 19
Th du minh hoa
Viet 1 macro a t ln hn trong 2 vao AX
LI GOI MACRO TIEP THEO : S THAM CHIEU LIEN TIEP GETMAX SECOND, THIRD C M RONG NH SAU : MOV AX, SECOND CMP AX, THIRD JG ??0001 ??0001 :
MACRO NAY HAY EN MACRO KHAC KHIEN TRNH BIEN DCH CHEN CAC NHAN ??0002, ??0003 VA C NH VAY TRONG CHNG TRNH CAC NHAN NAY LA DUY NHAT.
CHUONG 9 MACRO
20
TH VIEN MACRO
CAC MACRO MA CHNG TRNH THAM CHIEU CO THE AT FILE RIENG TA CO THE TAO 1 FILE TH VIEN CAC MACRO. DUNG 1 EDITOR E SOAN THAO MACRO LU TR TEN FILE MACRO.LIB KHI CAN THAM CHIEU EN MACRO TA DUNG CH TH INCLUDE TEN FILE TH VIEN MOT CONG DUNG QUAN TRONG CUA MACRO LA TAO RA CAC LENH MI.
CHUONG 9 MACRO
21
TAC DUNG NG : LAP LAI KHOI LENH NH TUY THEO DANH SACH CH TR. SO LAN LAP CHNH LA SO TR TRONG DANH SACH CH MOI LAN LAP LAI SE THAY <THONG SO> BANG NG 1 TR TRONG DANH SACH CH VA SE LAN LT LAY HET CAC TR TRONG DANH SACH. CH.
EX : PROCTABLE LABEL WORD IRP PROCNAME, <MOVEUP, MOVDOWN,MOVLEFT,MOVRGHT> DW PROCNAME ENDM
CHUONG 9 MACRO 24
CHUONG 9 MACRO
25
BI TP MACRO
Bi 1 : 1. Vit mt MACRO tnh USCLN ca 2 bin s M v N. Thut ton USCLN nh sau : WHILE N <> 0 DO M = M MOD N Hon v M v N END_WHILE Bi 2 : MACRO doi tu so chua trong ax sang chuoi tro den boi DI ; in : DI =offset chuoi ; AX =so can doi ; out: khong co(chuoi van do di tro toi)
CHUONG 9 MACRO
26
Bi 3 :Vit macro chuyen tu chuoi thanh so chua trong ax ; in : DI =offset chuoi ; out : AX =so da doi
Bi 4 : Vit MACRO xut s hecxa cha trong AL ra mn hnh ; INPUT : AL cha s cn xut; OUTPUT: nothing
Bi 5 : Vit Macro in s hecxa cha trong BL ra dng binary ;Input: BL cha s cn in ;Output: Nothing
CHUONG 9 MACRO
27
STACK : l mt cu trc d liu mt chiu. Cc phn t ct vo v ly ra theo phng thc LIFO (Last In First Out). Mi chng trnh phi dnh ra mt khi b nh lm stack bng khai bo STACK. V d : .STACK 100H ; Xin cp pht 256 bytes lm stack
LP TRNH VI STACK
Trong lp trnh c khi cn truy xut n cc phn t trong STACK nhng khng c thay i trt t ca STACK. thc hin iu ny ta dng thm thanh ghi con tr BP : tr BP v nh Stack : MOV BP,SP thay i gi tr ca BP truy xut n cc phn t trong Stack : [BP+2]
Phn t c a vo STACK ln u tin gi l y STACK, phn t cui cng c a vo STACK c gi l nh STACK. Khi thm mt phn t vo STACK ta thm t nh, khi ly mt phn t ra khi STACK ta cng ly ra t nh a ch ca nh nh STCAK lun lun b thay i.
SS dng lu a ch segemnt ca on b nh dng lm STACK SP lu a ch ca nh nh STACK (tr ti nh STACK)
TH D
STACK A,B,C l cc Word MOV BP,SP
D C
;AX = D ;AX = C
SP
B A
lu 1 phn t vo Stack ta dng lnh PUSH ly 1 phn t ra t Stack ta dng lnh POP
PUSH ngun : a ngun vo nh STACK PUSHF : ct ni dung thanh ghi c vo STACK ngun l mt thanh ghi 16 bit hay mt t nh
POP v POPF : dng ly mt phn t ra khi STACK. C php : POP ch : a ngun vo nh STACK POPF : ct ni dung nh STACK vo thanh ghi c Ch : - y ch l mt thanh ghi 16 bit (tr thanh ghi IP) hay mt t nh Cc lnh PUSH, PUSHF, POP v POPF khng nh hng ti cc c
MT S NG DNG CA STACK
Khc phc cc hn ch ca lnh MOV Ex : MOV CS,DS ; sai PUSH DS POP CS ; ng
Truyn tham s cho cc chng trnh con Lu tm thi gi tr thanh ghi hay bin.
TH D 2
Nhp vo 1 chui, in chui o ngc Ex : nhp : Cong nghe thong tin xut : int gnoht ehgn gnoC
V d minh ha : dng STACK trong thut ton o ngc th t nh sau : ; Nhp chui k t Khi ng b m c mt k t WHILE k t <> 13 DO Ct k t vo STACK Tng bin m c mt k t END_WHILE ; Hin th o ngc FOR bin m ln DO Ly mt k t t STACK Hin th n END_FOR Chng 10: CHNG TRNH CON
10
CTC l 1 nhm cc lnh c gp li di 1 ci tn m ta c th gi t nhiu ni khc nhau trong chng trnh thay v phi vit li cc nhm lnh ny ti ni cn n chng.
Li ch
CTC lm cho cu trc logic ca ca CT d kim sot hn, d tm sai st hn v c th ti s dng m tit kim c cng sc v thi gian lp trnh.
Chng 10: CHNG TRNH CON 11
CU TRC CA CTCON
TNCTC PROC [NEAR|FAR] CC LNH CA CTC RET TNCTC ENDP
12
MINH HA
Vit chng trnh nhp 1 s n (n nguyn dng v <9). Tnh giai tha ca n v xut ra mn hnh di dng s hex (gii hn kt qu 16 bit). Vit chng trnh tm s hon thin (gii hn 2 ch s) v in n ra mn hnh.
13
TH D
.DATA EXTRN MemVar : WORD, Array1 : BYTE , ArrLength :ABS .CODE EXTRN NearProc : NEAR , FarProc : FAR . MOV AX,MemVar MOV BX, OFFSET Array1 MOV CX, ArrLength CALL NearProc . CALL FarProc ..
14
C CH LM VIC CA CTC
C ch gi v thc hin CTC trong ASM cng ging nh ngn ng cp cao.
Khi gp lnh gi CTC th : . a ch ca lnh ngay sau lnh gi CTC s c a vo STACK. . a ch ca CTC c gi s c np vo thanh ghi IP. . Quyn iu khin ca CT s c chuyn giao cho CTC. . CTC s thc hin cc lnh ca n v khi gp RET, n s ly a ch ct trn STACK ra v np li thanh ghi IP thc thi lnh k tip.
Chng 10: CHNG TRNH CON 15
PUBLIC EXTRN GLOBAL thun li trong vic dch, lin kt chng trnh a file, Assembler cung cp cc iu khin Public, Extrn v Global.
PUBLIC
Ch cho Assembler bit nhn (label) no nm trong module ny c php s dng cc module khc. C php : PUBLIC tn nhn khai bo nhn
16
EXTRN
Bo cho Assembler bit nhng nhn c khai bo PUBLIC cc module khc c s dng trong module ny m khng cn phi khai bo li.
PROC
Chng 10: CHNG TRNH CON 17
GLOBAL
Vit chng trnh nm trn 2 file (2 module) vi s phn cng nh sau : Module ca chng trnh chnh (Main.ASM) c nhim v xc nh Offset ca 2 chui k t v gi CTC ni 2 chui ny v cho hin kt qu ra mn hnh. Module CTC (Sub.ASM) lm nhim v ni 2 chui v a vo b nh.
18
19
Cho php nhiu user cng tham gia gii quyt 1 chng trnh ln. Sa module no th ch cn dch li module . Mi module ch gii quyt 1 vn d tm sai st.
20
VN TRUYN THAM S
CHUYN GI TR CA THAM S T CT GI CT C GI
C 3 cch truyn tham s Thng qua thanh ghi Thng qua bin ton cc Thng qua STACK
Chng 10: CHNG TRNH CON 21
24
25
26
NEAR | FAR bo cho lnh RET ly a ch quay v chng trnh gi n trong STACK.
NEAR : ly a ch OFFSET (16BIT) trong STACK v gn vo thanh ghi IP. FAR : ly a ch OFFSET v SEGMENT trong STACK np vo thanh ghi CS:IP.
27
VN BO V CC THANH GHI
CN C QUAN TM TRONG QU TRNH LP TRNH ASM. RT D XY RA CC TRNG HP LM MT GI TR CA M CT CHNH T VO THANH GHI S DNG SAU NAY KHI TA GI CTCON.
28
CC V D MINH HA
NHP VO 1 S H HEX. IN RA S NHP VI YU CU SAU : ViT CTCON NHP S ViT CTCON XUT S CTCHNH GI 2 CTCON TRN.
29
Bi 3 :Vit chng trnh kim tra mt biu thc i s c cha cc du ngoc (nh (), [] v {}) l hp l hay khng hp l . V d : (a + [b { c * ( d e ) } ] + f) l hp l nhng (a + [b { c * ( d e )] } + f) khng hp l. HD : dng ngn xp PUSH cc du ngoc tri ( (, {, [ ) vo Stack
30
Bi 4 : Vit chng trnh nhp vo 1 k t, cho bit k t va nhp thuc loi gi ? k t, k s ,ton t ton hc hay k t khc. Nu k t l phm Escape th thot chng trnh.
31
Bi 6 :Vit chng trnh nhp 1 chui k t. Xut k t di dng vit hoa k t u ca tng t, cc k t cn li l ch thng Ex : Nhp : ngo phuoc nguyen Xut : Ngo Phuoc Nguyen Nhp : VU tHanh hIEn Xut : Vu Thanh Hien Bi 7 : Vit chng trnh tm s hon thin (gii hn 2 ch s). Xut cc s hon thin t s ln nht n s nh.
32
Gii thieu man hnh & viec quan ly man hnh Hieu c to chc cua man hnh. So sanh nh chc nang ieu khien man hnh cua INT 10h cua ROM BIOS vi chc nang cua INT 21h. Biet cach ch lap trnh quan ly man hnh trong ASM. Biet cach ch lap trnh x ly phm va 1 so ng ng dung ng cua no.
MN HNH
C TRNG CA MN HNH
CH HA
800x600x16 bits = 960 000 bytes 1Mb 1024x 768x32 bits 3.145.728 bytes 4Mb
RAM MN HNH
Dung lng
THUOC TNH MAN HNH Moi v tr tren man hnh co the lu 1 ky t n cung ng vi thuoc tnh rieng cua ky t nay chang ng han nh ao mau, u, nhap nhay, y, chieu sang, ng, gach ch di ... Thuoc tnh cua ky t c lu trong 1 byte goi la byte thuoc tnh.
HIGHT/LOW BIT 7 6 5 4 3 2 1 0
0
BLINK
1
9
BACKGROUND BITS
FOREGROUND BITS
THUOC TNH MAN HNH Ex : cac ky t mau vang ng chanh nhap nhay tren nen mau nau
BLINK = 10000000B RED = 100B MOV BH, (RED SHL 4) +YELLOW+BLINK
E TAO 1 BYTE THUOC TNH VIDEO T 2 MAU , TA DUNG SHL CHUYEN CAC BIT MAU NEN SANG TRAI 4 VI TR.
10
VUNG NG HIEN TH MAN HNH Vung ng hien th cua man hnh n sac a ch B000h trong Bios. Vung ng hien th video o hoa mau c ban bt au t v tr B800h cua Bios.
11
THUOC TNH MAN HNH Ca nh chua nh Cac thuo thuoc t tnh chuan cu cua ma man h hnh Monochrome :
HEX VALUE 07H 87H 0FH 70H 01H 09H ATTRIBUTE Normal thng ng Blinking nhap nhay Bright sang ng Reverse ao thuoc tnh Underline Bright Underline
12
0: , 1 , 2 Bit
g n a s : o
13
LIGHT GREEN 1011 1100 1101 LIGHT CYAN LIGHT RED LIGHT MAGENTA
EX : 01101110 : 06EH nen Brown, ch Yellow, khong nhap nhay. EX : 11010010 : 0D2H nen Magenta, ch Green, nhap nhay.
Chuoung 10 Lap trinh xu ly man hinh 14
CAC MODE MAN HNH Cac Card man hnh CGA,EGA,VGA chuyen oi Video mode nh INT 10h. cho phep
Cac trnh ng ng dung ng thng ng dung ng INT 10h e tm Video mode hien hanh. nh. Ex: 1 ng ng dung ng thng ng muon the hien o hoa vi o phan giai cao (640x200) phai kiem tra chac chan rang ng MT hien ang s dung ng ang dung ng Card man hnh CGA,VGA hoac EGA.
15
CAC MODE MAN HNH Co 2 che o lam viec cua man hnh : text va o hoa. a.
Man hnh la hnh anh cua Video Ram.
che o text mot trang man hnh can toi thieu bao nhieu byte cua VIDEO Ram
16
80x25 black and white text 80x25 color text 320x400 4 color graphics 640x200 2 color graphics 80x25 black and white text, monochrome adaptor only 320x200 16 color graphics 640x200 16 colors graphics, EGA, VGA only 640x350 monochrome graphics, EGA, VGA only 640x350 16 colors graphics, EGA, VGA only
Chuoung 10 Lap trinh xu ly man hinh 17
TRANG MAN HNH (VIDEO PAGE) Tat ca cac Card CGA eu co kha nang lu tr nhieu man hnh text goi la cac trang man hnh (video page) trong bo nh. Rieng card mono ch hien th 1 trang trang 0. So trang phu thuoc vao mode man hnh. Trong card man hnh mau, u, ta co the ghi vao 1 trang nay trong khi hien th trang khac hoac chuyen oi qua lai v tr gia cac trang. Cac trang c anh nh so t 0 en 7.
Chuoung 10 Lap trinh xu ly man hinh 18
TRANG MAN HNH (VIDEO PAGE) so trang 0 0-7 0-3 0-7 0-7 0-3 0-1 mode adaptor 07h monochrome 00h 01h CGA 02h-03h CGA 02h-03h EGA 0Dh EGA 0Eh EGA 0Fh, 10h EGA
19
TH DU VE TRANG MH
E HIEN TH 1 KY T VI THUOC TNH CUA NO TAI 1 V TR BAT KY CHA KY T VA THUOC TNH VAO T TNG NG NG TRONG TRANG HIEN TH HOAT ONG. NG.
EX : Lap ay man hnh bang ch A mau o tren nen xanh
20
CH HA
21
. 1. Chn ch hin th : Chc nng AH = 0, ngt 10H Vo : AH = 0, AL = kiu V d : thit lp ch vn bn mu XOR AH, AH MOV AL, 3 ; ch vn bn mu 80 x 25 INT 10H
22
Chc nng AH = 1, ngt 10H Vo : AH = 1, CH = dng qut u, CL = dng qut cui V d : thit lp con tr vi kch thc ln nht MOV AH, 1 MOV CH, 0 ; dng bt u MOV CL, 13 ; dng kt thc INT 10H
23
Chc nng AH = 2, ngt 10H Vo : AH = 2, DH = dng mi (0-24), DL = ct mi (0-79) BH = s hiu trang V d : Di chuyn con tr n gia mn hnh 80 x 25 ca trang 0 MOV AH, 2 XOR BH, BH ; trang 0 MOV DX, 0C27H ; dng 12 ct 39 INT 10H
24
Chc nng AH = 3, ngt 10H Vo : AH = 3, BH = s hiu trang Ra : DH = dng, DL = ct, CH = dng qut u, CL = dng qut cui V d : Di chuyn con tr ln mt dng nu n khng dng trn cng MOV AH, 3 XOR BH, BH ; trang 0 INT 10H OR DH, DH ; dng trn cng DH = 0 ? JZ exit MOV AH, 2 ; chc nng dch con tr DEC DH ; gim mt dng INT 10H exit :
Chuoung 10 Lap trinh xu ly man hinh 25
CUN MN HNH
Chc nng AH = 6, ngt 10H Vo : AH = 6, AL = s dng cun (= 0 l ton mn hnh) Ra : BH = thuc tnh cc dng trng , CH, CL = dng, ct gc tri trn DH, DL = dng, ct gc phi di ca ca s
V d : Xo en mn hnh 80 x 25 MOV AH, 6 XOR AL, AL XOR CX, CX MOV DX, 184FH ; gc phi di MOV BH, 7 INT 10H
Chuoung 10 Lap trinh xu ly man hinh 26
V d tng hp : Vit chng trnh thc hin nh sau: . Lp ch hin thi mu 80 x 25 . Xo ca s ti gc tri trn : ct 26 dng 8 v gc phi di ti ct 52 dng 16 thnh mu . . Sau hin th k t A mu cam ti v tr con tr.
27
0 1 2 3 4 5 6 7
8 9
set video mode chon mono, text, graphic hoac color mode Set cursor line thiet lap 1 dong quet tao dang cho cursor. Set cursor position nh v cursor get cursor position lay v tr cursor oc v tr va trang thai cua but ve light pen. chon trang muon hien th. cuon ca so hien hanh len, the cac dong cuon bang ktrong.
cuon ca so hien hanh xuong. oc ky t va thuoc tnh ky t tai v tr con tro hien hanh. ghi ky t va thuoc tnh ky t tai v tr con tro hien hanh.
Chuoung 10 Lap trinh xu ly man hinh 28
0Ah
0Bh Chon palette mau 0Ch Ghi 1 iem graphic trong graphics mode. 0Dh oc gia tr mau cua 1 pixel co v tr a biet. 0Eh Ghi ky t ra man hnh va cap nhat con tro sang phai 1 vtr. 0Fh Lay mode man hnh hien hanh e xem ang che o text hay graphics.
29
Thiet lap video mode. AH = 0 AL = mode. Neu bit cao cua AL =0 se t ong ng xoa man hnh. Neu bit cao cua AL = 1 khong xoa man hnh. Ex : thiet lap 80x25 color text mode MOV AH, 0 MOV AL, 3 ; mode 3 , co xoa man hnh INT 10h
LU Y : Khong muon xoa man hnh th AL = 83H
Chuoung 10 Lap trinh xu ly man hinh 30
HAM 0H IN T 10 H
H M 0H I NT 10H
Ex : oan chng trnh sau se thiet lap video mode la hight resolution graphics, i go 1 phm sau o thiet lap video mode la color text mode.
MOV AH, 0 ; set video mode MOV AL, 6 ; 640x200 color graphics mode INT 10h MOV AH, 1 ; i go 1 phm INT 21H MOV AH, 0 ; set video mode MOV AL, 3 ; color text mode INT 10H
Chuoung 10 Lap trinh xu ly man hinh 31
Dang ng con tro man hnh c tao ra bang ng cach ch ch nh so dong ng quet. t. Viec thay oi dang ng con tro chnh la thay oi so lng ng va v tr dong ng quet nay. y. Man hnh monochrome dung ng 13 dong ng (t 0 0Ch) Man hnh CGA,VGA dung ng 8 dong ng (t 0-7).
0 0
12 CGA/EGA 7
Chuoung 10 Lap trinh xu ly man hinh
MONOCHROME 32
e thay oi dang con tro : AH = 1 CH = TOP (dong au) CL = BOTTOM (dong cuoi)
33
Ex2: tra kch thc con tro ve dang ng mac nh trc khi thoat. t.
MOV AH, 3
MOV AH , 1 MOV CX, 0607H INT 10H MOV AX, 4C00H INT 21H
MOV BH, 0 INT 10H MOV SAVECURSOR, CX OR CH, 00100000 INT 10H ..... . MOV AH, 1 MOV CX, SAVECURSOR
Ex2: lu kch thc con tro hien hanh nh vao 1 bien trc khi thay oi kch thc con tro e sau nay phuc hoi lai. Chuoung 10 Lap trinh xu ly man hinh i.
INT 10H
34
Ex : THIET LAP CURSOR TAI TOA O (DONG 10, COT 20) CUA TRANG 0 MOV AH, 2 MOV DH, 10 MOV DL, 20 MOV BH,0 INT 10H ; Chc nang set cursor ; dong 10 ; cot 20 ; trang 0 ; goi BIOS
Chuoung 10 Lap trinh xu ly man hinh 35
AH =3 ; BH= TRANG MAN HNH MUON LAY CURSOR Ga tr tra ve : CH= Dong quet au cua cursor CL = Dong quet cuoi cua cursor DH = v tr dong man hnh DL = v tr cot man hnh
36
Ex : lay v tr cua cursor lu vao bien. Thng dung trong cac tac vu menu.
MOV AH, 3 MOV BH, 0 INT 10H MOV SAVECURSOR, CX MOV CURRENT_ROW , DH MOV CURRENT_COL , DL
37
AH = 5 ; AL = TRANG MAN HNH SE LA TRANG HIEN HANH EX : THAY OI TRANG MH KHI GO 1 PHM BAT KY
DOSSEG .MODEL SMALL .STACK 100H .CODE MAIN PROC MOV AX, @DATA MOV DS,AX
MOV DX, OFFSET TRANG0 INT 21H MOV AH , 1 INT 21H SANG_TRANG_1 : MOV AH, 5 MOV AL, 1
Chuoung 10 Lap trinh xu ly man hinh 38
INT 10H MOV AH, 9 MOV DX, OFFSET TRANG1 INT 21H MOV AH, 1 INT 21H SANG_TRANG_0 : MOV AH, 5 MOV AL, 0
INT 10H MOV AX, 4C00H INT 21H MAIN ENDP .DATA TRANG0 DB DAY LA TRANG 0,$ TRANG1 DB DAY LA TRANG 1,$ END MAIN
39
CUON MAN HNH LA TAC VU LAM CHO D LIEU TRT LEN HOAC XUONG. CAC DONG D LIEU B CUON SE C THAY THE BANG CAC DONG TRON G NH NGHA WINDOWS NH HE TOA O TA
HANG COT VI GOC TOA O LA GOC TREN TRAI CUA MAN HNH. HANG SE THAY OI T 0 EN 24 T TREN XUONG. COT SE THAY OI T 0 EN 79 T TRAI SANG PHAI.
TOAN BO WINDOWS B CUON MAN HNH B XOA. Chuoung 10 Lap trinh xu ly man hinh
40
CAC THONG SO : CUON LEN AH =6 ; CUON XUONG AH = 7 AL = SO DONG SE CUON ( = 0 NEU CUON TOAN BO MAN HNH) CH, CL = TOA O HANG,COT CUA GOC TREN TRAICUA WINDOWS DH, DL = TOA O HANG, COT CUA GOC DI PHAI CUA WINDOWS BH = THUOC TNH MAN HNH CUA CAC DONG TRONG KHI MAN HNH A CUON.
41
EX : XOA MAN HNH BANG CACH CUON LEN TOAN BO MAN HNH VI THUOC TNH NORMAL MOV AH, 6 MOV AL, 0 MOV CH, 0 MOV CL, 0 MOV DL, 24 MOV DH, 79 MOV BH, 7 INT 10H MOV AX, 0600H MOV CX, 0000H MOV DX, 184FH MOV BH, 7 INT 10H
42
EX : CUON WINDOWS T (10,20) TI (15,60), CUON XUONG 2 DONG, 2 DONG CUON SE CO THUOC TNH VIDEO AO.
MOV AX, 0702H MOV CX,0A14H MOV DX, 0F3CH MOV BH, 70H INT 10H
Chuoung 10 Lap trinh xu ly man hinh 43
AH =8 ; BH = TRANG MAN HNH TRI TRA VE : AL = KY T A OC C ; AH = THUOC TNH CUA KY T EX : THIET LAP CURSOR TAI HANG 5 COT 1 SAU O NHAN 1 KY T NHAP.LU KY T A OC C VA THUOC TNH CUA KY T NAY. LOCATE : MOV AH, 2 MOV BH, 0 MOV DX, 0501H INT 10H GETCHAR : MOV AH, 8 MOV BH, 0 INT 10H MOV CHAR, AL MOV ATTRIB , AH
Chuoung 10 Lap trinh xu ly man hinh 44
CHC NANG 09H INT 10H : XUAT (GHI) 1 HOAC NHIEU KY T CUNG VI THUOC TNH CUA CHUNG LEN MAN HNH. CHC NANG NAY CO THE XUAT MOI MA ASCII KE CA KY T O HOA AC BIET CO MA T 1 EN 31
45
CHC NANG 0AH INT 10H : XUAT (GHI) 1 HOAC NHIEU KY T CUNG VI THUOC TNH CUA CHUNG LEN MAN HNH. CHC NANG NAY CO THE XUAT MOI MA ASCII KE CA KY T O HOA AC BIET CO MA T 1 EN 31
46
CHC NANG 0AH INT 10H : XUAT (GHI) 1 HOAC NHIEU KY T CUNG VI THUOC TNH CUA CHUNG LEN MAN HNH. CHC NANG NAY CO THE XUAT MOI MA ASCII KE CA KY T O HOA AC BIET CO MA T 1 EN 31
47
CHC NANG 0FH INT 10H : LAY VIDEO MODE AH =0F ; BH = TRANG HIEN HANH AH = SO COT MAN HNH ; AL = MODE MAN HNH HIEN HANH
EX : MOV AH,0FH ; Get Video Mode Function INT 10H ; goi BIOS MOVE VIDEO_MODE, AL ; lu Video Mode vao bien bo nh MOV PAGE, BH ; lu trang hien hanh.
48
LP TRNH X L PHM
1. c phm nhn : Chc nng AH = 0, ngt 16H Vo : AH = 0 Ra : AL = m ASCII nu mt phm ASCII c nhn = 0 nu phm iu khin c nhn AH = m scan ca phm nhn
49
LP TRNH X L PHM
BN PHM
50
BN PHM
51
BN PHM
52
BN PHM
53
BN PHM
54
BN PHM
55
LP TRNH X L PHM
Kim tra trng thi cc phm Ctrl, Alt, Shift :
Chng ta c th c trc tip t a ch 0:0417 hoc ly trong AL thng qua hm AH = 2 ngt 16H. Cch c trc tip XOR AX, AX MOV ES, AX MOV AL, ES:[417H] TEST AL, 01H ; kim tra phm Shift JNZ SHIFT_DANGNHAN TEST AL, 04H ; kim tra phm Ctrl JNZ CTRL_DANGNHAN TEST AL, 08H ; Kim tra phm Alt JNZ ALT_DANGNHAN
56
3. Kim tra v thit lp trng thi cc phm Caps/Num/Scroll Lock tng t nhng vi m scan khc Scroll = 10H, Num = 20H, Cap = 40H. 4. t li cc trng thi n Caps/Num/Scroll Lock, ta ch cn t li gi tr a ch 0:0417. Vd, bt n Caps Lock v i trng thi n Num Lock ta s lm nh sau: XOR AX, AX MOV ES, AX ; ES = 0 MOV AL, ES:[417H] ; c trng thi n OR AL, 40H ; bt n Caps Lock XOR AL, 20H ; o n Nums Lock MOV ES:[417H], AL ; MOV AH , 2H INT 16H
Chuoung 10 Lap trinh xu ly man hinh 57
58
1. Vit chng trnh : a. Xo mn hnh, to kch thc to nht cho con tr v di chuyn n n gc tri trn b. Nu nhn phm Home : chuyn con tr n gc tri trn, End : chuyn n gc tri di, Page Dn : chuyn con tr n gc phi di, Esc : kt thc chng trnh. 2. Dch chuyn con tr n gc tri trn mn hnh nu phm F1 c nhn, gc tri di nu phm F2 c nhn. Chng trnh s b qua cc k t thng thng. 3. Vit chng trnh son tho vn bn nh sau : a. Xo mn hnh, nh v con tr ti u dng 12 b. ngi s dng nh vo cc k t. Con tr dch chuyn i sau khi hin th k t nu n khng ti l phi ca mn hnh c. Phm mi tn tri , phi, ln , xung dch con tr tng ng d. Phm Insert : chn k t, Delete : Xo mt k t , Esc : kt thc chng trnh.
Chuoung 10 Lap trinh xu ly man hinh 60
MA SCAN CODE CUA CAC PHM MUI TEN : TRAI 4BH PHAI 4DH LEN 48H XUONG 50H
61
LP TRNH X L A&FILE
C BN V LU TR TRN A T. MT NG DNG HIN TH SECTOR MT NG DNG HIN TH CLUSTER. CC CHC NNG V FILE MC H THNG. QUN L A V TH MC. TRUY XUT A VI INT 13H CA ROMBIOS BI TP GiI THIU FILE V LP TRNH X L FILE
4/4/2006
C BN V LU TR TRN A T
Ngn ng ASM vt tri hn cc ngn ng khc v kh nng x l a. Ta xem xt vic lu tr thng tin trn a theo 2 mc : mc phn cng/BIOS v mc phn mm/DOS. mc phn cng :lu tr thng tin lin quan n cch d liu c lu tr 1 cch vt l nh th no trn a t? mc phn mm : vic lu tr c qun l bi tin ch qun l File ca HH DOS.
4/4/2006 LAP TRINH XU LY DIA TU 2
4/4/2006
4/4/2006
4/4/2006
4/4/2006
mc lun l : a c t chc thnh cc Clusters, cc files m DOS s dng cp pht vng lu tr cho d liu cn lu tr. Cluster : l 1 nhm gm 2,4,6 cc sector k nhau. chnh l n v cp pht vng lu tr cho d liu (file). Cc cluster c nh s bt u t 0. Nu d liu cn lu tr ch 1 byte th h iu hnh cng cp pht 1 cluster. s bytes/cluster hay sector/cluster ty thuc vo tng loi a.
4/4/2006 LAP TRINH XU LY DIA TU 9
0 0 0 1 1 0
0 0 0 0 0 1
4/4/2006
10
BAD SECTOR Trn b mt a c th tn ti cc sector m HH khng th ghi d liu vo hoc khng th c d liu t . Cc sector ny gi l Bad Sector. Lm sao bit sector no l bad sector
Kim tra gi tr ca cc phn t (entry) trong bng FAT, phn t no cha gi tr (F)FF7H th cluster tng ng b Bad
4/4/2006
11
BNG FAT FILE ALLOCATION TABLE DOS qun l cc File nh vo 1 bng gi l bng FAT. Trong bng FAT c ghi cluster bt u ca File ny u ? V a cn bao nhiu Clusters trng cha cp pht. t chc lun l ca a c m t nh hnh sau : Bng Boot Bng Root data FAT2 record FAT1 directory
4/4/2006
12
Th d v bng FAT
a mm 3.5 360K th : Sector 0 : boot sector Sector 1-4 : bng FAT Sector 5 11 : th mc gc Sector 12-719 : vng cha data
4/4/2006
13
BOOT RECORD Cn c gi l Boot Sector. a cng gi l Master boot, l Sector u tin khi a c format. cha 1 chng trnh nh cho bit dng lu tr trn a v tn h thng MT, kim tra xem c cc file h thng IO.SYS, MSDOS.SYS, COMMAND.COM hay khng ?
4/4/2006
16
3 8 2 1 2 1
ch th nhy v ni cha CT np mi Tn nh sn xut v h iu hnh Bytes/sector Sector/block (mi block >=1 sector) S lng Sectors khng dng n k t sector 0. S lng bng FAT
4/4/2006
17
2 2 1 2 2 2 4 4
S Entry ca th mc gc a. Tng s sector ca a logic ny. Byte m t S sector cho 1 bng FAT S Sectors trong 1 track. S lng u c S lng sector n Tng s sectors
LAP TRINH XU LY DIA TU 18
Bootstrap
4/4/2006
19
4/4/2006
20
BNG FAT
Bng cha cc danh sch lin kt cc clusters. Mi danh sch trong bng cho DOS bit rng cc clusters no cp pht, cc clusters no cha dng. ty theo a c th c 1 hay 2 bng FAT, bng FAT2 d phng. c 2 loi bng FAT : bng c Entry 12 bit cho a mm. bng c Entry 16 bit cho a cng.
4/4/2006
21
64 Bytes ca Partiton table c chia lm 4, mi phn 16 bytes m t cho 1 partition cc thng tin sau : Bytes 00H 01H 02H active flag (=0 Non bootable =80H Bootable) starting head Ni bt u Partittion starting cylinder M t
PARTITON TABLE
4/4/2006
22
PARTION TABLE Bng FDISK ca HH ta c th chia khng gian lu tr ca a cng thnh cc phn khc nhau gi l Partition. DOS cho php to ra 3 loi Partition : Primary Dos, Extended Dos v None Dos Ta c th ci t cc HH khc nhau ln cc Partition khc nhau.
4/4/2006
23
03H 04H
0 Non Dos
PARTITON TABLE
1 cho a nh 12 bit FAT Entry 4 cho a ln 16 bit FAT Entry 5 Extended Dos 05H 06H 07H 08H, 0BH 0Ch,0FH
4/4/2006
Ending ni kt thc Partition Ending Cylinder Ending Sector Starting sector for partition Partition length in sectors
LAP TRINH XU LY DIA TU 24
Mt s th d
kim tra Partition Active c sector u tin ca a cng lu vo bin. kim tra offset 00 ca 4 phn t Partition trong Partition Table MOV CX, 4 MOV SI, 1BEH PACTIVE : MOV AL, MBOOT [SI] CMP AL, 80H
4/4/2006
Mt s th d
c ni dung ca BootSector ghi vo bin dem c sector u tin ca a cng lu vo buffer. tm partition active (phn t trong bng partition c offset 80h) c byte ti offset 01h v word ti offset 02h ca phn t partition tng ng trn (head, sector, cylinder) xc nh s hiu bt u ca partition active boot sector ca a cng. c ni dung ca sector c c trn lu vo buffer.
4/4/2006 LAP TRINH XU LY DIA TU 26
Mt s th d
ACTIVE : MOV AX, 0201H ; c 1 sector MOV CX, WORD PTR MBOOT [SI+2] ; sector cylinder MOV DH, BYTE PTR MBOOT[SI+1] ; head MOV DL, 80H ; a cng MOV ES, CS ; tr v u vng buffer lu LEA BX, BUFFER INT 13H
4/4/2006 LAP TRINH XU LY DIA TU 27
TH MC GC (ROOT DIRECTORY)
L danh sch tt c cc Files c trn a, cc th mc cp 1 c. Mi phn t (32 bytes) trong bng th mc s cha thng tin v tn file hoc l th mc, kch thc, thuc tnh, cluster bt u ca file ny hoc cluster bt u ca th mc th cp (th mc con). mi bng th mc cha ti a 112 entry, mi entry l 32 bytes.
4/4/2006 LAP TRINH XU LY DIA TU 28
TH MC GC (ROOT DIRECTORY)
Offset 00H 08H 0BH 0CH 16H 18H 1Ah 1CH Ni dung tn chnh ca File phn m rng ca tn file thuc tnh ca File d tr gi thay i thng tin cui cng cluster u tin ca File Kch thc File
LAP TRINH XU LY DIA TU
4/4/2006
x : khng s dng a : thuc tnh lu tr (Archive) d : thuc tnh th mc con (Sub Directory) v : thuc tnh nhn a (Volume) s : thuc tnh h thng (System) h : thuc tnh n (Hidden) r : thuc tnh ch c (Read Only)
4/4/2006 LAP TRINH XU LY DIA TU 30
VNG LU TR
l vng dnh cho vic lu tr d liu. nh vy vic lu tr d liu trn a c cu trc l 1 danh sch lin kt m bng th mc gc l u ca danh sch lin kt. u mi cluster lun lun cha a ch ca cluster sau n cho bit phn cn li ca file l cluster no. Nu gi tr ny l 0 th cluster ny l cluster cui cng.
4/4/2006 LAP TRINH XU LY DIA TU 31
CLUSTERS
4/4/2006
CC LOI A
Disk Type sides track sectors total per side
360K 720K 1.2MB 1.4MB 32MB 2 2 2 2 6 40 80 80 80 614
cluster size
total bytes
per track
9 9 15 18 17
sector
4/4/2006
33
4/4/2006
34
BI TP
Vit chng trnh to th mc vi yu cu tn th mc (c th bao gm tn a, ng dn v tn th mc) c nhp t bn phm, cho php sa sai khi g nhm tn th mc.
4/4/2006
36
Vit chng trnh ghi d liu vo file vi yu cu : Tn file nhp t bn phm D liu ghi vo file cng g t bn phm v kt thc vic nhp bng phm CTRL+Z
4/4/2006
37
4/4/2006
38
Handle la 1 so 16 bits c Dos s dung e nhan biet File a m hoac 1 thiet b trong he thong.
4/4/2006
39
0 1 2 3 4
Keyboard, standard input Console, standard output Error output thiet b xuat loi man hnh Auxiliary device asynchronous Printer
4/4/2006
40
CC THAO TC X L FILE
4/4/2006
41
Chc nang
3Ch 3Dh 3Eh 3Fh 40h 42h Tao File mi
Tac vu
M File a co e xuat/nhap/va nhap va xuat ong the File oc t File hay oc t thiet b 1 so bytes nh trc Ghi vao File hay oc t thiet b 1 so bytes nh trc di chuyen con tro File trc khi oc/ ghi
4/4/2006
42
4/4/2006
43
E BAO VE FILE, CO 2 CACH : C1 : M FILE BANG CHC NANG 3Dh, NEU FILE CHA CO TH TRA VE LOI SO 2 (FILE NOT FOUND) YEN TAM M FILE MI. C2 : DUNG CHC NANG 5Bh M FILE CO KIEM TRA TEN FILE NAY A CO CHA.
4/4/2006
45
2 FILE NOT FOUND KHONG TM THAY FILE, CO THE NG DAN KHONG UNG HOAC TEN FILE MO TA KHONG HP LE. 3 PATH NOT FOUND NG DAN KHONG CO. 4 TOO MANY OPEN FILES CO THE DO LENH PATH XX TRONG CONFIG.SYS QUA NHO KHONG CHO PHEP M NHIEU FILE. 5 ACCESS DENIED T CHOI TRUY XUAT. CO THE TA MUON XOA FILE ANG M, HAY FILE NAY CO THUOC TNH CH OC. CH M truy nhp khng hp l. FH a khng hp l 10h ang tm cch xa th mc hin thi
4/4/2006 LAP TRINH XU LY DIA TU 47
4/4/2006
48
4/4/2006
49
4/4/2006
50
4/4/2006
51
Fname DB FILE1,0 FHANDLE DW ? MOV AX,@DATA MOV DS,AX MOV AH,3CH MOV CL,1 LEA DX,FNAME
4/4/2006
52
AH = 3DH DS:DX = a ch ca chui ASCII (chui tn File kt thc bng byte 0) AL = m truy cp 0 : m c 1 : m ghi 2 : m c v ghi Thnh cng, AX = Fhandle C li. M li cha trong AX (2,4,5,12)
4/4/2006
53
4/4/2006
54
LOI SO 6 : INVALID HANDLE FILE HANDLE TRONG BX KHONG PHAI LA THE FILE CUA FILE A M.
IEU KIEN : AH = 3FH BX = FILE HANDLE , CX = SO BYTES CAN OC DS:DX : A CH BO EM. XUAT : AX = SO BYTES OC C, NEU AX = 0 HAY AX<CX FILE A KET THUC. NEU C CF C LAP TRONG AX( 5,6)
4/4/2006
56
.DATA HANDLE DW ? BUFFER DB 512 DUP(?) MOV AX, @DATA MOV DS, AX MOV AH, 3FH MOV CX, 512 MOV BX, HANDLE
4/4/2006 LAP TRINH XU LY DIA TU 57
INPUT : AH =40H BX = THE FILE CX = SO BYTES CAN GHI DS:DX : A CH VUNG EM. OUTPUT : AX : SO BYTES GHI C, NEU AX<CX, CO LOI (A AY).NEU CF C LAP CO LOI, MA LOI TRONG AX (5,6).
HAM 40H CUNG CO THE DUNG E A D LIEU RA MAN HNH
4/4/2006 LAP TRINH XU LY DIA TU 58
CON TRO FILE DUNG E NH V TRONG FILE. KHI FILE C M, CON TRO FILE NAM AU FILE. SAU MOI THAO TAC OC, CON TRO FILE SE DI CHUYEN EN BYTE KE. SAU KHI GHI 1 FILE MI CON TRO CH EN CUOI FILE (EOF). E DI CHUYEN CON TRO FILE HAM 42H
4/4/2006 LAP TRINH XU LY DIA TU 59
Vit chng trnh cho php User g vo tn File (c th c km theo tn a, th mc cha fiel), chng trnh s c v hin th ni dung File ra mn hnh.
4/4/2006
60
0 DCH CHUYEN TNG OI SO VI AU FILE. 1 DCH CHUYEN TNG OI SO VI V TR HIEN THI CUA CON TRO. 2 DCH CHUYEN TNG OI SO VI CUOI FILE. BX = THE FILE. CX : DX SO BYTES CAN DCH CHUYEN. OUTPUT : DX:AX : V TR MI CUA CON TRO FILE TNH BANG BYTE T AU FILE. NEU CF =1 MA LOI TRONG AX (1, 6).
4/4/2006 LAP TRINH XU LY DIA TU 61
DI CHUYEN CON TRO FILE EN CUOI FILE VA XAC NH KCH THC FILE MOV AH, 42H XOR DX, DX XOR CX, CX ; DCH CHUYEN 0 BYTE MOV AL, 2 ; TNH T CUOI FILE INT 21H ; CHUYEN CON TRO EN CUOI FILE, DX:AX KCH THC FILE JC MOVE_ERROR
4/4/2006 LAP TRINH XU LY DIA TU 62
INPUT :
AH = 43H DS :DX = A CH CHUOI ASCII STRING AL = 0 E LAY THUOC TNH FILE AL =1 E THAY OI THUOC TNH FILE, CX = THUOC TNH FILE MI (NEU AL =1) OUTPUT : NEU THANH CONG, CX = THUOC TNH HIEN THI NEU CF C LAP CO LOI, MA LOI TRONG AX (2,3,5).
4/4/2006
63
4/4/2006
64
LP TRNH FILE 1. Vit chng trnh chp mt file ngun n mt file ch trong thay ch thng bng ch hoa. 2. Vit chng trnh c 2 file v hin th chng bn cnh nhau trn mn hnh. Ch c chc nng dng tng trang mn hnh nu file qu di. 3. Vit chng trnh ghp ni dung 1 file vo cui 1 file khc c. 4. Vit chng trnh to 1 th mc, tn th mc c g t bn phm (tn th mc c th bao gm tn a, ng dn).
4/4/2006
65
GiI THIU C HNG DF CC LNH THIT LP V XA C HNG CC LNH THAO TC TRN CHUI MT S TH D MINH HA TH ViN LIN QUAN N CHUI
Trong ASM 8086 khi nim chui b nh hay chui l 1 mng cc byte hay word. Cc lnh thao tc vi chui cng c thit k cho cc thao tc vi mng.
DF=0 chui c x l theo chiu tng tc a ch vng nh cha chui tng dn. (chui c x l t tri qua phi).
DF=1 chui c x l theo chiu tng tc a ch vng nh cha chui gim dn. (chui c x l t phi qua tri).
CLD (CLEAR DIRECTION FLAG) XA C HNG DF =0 STD (SET DIRECTION FLAG) THIT LP C HNG DF=1
Trc khi s dng cc lnh x l chui, ta phi xc nh hng x l chui bng cch set hay clear c hng. Lnh t c hng : CLD : xa c hng, chui c x l t tri phi STD : t c hng, chui c x l t phi tri
DS:SI ES:DI
Cha a ch chui ch
Chng 14 Lp trnh XL Chui 6
CC THAO TC X L CHUI
NHP CHUI
Input : AH = 0AH, ngt 21H DS:DX = a ch ca buffer, trong buffer[0] l kch thc ti a ca chui, buffer[1] s l kch thc d liu nhp. Output : Chui buffer cha ni dung nhp vo t buffer[2] tr i
NHP CHUI
NHP CHUI
Ta cng c th dng hm 1 INT 21h c 1 k t t bn phm nhp 1 chui bng cch dng vng lp v lu chui bng lnh STOSB.
CHUYN NI DUNG AL N BYTE C TR BI ES:DI. SAU KHI LNH C THC HiN DI TNG 1 NU DF=0 HoC GiM 1 NU DF =1
LU CHUI CC BYTES
10
NHP CHUI
Ta cng c th dng hm 1 Int 21h c 1 k t t bn phm nhp 1 chui bng cch dng vng lp v lu chui bng lnh STOSW.
CHUYN NI DUNG AX N WORD C TR BI ES:DI. SAU KHI LNH C THC HiN DI TNG HAY GiM 2 TY VO DF.
LU CHUI CC WORD
11
TH D
.MODEL SMALL .STACK 100H .DATA STRING1 DB 'HELLO' .CODE MAIN PROC MOV AX,@DATA MOV ES,AX LEA DI, STRING1 ; khi to ES CLD ; x l t tri phi MOV AL,'A' STOSB ; AL cha k t cn lu STOSB ; lu k t A MOV AH,4CH ; lu k t th 2 INT 21H MAIN ENDP END MAIN Chng 14 Lp trnh XL Chui
12
TH D . READSTR PROC PUSH AX PUSH DI CLD XOR BX,BX MOV AH,1 INT 21H LAP: CMP AL,0DH JE ENDLAP CMP AL,8H JNE ELSE1 DEC DI DEC BX JMP READ
ELSE1 : STOSB INC BX READ : INT 21H JMP LAP ENDLAP : POP DI POP AX RET READSTR ENDP
Gii thch : DI cha offset ca chui BX cha s k t nhp 8H m ASCII ca Backspace khng lu n vo chui tng s k t ln 1 ng li con tr DI gim s k t nhp c
13
HiN TH CHUI
AH = 09, ngt 21H Vo : DX = a ch offset ca chui. Chui phi kt thc bng k t $. Ch : thay v dng lnh MOV OFFSET ta c th dng lnh LEA.
14
CC THAO TC X L CHUI
For counter Do
HiN TH CHUI
Np 1 chui
15
NP 1 CHUI CC BYTES
AL
16
TH D
STRING1 DB ABC MOV AX,@DATA MOV DS,AX LEA SI, STRING1 CLD LODSB LODSB .
NP BYTE TH 1 V TH 2
AL
17
NP 1 CHUI CC WORD
18
TH D
Hin th chui nhp DISPSTR PROC PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI MOV CX, BX JCXZ EXIT CLD MOV AH,2 LAP : LODSB MOV DL, AL INT 21H LOOP LAP
19
CHNG TRNH HAN CHNH Vit chng trnh nhp 1 chui k t ti a 80 k t, hin th 15 k t ca chui nhp dng k. .MODEL SMALL .STACK 100H .DATA STRING1 DB 80 DUP(0) XDONG DB 0DH,0AH,$ .CODE MAIN PROC MOV AX,@DATA MOV DS,AX MOV ES,AX LEA DI, STRING1 CALL READSTR LEA DX,XDONG MOV AH,9 INT 21H
LEA SI, STRING1 MOV BX, 15 CALL DISPSTR MOV AX,4C00H INT 21H MAIN ENDP ; READSTR PROC ; DISPSTR PROC END MAIN
20
CC THAO TC X L CHUI
chuyn ni dung ca byte c nh bi DS:SI n byte c ch bi ES: DI. Sau SI v DI t ng tng ln 1 nu c DF = 0 hay gim 1 nu DF = 1.
21
DF
0
22
MOVSW
Sau khi chuyn 1 word ca chui c SI v DI cng tng ln 2 nu DF=0 hoc cng gim i 2 nu DF=1
23
24
DF DS:SI DS:SI 0
3A
LODSB
3A AL
Chng 14 Lp trnh XL Chui 25
26
27
28
29
30
31
32
33
REP
TH D MINH HA
.DATA STRING1 DB HELLO STRING2 DB 5 DUP(?) .. CLD LEA SI, STRING1 LEA DI, STRING2 MOV CX, 5 REP MOVSB
Bi tp : Vit on chng trnh chp chui STRING1 th d trc vo chui STRING2 nhng theo th t ngc li.
35
TH D MINH HA
Cho mng sau ARR DW 10,20,40,50,60,? Vit cc lnh chn 30 vo gia 20 v 40 ( gi s rng DS v ES cha a ch on d liu)
10,20, ,40,50,60
Di 40,50,60 ra sau 1 v tr
30
Sau chn 30 vo
Chng 14 Lp trnh XL Chui 36
STD LEA SI, ARR+8H LEA DI, ARR+AH MOV CX, 3 REP MOVSW MOV WORD PTR[DI],30
37
MNG 1 CHIU
Khai bo
MKT DB MNB Dw
38
39
40
BI TP
Bi 1 : Vit chng trnh nhp 1 s t 1-12, in ra tn thng tng ng. Bi 2 : Vit chng trnh nhp 1 s t 1-7, in ra tn th tng ng.
41
Nhp 1 chui di ti a 255 k t t bn phm. Cho php dng phm BackSpace sa khi nhp sai v kt thc nhp khi g phm Enter.
Hng dn : Dng hm 0AH INT 21H nhp chui DS:DX a ch ca buffer m lu chui. Byte 0 : s byte ti a c th nhp. Byte 1 : cha gi tr 0 Byte 2 tr i : trng (lu cc k t s nhp) nhp 1 chui k t vo Buffer m ta khai bo nh sau : .DATA BUFFERN DB 80,0,80 DUP(?)
42
B1. Vit chng trnh nhp vo 1 t, sau in tng k t trong t theo chiu dc. Th d Nhp CONG Xut : C O N G
B2. Vit chng trnh nhp vo 1 chui, sau i tt c chui thnh ch hoa v in chui ra mn hnh dng k.
B3.Vit chng trnh nhp hai chui k t , kim tra xem chui th hai c xut hin trong chui th nht hay khng. V d : Nhp chui th nht : computer information Nhp chui th hai : compute Xut: Chui th hai c xut hin trong chui th nht.
43
B4. Vit chng trnh nhp 1 chui k t vit hoa cc k t nguyn m, vit thng cc k t ph m. V d : Nhp chui : aBcdE Xut chui: AbCdE B5. Vit chng trnh nhp vo 2 chui k t s1, s2 v 1 s nguyn dng n. Chn chui s2 vo chui s1 v tr k t th n trong chui s1 . V d : Nhp chui s1 : abcde Nhp chui s2 : fgh Nhp n = 3 Xut kt qu : abcfghde B6. Vit chng trnh nhp vo t bn phm 1 chui v tnh s ln xut hin ca cc nguyn m (a,e,i,o,u, y), cac phu am, cac khoang trang, trong chui tng ng. V d : Nhp chui : dai hoc khoa hoc tu nhien thanh pho ho chi minh Xut : S ln xut hin ca cc nguyn m l : 14 , phu am la: 24, khoang trang la: 9
Chng 14 Lp trnh XL Chui 44
B7. Vit chng trnh nhp vo t bn phm 1 chui gm cc k t trong bng ch ci. m xem trong chui c bao nhiu t. V d : Nhp chui : hO Chi mINh Xut : chui gm c 3 t
B8. Vit chng trnh nhp vo t bn phm 4 s . Xut ra mn hnh 4 s theo th t tng dn . V d : Nhp : 14 7 26 11 Xut : 7 11 14 26 B9. Vit chng trnh nhp vo t bn phm 4 s v sau xut s ln nht v nh nht ra mn hnh. V d : Nhp : 13 21 1 49 Xut : S ln nht : 49 S nh nht : 1
45
46