You are on page 1of 141

M phng vi iu khin

Bin tp bi:
Nguyn Phng Quang

M phng vi iu khin
Bin tp bi:
Nguyn Phng Quang
Cc tc gi:
Nguyn Phng Quang

Phin bn trc tuyn:


http://voer.edu.vn/c/481ec957

MC LC
1. Nhp mn Lp trnh Vi iu khin
2. Bi tp C Bn
2.1. Bi tp 1
2.2. Bi tp 2
2.3. Bi tp 3
2.4. Bi tp 4
2.5. Bi tp 5
2.6. Bi tp 6
2.7. Bi tp 7
2.8. Bi tp 8
2.9. Bi tp 9
2.10. Bi tp 10
2.11. Bi tp 11
3. Bi Tp Nng cao
3.1. Bi tp nng cao 1
3.2. Bi tp nng cao 2
3.3. Bi tp nng cao 3
3.4. Bi tp nng cao 4
3.5. Bi tp nng cao 5
3.6. Bi tp nng cao 6
3.7. Bi tp nng cao 7
4. Ph Lc
4.1. Ph lc A
4.2. Ph lc B
4.3. Ph lc C
Tham gia ng gp

1/139

Nhp mn Lp trnh Vi iu khin


Gio trnh ny ch ch trng n phn thc hnh lp trnh trn vi iu khin nn khng
c phn l thuyt v vi iu khin m thay vo l nhp mn lp trnh vi iu khin.
Trong phn ny, gio trnh s trnh by nhng vn l thuyt c bn nht v h 80x86,
va cho ngi hc gii quyt cc bi tp c bn trong chng trnh. Sau khi vng
phn c bn, ngi hc s nng cao hn cc hiu bit v vi iu khin thng qua cc bi
tp nng cao.

1. T chc h vi iu khin :
1.1. Gii thiu h vi iu khin dng trong phn mm m phng:
Nh gii thiu phn trc h vi x l dng trong chng trnh m phng ny
v h vi iu khin thc t ni chung bao gm ba phn chnh : b vi x l (CPU); b
nh v thit b xut nhp (I/O). C th trnh by trn hnh 2-1.
B m phng bao gm khi x l trung tm (CPU), 256 byte ca b nh truy xut
ngu nhin (RAM) v 16 cng vo ra nhng ch s dng 6 port (t port 0 n port 5)?

2/139

Hnh 2-1: H thng vi iu khin dng trong phn mm.


Chng trnh m phng c th lp trnh chy nhiu chng trnh khc nhau. Trong
thc t, b nh RAM c thay th bng ROM. y c hng trm th d v cc h
thng nh : iu khin n giao thng, cc tr chi gii tr n gin, iu khin ti vi t
xa, nh thi gian cho l viba, h thng iu khin ng c xe hi, b iu khin l gia
nhit, cc h thng iu khin mi trng. Tt c tu thuc vo s uyn chuyn ca gio
vin ging dy.
1/ Khi x l trung tm:
Khi x l trung tm l " b no" ca my vi tnh. Tt c cc s tnh ton, quyt
nh v vic dch chuyn d liu u c thc thi y. CPU dng cc v tr lu tr
tm thi c gi l thanh ghi, thanh ghi ch nh d liu c dung lng thp v s mt
d liu khi mt in nu mch khng c back up ( mch lm nhim v lin tc cp in
cho CPU ). N cha khi s hc v logic (vit tt l ALU) khi ny thc hin vic x
l. D liu c ly t cc thanh ghi, c x l v kt qu sau khi x l xong c
a tr li cc thanh ghi. Lnh Move (MOV) c s dng dch chuyn d liu gia
vng nh RAM v cc thanh ghi. y ta c rt nhiu lnh, mi lnh th c mt chc
nng ring. Tp hp cc lnh ny c gi l tp lnh.
2/ Cc thanh ghi a nng:
CPU c bn thanh ghi mc ch chung gi l AL, BL, CL v DL. Nhng thanh
ghi ny cha 8 bt hay 1 byte. Cc thanh ghi qun l s khng du trong vng t 0 n
255 v c du vng t - 128 n + 127 : y cc thanh ghi ny s dng nh vng
nh lu tr tm thi. Cc thanh ghi c s dng u tin i vi vng nh RAM bi
v n cn 1 khong thi gian tng i di chuyn d liu gia RAM v CPU. Nhn
chung my vi tnh c tc x l nhanh hn nu thanh ghi hay b nh c dung lng
ln hn trong CPU.
Cc thanh ghi c gi tn l AL, BL, CL v DL v phin bn 16 bit ca CPU ny
c nhiu thanh ghi gi l AH, BH, CH v DH . Ch "L" c ngha l thp (Low) v ch
"H" c ngha l cao (High). y, 2 ch cui L v H trong cc thanh ghi trn chnh l
8 bt thp v 8 bt cao ca thanh ghi 16 bit.
3/ Cc thanh ghi chuyn dng :
Cc thanh ghi chuyn dng trong h vi iu khin dng trong phn mm m phng
l IP, SR v SP.
a) Con tr lnh IP

3/139

Thanh ghi ny cha a ch lnh ang c hin hnh. Khi vic thc thi hon thnh,
IP c gim xung v ch ti lnh k tip. Khi b nh RAM hin th, th con tr lnh
c lm ni r bng mu trn nn ch vng.
b) Thanh ghi trng thi SR
Thanh ghi ny cha cc c bo co v trng thi CPU. C zero "Z" c thit
lp bng 1 nu vic tnh ton c kt qu bng 0. C du "S" c thit lp bng 1 nu
vic tnh ton c kt qu m. C trn "O"c thit lp nu kt qu trong thanh ghi ln
hn 255 (trn s). Ngt "I" c thit lp nu cc lnh ngt c cho php.
c) Con tr ngn xp SP
Ngn xp l 1 vng ca t chc b nh s dng qui tc vo sau ra trc (LIFO:
Last In First Out). Con tr ngn xp ch ti nh ngn xp chng k tip. Ngn xp
trong b m phng bt u ti a ch BF. Ngn xp tng theo hng a ch 0, d liu
c ct vo ngn xp v lu gi cho ln s dng sau. D liu c ly ra khi ngn
xp khi cn n. Con tr ngn xp qun l ni ngn xp ct v ly d liu ra . Khi hin
th trong RAM, con tr ngn xp c t sng bng mu xanh trn nn ch vng.
4/ B nh RAM :
B m phng c 256 byte RAM, c a ch t 0 n 255 ( s thp phn) hay t 00
n FF (s Hex). a ch ca RAM thng c t trong du ngoc vung v d nh
[7C] trong 7C l s Hex. [7C] c l d liu ct ti nh 7C. Trong thc t, y
chnh l? ROM nhng ni chung chng trnh chnh s c lu tr ti y.

4/139

5/ Cc BUS (Busline: lung lin lc):


Cc BUS l mt tp hp cc dy dn c s dng mang tn hiu i trao i
thng tin gia cc thit b trong h vi x l. Chng thng c in nh cc ng song
song trong board mch in. Khe cm l cc cm cho php card c th kt ni vi h
thng thng qua cc BUS. in hnh mt my tnh 8 bit c cc thanh ghi vi rng 8
bit v 8 ng trong 1 BUS d liu. Mt my tnh 16 bit c cc thanh ghi 16 bit, BUS
d liu c 16 ng v..v.C th dng hnh tng xa l minh ha cc BUS ( Hnh
2-2): trn xa l c nhiu a im nh A, B, C, D. . . Nu ch dng dy in ni (ni
cng) ta phi tn rt nhiu ng dy lin kt gia cc a im li vi nhau nhng
trn xa l ny li xe d khng thng tho vng ny c i dc xa l l c th tm n a
im cn n. R rng vi mt BUS ta c th lin kt nhiu thit b trong h vi x l
li vi nhau (mi thit b c th xem nh mt a im trn xa l cn xe mang thng tin
trao i gia cc thit b trong h thng) .

5/139

Hnh 2-2 : Minh ha BUS thng qua hnh tng xa l.


Da vo tnh cht thng tin ti trn Bus, ngi ta phn lm ba loi chnh:
a) Bus d liu : c s dng mang d liu gia CPU, RAM v port nhp / xut
(I/O). B m phng ny c bus d liu 8 bit.
b) Bus a ch: c s dng xc nh a ch ca b nh RAM hay port I/O
c s dng. B m phng ny c 8 bit a ch.
c) Bus iu khin: xc nh RAM hay khi I/O c truy xut. N cng xc nh
vic c hay vit d liu. D liu c vit vo hay xut ra trn CPU n RAM hay
cng I/ O cng do bus iu khin ny.
6/ Cc yu t ph tr khc:
a) ng h h thng (clock): l ng mang nhng xung c tn s n nh cc
b phn trong h vi x l c th lm vic ng b vi nhau, cc lnh trong b vi x l
thc thi cng da vo cc chu k xung ny. Do vy tc h vi x l b nh hng rt
nhiu bi tn s xung clock. Tc xung clock hin nay t n vi t chu k mi
giy (vo nm 2002). B m phng trong phn mm c th iu chnh c tn s xung
clock nn tc thc thi lnh cng iu chnh c trong mt khong kh rng v trn
m khng cn chn thay i thch anh dao ng.
b) Ngt cng: h thng cn c t nht 1 ng ngt gip CPU p ng c cc
yu cu ca phn cng nh my in ang chy nhng ht giy, nhn nh phm, r chut...
CPU s x l chng trnh phc v ngt tr li lnh ngt trn. Khi hon thnh chng
trnh ngt, n s tip tc cc thao tc ang lm trc khi nhu cu ngt xut hin. Phn

6/139

mm m phng ny c sn mt ng ngt v b nh thi to xung ngt to ra nhng


xung ngt c tn s iu chnh c (xem v d 11 phn c bn).

1?2 . Nguyn l lm vic ca h vi iu khin trong phn mm:


Hot ng bn trong ca vi iu khin rt phc tp, n iu khin hot ng ca mi
thnh phn trong h thng. Nhng tht ra vi iu khin ch lp i lp li chu k n v
thc thi lnh (cn gi l chu k tm np + gii m + thi hnh lnh) thc hin theo tng
bc sau :
* Tm np lnh tip theo t b nh vo thanh ghi lnh IR. Trong chng trnh ny CPU
tm np lnh theo a ch m IP ch ti: n hay tm np lnh.
* nh loi lnh va tm np, nu lnh dng d liu trong b nh th CPU s tm n
v np vo thanh ghi bn trong CPU: gii m lnh.
* Thi hnh lnh va gii m xong v lu kt qu ni thch hp: thi hnh lnh.
Sau khi thc hin xong 3 bc ny CPU li tm n lnh tip theo trong chng trnh
tun t thc hin lp li 3 bc trn. C th minh ha bng hnh 2-3.

Hnh 2-3 : CPU lin tc tm np v thi hnh lnh

7/139

Nh vy d cho chng trnh CPU th rt phc tp nhng v c bn n cng ch thc


hin 2 hot ng: tm lnh, thi hnh, tm lnh, thi hnh.v c nh th m tip din. CPU
s thc thi c ton b chng trnh.
C th hn ta quan st mt v d sau trong chng trnh m phng. M bi tp v ng
c bc phn bi tp c bn trong a CD ny, bn s gp giao din ca bi tp nh
sau:

8/139

Trn mn hnh hin th chng trnh iu khin ng c bc quay theo mt chiu c


nh. Nhp chut vo Step , vi iu khin s thc hin lnh MOV AL,1. Mn hnh sau
s din t tc ng ca lnh ny ln vi iu khin nh sau:

9/139

10/139

Ta thy s hexa 1 c np vo thanh ghi AL, thanh ghi IP (con tr lnh) ch ra a


ch k tip ca lnh m vi iu khin sp thc hin (OUT 05) nm nh 03. Cc thanh
ghi khc khng tham gia vo lnh ny nn khng c thay i g. Tip tc nhp Step , ta
thy:

Lnh OUT 05 xut d liu cha trong thanh ghi AL (l 01) sang port 05 iu khin ng
c bc cho php nhm cun dy u tin trong 4 nhm c in (c th xem chi tit hn
v ng c bc trong phn gii thiu ca a CD ny). Con tr lnh IP t ng tng
thm 2 n v (do lnh OUT 05 chim n 2 byte nh trong RAM) ch ra a ch k tip
11/139

ca lnh m vi iu khin sp thc hin (MOV AL,2) nm nh 05. Cng ging nh


trn cc thanh ghi khc khng tham gia nn khng thay i di tc ng ca lnh ny.
Tip tc nhp vo Step , ta nhn thy:

Tng t trn, s hexa 2 c np vo thanh ghi AL v con tr IP tng ln 08 ch ra


lnh k tip l OUT 05 nm a ch 08 trong RAM. Tip tc nhp Step , ta thy:

Tng t, nh trn ta thy tc ng ca lnh OUT 05 lm ng c bc quay i mt


gc 10o . Tip tc nhp Step v c nh th tip tc cho n lnh cui cng JMP start.

12/139

13/139

Nu nh t u n y vi iu khin thc hin tun t tng lnh t trn xung th n


y vi iu khin thc hin mt bc nhy. N s nhy n ni c cha nhn start, trong
chng trnh ny nhn start ngay u chng trnh nn gi tr con tr lnh IP l 00 .
Nhp Step.

14/139

Nu bn nhp Run hay F9 chng trnh m phng s lin tc lp li cc bc va nu.


Qua v d n gin va nu trn, ta thy bnh thng vi iu khin s thc hin tun
t tng lnh mt t im xut pht c nh ra bi ngi lp trnh ch khi no gp cc
lnh nhy, gi chng trnh con (nhp vo y xem minh ho : chng trnh con mt
cp; chng trnh con a cp), gi chng trnh ngt...th tnh tun t trn mi tm thi
b gin on. T y ta c th nhn thy, vi cng mt yu cu t ra cho h thng vi
x l s c nhiu chng trnh cng tho mn c yu cu trn, chng trnh ny th
di cn chng trnh kia th li ngn, iu ny tu thuc vo nhiu yu t nh kh nng
ca ngi lp trnh, cu trc phn cng ca h thng.. .

2. Trnh t lp trnh vi iu khin

15/139

Chng trnh vi iu khin l tp hp cc lnh xp xp theo mt trnh t nht


nh, cc lnh ny c ly trong tp lnh ca b vi iu khin (Microcontroller) ang
s dng trong h thng. B vi iu khin s thc hin cc lnh n t c mt s
kt qa m chng trnh t ra. Do vy, lp trnh l tu vo yu cu ca bi ton thit
k, ngi lp trnh s vit ra mt chng trnh chy c trn h vi iu khin ang s
dng a h thng vo lm vic ng theo yu cu ca bi ton t ra.
thit k chng trnh mt cch chnh xc, ta cn thc hin nhng bc sau:
2.1 Phn tch cc yu cu ca bi.
2.2 Xy dng lu gii thut.
2.3 Thit k chng trnh
2.4 Vit chng trnh
2.5 Bin dch chng trnh
2.6 Thc hin g ri chng trnh
2.7 Np chng trnh vo phn cng v kim tra kt qu.
Thc hin ng quy trnh trn s gip gim thiu thi gian kim tra cng nh pht
hin kp thi nhng thiu st khi thc hin.

16/139

Bi tp C Bn
Bi tp 1
Vit chng trnh thc hin cc php tnh s hc.
Mc ch-yu cu:

Lm quen vi cc lnh tnh ton s hc.


Hiu cch nh v a ch b nh.
Hiu cch a d liu vo thanh ghi.
Thc tp cng gi tr trong 2 thanh ghi.

Kin thc nn :
Chng trnh l tp hp ca cc lnh c sp xp theo mt trnh t c th nhm
gip vi iu khin, vi x l thc hin cc cng vic c th no . Cc lnh trong chng
trnh c ly t tp lnh (Instruction Set) ca h vi iu khin, vi x l ang s dng.
Tp lnh l tp hp ca cc lnh c cung cp bi nh sn xut vi iu khin, vi x l.
V d:
Lnh MOV

AL,m : chuyn m vo thanh ghi AL.

Vi x l, vi iu khin s tun t thc hin cc lnh thc hin cc cng vic c th m


chng trnh yu cu gip h thng lm vic theo mt chng trnh c nh trc.
Lnh CLO:
Lnh CLO l lnh ch dng mt ln trong ton b chng trnh. CLO ng tt c
cc ca s khng cn thit trong lc chng trnh ang chy. Lnh ny lm cho d dng
hn vit cc chng trnh th hin tt. S dng CLO cng trnh vic ng cc ca s
hng dn.
Lnh MOV:
Lnh MOV l t vit tt ca Move. Trong v d ny cc s c chp vo thanh
ghi m cc php tnh s hc c th thc hin c. Lnh MOV chp d liu t
nh ny sang nh khc, m d liu trong nh khng b mt.
Cc thanh ghi:

17/139

Cc thanh ghi l ni 8 bit nh phn c lu gi tm thi. n v x l trung


tm trong chng trnh m phng ny c 4 thanh ghi mc ch gi l AL, BL, CL v
DL trong cc CPU sau ny, cc thanh ghi c th n 16, 32 hay 64 bit... Cc thanh ghi
cng tn s c cng chc nng nhng trong cng mt lc thanh ghi 64 bit s x l c
nhiu d liu hn thanh ghi 8 bit v th tc ca CPU c thanh ghi 64 bit x l nhanh
hn CPU c thanh ghi 8 bit.
Cc thanh ghi c dung lng ln c th cha s nguyn ln. Vic ny s n
gin ha cc thao tc lp trnh. Ba thanh ghi khc l SP, IP v SR s c m t bi
sau.
S Hex:
Trong lnh MOV AL,2 vi 2 l s Hex. H thng s Hex c s dng trong
vic lp trnh cp thp v nh vy qu trnh chuyn i gia s nh phn v s Hex thun
li hn . lp trnh c tt, bn cn nm vng h thng s Hex v s nh phn.
Cc lnh s hc :
Lnh ADD c s dng cng 2 thanh ghi vi nhau. Mt cch cng khc
ca lnh cng l c dng cng 1 s vo 1 thanh ghi. Bn c th xem hng dn
qua cc lnh ADD, SUB, MUL v DIV bng vic chn ly lnh v nhn F1.
Lnh END:
Lnh END l lnh cui cng trong chng trnh. Bt k lnh no sau lnh End
s c b qua.

Chng trnh:
; Chng trnh cng 2 s Hex ----------------------------------------CLO
MOV

AL,2

MOV

BL,2

ADD

AL, BL

END

; kt thc chng trnh.

18/139

;------------------------------------------------------------------------Xem phim
Nhn nt Play xem.

Ti file phim t y
Bi tp cng c: 1.1/ Vit chng trnh s dng lnh SUB. 1.2/ Vit chng trnh s
dng lnh MUL. 1.3/ Vit chng trnh chia 2 s s dng lnh DIV. 1.4/ Vit chng
trnh chia cho 0 .

19/139

Bi tp 2
Vit chng trnh xut d liu.
Mc ch - yu cu:
Lm quen vi chc nng cc lnh nhy, lnh xut d liu.
Hiu cch a d liu vo iu khin n giao thng t sinh vin c th
thit k iu khin n giao thng trong thc t.
Kin thc nn :
1/ Chng trnh s dng cc lnh : CLO, MOV, OUT, JMP v END
H thng n giao thng trong chng trnh m phng c iu khin bng cch gi
d liu xut ra port 1.
C su n c iu khin chia lm hai h thng. Mu , vng, xanh l mu mi h
thng n. iu khin 2 h thng n ta c th thc hin bng cch gi 1 byte d
liu nhng 2 bit thp ca byte d liu khng dng n. Mt n ch sng khi chn
ni n ln bit 1, do mun iu khin tn hiu n giao thng bn ch cn thay i d
liu truyn n Port 1.
y c chng trnh v d : baitap02.asm. Ta c th chp chng trnh t trang gip
v dn vo trong trnh ang son tho. chy chng trnh, ta click vo biu tng
Step lp li nhiu ln chy tng bc hay nhn vo Run chy trn vn chng
trnh. ngng chng trnh ta click vo stop. Khi chng trnh ang chy, click vo
RAM - Source hay RAM - Hex hay RAM - ASCII . ta s thy c s thay i
lun phin cc ni dung ca vic truy xut b nh RAM. Nhn vo tab List - file thy
m my c bin dch bi chng trnh m phng .
2/ Cc nhn v lnh JMP:
Nhn nh du cc v tr th c s dng bi cc lnh nhy. Tt c cc lnh trong
chng trnh ny c lp li lin tc cho n khi nhn Stop. Tn nhn phi bt u vi
1 ch ci hay 1 k t. Tn nhn khng c bt u bng 1 k s.
JMP Start lm cho chng trnh nhy v v lm li cc lnh t lc u. Cui nhn phi
c du 2 chm . V d: Start :
3/ iu khin cc n giao thng:

20/139

Nu bn quan st k cc n giao thng c hin th, bn c th thy c mi


bng n c iu khin bi mt bit tng ng. Ta c th tm ra cc bit 0 hay 1
thit lp trng thi ca bng n. S dng bng s Hex v s nh phn tm ra s Hex
tng ng . a s Hex ny vo thanh ghi AL.
4/ Lnh OUT 01 (xut ra P.01) :
Lnh ny dng chuyn ni dung ca thanh ghi AL ra Port 1. V h thng n
giao thng c ni vi port 1, nn ta c th iu khin cc bng n giao thng theo
ni dung trn thanh ghi AL. S 1 lm cho bng n sng, s 0 lm cho bng n tt.

Chng trnh:
; chng trnh iu khin n giao thng -------------------------------------CLO
Start:

; ng tt c cc ca s khng cn n
; tt tt c n giao thng

MOV

AL,0

OUT

01

MOV

AL, FC ; chuyn 11111100 (hay FCh) vo thanh ghi AL

OUT

01

JMP

Start ; nhy v nhn start thc hin li chng trnh

END

; chuyn 00h vo thanh ghi AL


; sng tt c n giao thng

; gi d liu trong AL ra port 1

; kt thc chng trnh .

;----------------------------------------------------------------------------------Bi tp 02. Nhn nt Play xem.

Ti file phim v y.
2.1/ Tm ra nhng s Hex xut ra trn port 01, s lm hot ng ca n thay i theo
tng bng n (xanh, , vng). T hy sa i chng trnh ca n giao thng
hot ng theo trnh t trong thc t.

21/139

Bi tp 3
Vit chng trnh truyn d liu.
Mc ch - yu cu:
Nghin cu su hn trong vic s dng lnh MOV v cc bin th ca lnh
MOV, JMP, INC.
Lm quen vi vic copy d liu t RAM ti thanh ghi v t thanh ghi n
RAM.
Hiu c cc loi a ch s dng trong vit chng trnh.
Kin thc nn:
Chng trnh s dng 5 bin th ca lnh MOV, INC v JMP.
nh v a ch l cch thc m vi x l, vi iu khin s dng ton hng (xem phn
nhp mn trong mc 2?4) ca mt lnh (v d: nh mt d liu hay mt a ch).
1/ a ch tc thi:
L 1 s Hex c copy (a) vo 1 thanh ghi
V d :
MOV AL,15

; Chuyn 15h vo thanh ghi AL

MOV BL,40

; Chuyn 40h vo thanh ghi BL

MOV CL,50

; Chuyn 50h vo thanh ghi CL

MOV DL,60

; Chuyn 60h vo thanh ghi DL

2/ nh v a ch gin tip (indirect addressing):


Mt gi tr c a ti hay t RAM n. a ch ca RAM c coi l 1 s ging nh
[22] trong du ngoc vung.
V d:
MOV [A0], AL
MOV BL,[40]

; chuyn gi tr trong AL ti v tr [40] ca RAM.


; chuyn gi tr trong RAM [A0] vo BL.
22/139

3/ nh v a ch gin tip qua thanh ghi (Register Indirect Addressing):


L vic copy gi tr t RAM n thanh ghi hay copy gi tr t thanh ghi ti RAM. a
ch RAM c cha trong thanh ghi th 2 nm trong du ngoc vung.
V d :
MOV [CL], AL
MOV BL,[CL]
;chuyn gi tr trong AL n v tr ca RAM m CL ch n
;chuyn v tr trong RAM m CL ch vo thanh ghi BL
Chng trnh:
; chng trnh gii thch lnh MOV -----------------------------------------------CLO
; chuyn tc thi (Immediate Moves)
MOV

AL,15

; Chuyn 15h vo thanh ghi AL

MOV

BL,40

; Chuyn 40h vo thanh ghi BL

MOV

CL,50

; Chuyn 50h vo thanh ghi CL

MOV

DL,60

; Chuyn 60h vo thanh ghi DL

AL

; tng AL ln 1

FOO :
INC

; chuyn gin tip (Indirect moves)


MOV

[A0], AL

; chuyn gi tr trong AL ti v tr RAM [40]

MOV

BL,[40]

; chuyn gi tr trong RAM [A0] vo BL

; truyn d liu gin tip qua thanh ghi (Register indirect moves)
MOV

[CL], AL

23/139

MOV

BL,[CL]

JMP

FOO

;nhy v nhn FOO


;nhn ESC ngng chng ;trnh

END
;---------------------------------------------------------------------------------------Bi tp 03. Nhn nt Play xem.

Ti file phim v y.
3.1/ Vit chng trnh hin th ch HELLO. Hy tra bng m ASCII (trong phn ph
lc) ca cc mu t H,E,L,L,O v copy nhng gi tr ny vo b nh C0, C1,C2,C3,C4.
y l mt bi tp n gin, ch gip ngi hc lm quen trong vic sp xp b nh
hin th.

24/139

Bi tp 4
Vit chng trnh m ln
Mc ch -yu cu:
Trong bi tp ny ta hiu c nhn, vic trn b nh v thanh ghi trng thi
SR.
Hiu c lnh tng INC, lnh nhy JMP v con tr lnh IP.
Lm quen vi cc chu k tm np - thi hnh lnh (Fetch Execute Cycle).
Thc hin c cc chng trnh m thng dng.
Kin thc nn:
1/ Lnh MOV BL,40:
Cu lnh cho ta bit c a ch u ca thanh ghi BL l 40.
2/ Nhn Rep trong chng trnh :
Rep l 1 nhn, cc nhn c s dng vi lnh Jump. N l v tr cc chng trnh
c th nhy li hay nhy ti tip tc thc thi. y l cch thc cc s c lu gi,
ngoi ra ta c nhng bc nhy rng hn t -178 n +127. Cc nhn phi c bt u
vi mu k t hay k t. Nhn c th cha cc mu t, k s v k t. Cui nhn ch
phi c du 2 chm (:).
3/ Lnh INC BL:
y l lnh cng thm 1 vo thanh ghi BL. Thanh ghi BL s m ln t 40h sau 49h.
3/ Trn b nh (overflow) :
Khi BL t n 7FH hay 127 trong h thp phn, th s k tip phi n 128, nhng do
cc s ny l s nh phn nn s tip theo sau phi l -128. kt qu ny c gi l trn
b nh.
Trn b nh l tnh trng xy ra khi 1 chng trnh c a qu nhiu d liu vo 1 khu
vc nh so vi sc cha ca n, do s sinh ra 1 thng bo li.
4/ Thanh ghi trng thi SR (Status Register):

25/139

Thanh ghi trng thi SR cha c 4 bit cho bit thng tin v trng thi ca CPU. y
c 3 c cho bit c hay khng vic tnh ton trn b nh, nu cho kt qu m hay cho
kt qu bng 0 th vic tnh ton thit lp cc c ny.
?

: C du cho bit kt qu (-)

: C trn cho bit c trn b nh

: C zero cho bit kt qu = 0

C th t
?

: l c cho php ngt

STI : cho php m thanh ghi trng thi

CLI : cho php tt thanh ghi trng thi

Cc c ny s c m t chi tit phn sau .


5/ Lnh JMP Rep:
Lnh ny lm cho n v x l trung tm (CPU) nhy li v lp li nhng lnh trc
hay nhy ti v b qua 1 vi lnh.
6/ Con tr lnh:
Con tr lnh IP cha a ch ca lnh ang thi hnh. iu ny c cho bit bi v tr
ni bt trong chng trnh m phng. Mi lnh trong CPU lm cho IP c tng thm
1,2 hay 3 tu thuc vo di ca lnh. Khi hin th RAM, con tr lm ni r mu
vi nn ch vng.
NOP

; tng IP =1

INC BL
ADD AL,BL
JMP Rep

; tng IP =2
; tng IP =3
; cng hay tr gi tr t IP nhy n 1 phn mi ca chng trnh .

7/ Chu k n - thc thi lnh (Fetch Execute Cycle):


Chu k n - thc thi lnh (cn gi l chu k tm np + gii m + thi hnh lnh)
thc hin theo tng bc sau :

26/139

* Tm np lnh tip theo t b nh vo IR. Trong chng trnh ny CPU tm np


lnh theo a ch m IP ch ti: n hay tm np lnh.
* nh loi lnh va tm np, nu lnh dng d liu trong b nh th CPU s tm
n v np vo thanh ghi bn trong CPU: gii m lnh.
*

Thi hnh lnh v lu kt qu ni thch hp: thi hnh lnh.

Sau khi thc hin xong 3 bc ny CPU li tm n lnh tip theo trong chng trnh
tun t thc hin lp li 3 bc trn.
Nh vy d cho chng trnh CPU th rt phc tp nhng v c bn n cng ch thc
hin 2 hot ng: tm lnh, thi hnh, tm lnh, thi hnh .v c nh th m tip din. CPU
s thc thi c ton b chng trnh.
Chng trnh:
; Chng trnh m ln -------------------------------------------MOV BL,40
u c lu trong BLRep :INC BL ???
; cng 1 vo BLJMP Rep
v nhn RepEND
; kt thc chng trnh

; gi tr
; nhy

;--------------------------------------------------------------------Bi tp 04. Nhn nt Play xem.

Ti file phim v y.
Bi tp cng c: 4.1/ Vit chng trnh m li li s dng DEC BL. 4.2/ Vit chng
trnh m ln 3 s dng lnh Add BL,3. 4.3/ Vit chng trnh m 1,2,4,8,16 s dng
lnh MUL BL,2. 4.4/ Vit chng trnh m theo dy s sau 0 1 1 2 3 5 8 13 21 34 55
89 trn b nh. y l mt chng trnh kh i vi cc bn mi bt u hc lp trnh,
mi s trong chng trnh ny l tng ca 2 s lin trc. Bn cn s dng 2 thanh ghi
v 2 v tr RAM tm thi ct gi gi tr ca cc s ang tnh. Bn nn nh rng kt
qu s b trn khi n m n 127 v cc s hin th trong chng trnh u vit di
dng s hexa.

27/139

Bi tp 5
Nhp phm nhn t bn phm cho n khi phm Enter c nhn
Mc ch-yu cu:
Lm quen vi lnh nhp IN.
Hiu c lnh so snh CMP, v lnh nhy c iu kin JNZ.
S dng bn phm nhp m s m my.
Kin thc nn:
1/ Lnh IN 00:
L lnh nhp t port 0. Trong chng trnh m phng, port 0 c ni ti phn cng
bn phm. Chng trnh m phng i cho phm nhn v copy m ASCII ca phm nhn
vo thanh ghi AL.
2/ Lnh CMP AL,0D:
Dng so snh thanh ghi AL vi m ASCII ca phm Enter. M ASCII ca phm Enter
l 0Dh
CMP AL, BL c thc hin nh sau : trong b x l s c s so snh gia AL v BL
?

Nu kt qu bng 0 th c "Z" trong thanh ghi trng thi SR c thit lp.

Nu kt qu l (-) th c "S" c thit lp.

Nu kt qu l (+) th khng c c no c thit lp.

C "Z" c thit lp nu AL v BL ngang nhau.

?
C "S" c thit lp nu BL ln hn AL. khng c c no c thit lp nu AL
ln hn BL .
3/ Lnh JNZ Rep:
JNZ l t vit tt ca JUMP NOT ZERO . Lnh ny s nhy nu c "Z" khng
c thit lp. Chng trnh s nhy v pha trc hay li v pha sau ti a ch m
nhn Rep nh du.

28/139

Lnh c lin quan l JZ, l t vit tt ca Jump Zero. Lnh ny s thc hin 1 bc
nhy nu c Zero c thit lp. Trong chng trnh ny, lnh CMP s thit lp cc c.
Lnh s hc cng thit lp c trng thi.
4/ Lnh MOV [C0], AL:
Lnh ny s chuyn ni dung ca AL ti a ch [C0]. n v hin th trc quan lm vic
vi a ch t [C0] ti [FF]. iu ny cho php hin th vi 4 hng v 6 ct trn VDU.
a ch ca [C0] l a ch trn u gc tri ca mn hnh.
5/ Lnh MOV [BL], AL:
Cu lnh ny th chp ni dung AL ti a ch m BL ch n. BL c to ch n
mn hnh VDU ti a ch [C0] bng cch s dng lnh MOV BL,C0. Ngoi ra BL cn
c dng ch mi v tr trn mn hnh bng vic s dng INC BL.
Chng trnh:
; Nhp phm nhn t bn phm cho n khi phm enter c nhn -----------CLO
Rep :
IN

00

; i phm nhn v ct n vo AL

CMP AL,0D

; so snh xem c nhn phm enter cha?

JNZ Rep

; nu khng c phm enter th nhy v nhn Rep


; nu c th nhy xung END kt thc chng trnh .

END
;-----------------------------------------------------------------------------------Bi tp 05. Nhn nt Play xem.

Ti file phim v y .
Bi tp cng c: 5.1/ Vit chng trnh hin th mi k t ti v tr u bn tri ca mn
hnh VDU bng vic copy tt c chng ti a ch [C0}. 5.2/ Vit chng trnh s dng
thanh ghi BL ch ti a[C0] v tng BL sau mi ln phm nhn theo th t thy
c vn bn bn g. 5.3/ Vit chng trnh nhp m s m my vi yu cu c th

29/139

nh sau: khi chng trnh khi ng mun thot khi chng trnh phi tun t g
ng th t ba ch ci A,N,H (ng c th t); nu g sai chng trnh c chy lng
vng khng thot ra c.

30/139

Bi tp 6
Vit th tc nh thi
Mc ch-yu cu:
Gip cho sinh vin hiu v th tc nh thi.
Tm hiu k v cc lnh POP, PUSH, POPF, PUSHF, RET.
Lm quen vi cc lnh gi CALL, ngn xp v a ch bt u ca th tc lm
tr.
Kin thc nn:
1/ Lnh MOV AL,8:
Con s 8 l gi tr c ct trong thanh ghi AL trc khi gi th tc delay. Gi tr ny
xc nh thi gian tr ca vic tr hon.
2/ Lnh CALL 30:
Trong lp trnh thng gp nhng on lnh c dng i dng li nhiu ln trong
chng trnh. Lc ny ngi lp trnh ch vit mt ln on chng trnh ri dng
lnh CALL chuyn vic thc hin chng trnh ti chng trnh cn lp i lp li
ny. Lnh CALL 30 gi th tc ti a ch [30] v thay i con tr lnh IP n a ch
[30] v chng trnh tip tc thi hnh t a ch . a ch quay v ny c lu trong
ngn xp. Bn hy nhp vo y xem minh ha cch gi chng trnh con. Trong
on phimbn va xem mi khi lnh c thc hin n s nhp nhy. Nh vy, nh vo
s dng chng trnh con, chng trnh chnh n gin i rt nhiu.
Khi mt chng trnh con c gi n, a ch tr v c t ng ct vo ngn xp.
Cui chng trnh con, khi gp lnh RET a ch tr v c t ng ly ra t ngn
xp. Chnh nh cu trc ny, chng trnh cho php s dng nhiu mc chng trnh
: chng trnh con ny gi c chng trnh con khc. hiu r hn bn hy nhp
vo.
3/ Ngn xp (stack):
y l mt vng b nh m gi tr c lu v ct gi li. Ngn xp s dng quy
tc vo sau ra trc (LIFO). d hiu hn, c th xem ngn xp nh mt chng ti
liu t trong hc t. Khi cc tp (tp) ti liu c xp ln lt vo hc th tp ti liu
c ct vo cui cng c th ly ra trc tin : ngha l vo sau ra trc. Vi cu trc
LIFO, v tr chnh xc ni ct gi d liu khng quan trng bng trt t m d liu c

31/139

ct. Lnh Call lu a ch quay v vo ngn xp. Lnh Ret ly li gi tr lu t ngn xp


v nhy n a ch bng vic thit lp con tr lnh IP.
Con tr ngn xp SP (Stack Pointer) c dng tr vo va c dng n ca
ngn xp. Chng trnh mc nh trong phn mm dnh cc nh t BF tr i lm
ngn xp. Ni dung ca con tr ngn xp s t ng gim mi khi c mt byte mi c
ct vo ngn xp.
4/ Lnh ORG 30:
L lnh bt u t a ch 30. ORG xc nh li nhng g m m my pht ra. Th tc
nh thi c ct ti a ch 30.
5/ Lnh PUSH AL:
c dng lu gi tr ca AL vo ngn xp con tr ngn xp SP ch ti v tr ngn
xp trng k tip v lnh PUSH ct gi tr ti v tr ny. Sau SP c di chuyn n
nh k tip. Trong chng trnh m phng, ngn xp tng ln hng v a ch zero.
Ngn xp s b trn nu cha nhiu hn so vi b nh sn c.
6/ Lnh PUSHF:
Dng ct cc c ca CPU trong thanh ghi trng thi SR vo ngn xp. iu ny bo
m rng cc c c th t li nh c khi th tc hon thnh. Con tr ngn xp c li
li mt khong trng.
7/ Lnh DEC AL:
Gim gi tr trong AL i mt n v. Lnh ny thit lp c Z nu kt qu l 0 hay c S
nu kt qu c gi tr (-) .
8/ Lnh JNZ REP:
JNZ nhy ti a ch m Rep nh du. Nhy nu c Z khng c set.
9/ Lnh POPF:
Dng khi phc cc c CPU t ngn xp. Tng con tr ngn xp ln 1.
10/ Lnh POP AL:
Dng khi phc thanh ghi AL t ngn xp. iu ny c lm bi vic di chuyn con
tr ngn xp ban u ti mt ni pha trc v chp gi tr ti v tr ngn xp vo thanh
ghi AL.
32/139

11/ Lnh RET:


RET c t ti cui chng trnh con CPU ly li a ch tr v ( a ch tip theo
lnh CALL trong chng trnh chnh), a ch ny c t ng ct khi gi chng
trnh con. Th tc nh thi c th c ti s dng nhiu ln, gi l s dng lp li
(recursion). y l mt k thut mnh nhng d lm ri lon chng trnh, nu bn
khng hiu nhng g ang xy ra. S lp ngu nhin hay khng iu khin c lm
cho ngn xp tng ln cho n khi n ghi ln ngn xp hay b trn.
Chng trnh:
;Chng trnh chnh ---------------------------------------------------------------Start:
MOV

AL,8

CALL

30

MOV

AL,10

CALL

30

MOV

AL,20

CALL

30

JMP

Start

;mt tr hon ngn


;gi th tc ti a ch 30
;mt tr hon trung bnh

;mt tr hon di

;nhy v Start

;Th tc delay c lu a ch 30 --------------------------------------------ORG


PUSH

AL

PUSHF

30

;khi u th tc t a ch [30]

;lu AL t ngn xp
;lu cc c CPU vo ngn xp

Rep:
DEC

AL

;gim AL i 1

JNZ

Rep

;nhy n nhn Rep nu AL khc ;0

POPF

;khi phc cc c CPU t ngn ;xp

33/139

POP
RET

AL

;khi phc AL t ngn xp

;tr v li chng trnh chnh (t chng trnh con)

END
;-------------------------------------------------------------------------------------Bi tp 06. Nhn nt Play xem.

Ti file phim v y

34/139

Bi tp 7
Chng trnh c mt chui vn bn v ct vo RAM

Mc ch-yu cu:

Lm quen vi a ch bt u ca chng trnh dch hp ng.


Hiu cch dnh lnh HALT, phn bit vi lnh END.
Phn bit cch dng lnh RET trong mi phn ca chng trnh.
Hiu c cc lnh PUSH, POP, PUSHF, POPF, JZ, JMP, CALL trong bi tp.

Kin thc nn :
1/ Lnh MOV BL,70 :
Chp 70 vo thanh ghi BL, y l a ch m th tc s nhp vn bn vo RAM. V d
ny ni v tham s trung gian s dng thanh ghi. Chng trnh c kh nng nhn c
mt s t mt phn ca mt chng trnh n mt chng trnh khc.
2/ Lnh INC BL :
y l lnh cng 1 vo BL. Kt qu ny lm cho BL ch ti v tr b nh k tip sn
sng cho cc k t vn bn k tip c ct gi.
3/ Lnh CALL 10 :
Lnh gi th tc ti a ch 10. iu ny c thc hin bng vic thit lp con tr lnh
IP ca CPU n a ch [10].
4/ Lnh RET:
Ti im kt thc ca th tc, lnh RET xc lp li con tr lnh IP v n lnh ngay sau
lnh CALL c gi. a ch ny c ct trn ngn xp bi lnh CALL.
5/ Lnh HALT :
Ta khng nn ln ln lnh HALT v lnh END. Lnh END kt thc chng trnh hp
ng. Lnh HALT th pht ra cc m my 00 lm cho CPU tm dng. C th c mt vi
lnh HALT trong chng trnh nhng ch c mt lnh END.
6/ Lnh ORG 10:
35/139

Con s 10 l gi tr ca a ch bt u ca chng trnh.


7/ Lnh PUSH AL v POP AL:
Ct gi tr ca AL vo ngn xp. y l mt vng nh trong RAM bt u ti a ch
BF. Ngn xp tin v 0. Vic hin th RAM cho thy con tr ngn xp c mu xanh
c lm ni bt vi nn ch vng. Lnh PUSH v POP dng chung vi nhau gip cho
cc ngt c th thc hin d dng ngay c trong th tc ngt (mt ngt th hai c th
xut hin trong khi yu cu ngt th nht ang thc hin). Th tc hay ngt c th thay
i cc thanh ghi CPU nhng n s c khi phc li c gi tr c ca chng khi tr
v chng trnh chnh.
8/ Lnh PUSHF v POPF:
Lnh PUSHF lu cc c ca CPU vo ngn xp. Lnh POPF khi phc li cc c CPU
n cc gi tr u ca chng. iu ny c th lm cho cc th tc v ngt c hu
dng trong cng vic m khng lm nh hng ti ch ngh li ca chng trnh.
9/ Lnh IN 00:
Nhp t port 0. Port ny c kt ni vi bn phm. Phm nhn c lu trong thanh
ghi AL.
10/ Lnh CMP AL,0D :
y l lnh so snh thanh ghi AL vi s 0Dh. 0D l m ASCII ca phm Enter. Khi
chy chng trnh th trn mn hnh s xut hin dng ch "Phm ENTER c nhn
cha?" ("Was the Enter key pressed?"). CMP lm vic bng cch tr 0D t AL. Nu
chng bng nhau th vic tr cho kt qu zero. y l l do c "Z" c thit lp.
11/ Lnh JZ Stop :
Lnh ny cho php nhy n nhn stop nu c "Z" c thit lp. JZ l lnh nhy c
iu kin.
12/ Lnh MOV [BL],AL :
Di chuyn phm nhn c ct trong AL vo nh RAM m [BL] ch ti. INC BL c
s dng lm cho BL ch ti v tr RAM k tip.
13/ Lnh JMP Rep :
JMP cho php nhy v nhn Rep, y l lnh nhy khng iu kin. N lun nhy v
cc c CPU c b qua.
36/139

14/ Lnh RET :


Lnh RET ny l lnh quay v t th tc n a ch c ct trong ngn xp. iu ny
c lm bi vic thit lp con tr lnh IP trong CPU.

Chng trnh:
; Chng trnh chnh -----------------------------------------------------------------MOV

BL,70

CALL
trong BL
CALL
bn.

10
40

;[70] l a ch m vn bn c lu gi
;th tc ti a ch [10] c vn bn v t n bt u t a ch

;th tc ny khng lm g cho n khi bn vit n, n s hin th vn

HALT
;pht ra m 00 lm CPU ngng khng s dng lnh END y v s b
li.;Th tc c vn bn
ORG

10

;m bt u t a ch [10]

PUSH

AL

;lu AL trong ngn xp

PUSH

BL

;lu BL trong ngn xp

PUSHF

;lu c CPU vo ngn xp

Rep:
IN

00

CMP AL,0D

;nhp t port 00 (bn phm)


;so snh xem c nhn phmEnter cha?

JZ

Stop

MOV

[BL],AL ;chuyn phm nhn ti RAM ti v ;tr [BL]

INC BL
JMP

Rep

;nu c th chng trnh s nhy n nhn Stop

;tng BL, BL ch ti v tr k tip


;nhy v nhn Rep nhn k t k

37/139

Stop:
MOV

AL,0

;gi tr null(=0) kt thc vch du

MOV [BL],AL ;chuyn n [BL]


POPF

;khi phc cc c t ngn xp

POP

BL

;khi phc BL t ngn xp

POP

AL

;khi phc AL t ngn xp

RET

;kt thc chng trnh con

;----------------------------------------------------------------------------------------;Th tc hin th vn bn trn mn hnh m phng


ORG

40

;a ch bt u ca th tc hin ;th l [40]

HERE:
MOV CL,C0

;a ch c bn ca RAM VDU

MOV BL,03

;khong cha trng ca chui vn ;bn

START:

;nhp vn bn vo VDU

MOV AL,[BL] ;a con tr vn bn vo AL


CMP
JZ

AL,0
END

;so snh nhy khi vng lp

MOV [CL],AL ;a AL vo b nh VDU


INC

CL

;v tr k tip trn VDU

INC

BL

JMP

START ;quay v chng trnh chnh

;k t vn bn k tip

38/139

END1
RET
END

; kt thc chng trnh

;--------------------------------------------------------------------------------------Bi tp 07. Nhn nt Play xem.

Ti file phim v y

39/139

Bi tp 8
Chng trnh iu khin n giao thng s dng bng d liu.
Mc ch-yu cu:
Gip sinh vin hiu v bng d liu v cch s dng bng trong vit chng
trnh.
Kin thc nn:
1/ Lnh DB 84 :
DB l ch vit tt ca Define Byte. Lnh ny khai bo s 84H c ct trong RAM ti
a ch [02]. a ch [00] v [01] dnh cho m my ca lnh JMP Start. 84H i sang
s nh phn l 1000 0100. S 0 v 1 ny c th dng bt sng n bn tri v n
xanh bn phi trong bi th nghim.
2/ MOV BL,02:
Chuyn 02 vo thanh ghi BL. [02] l a ch RAM bt u ca bng d liu. BL c
s dng nh l mt con tr ch n bng d liu.
3/ MOV AL,[BL]:
[BL] ch n bng d liu. Lnh ny chuyn mt gi tr t bng d liu vo thanh ghi
AL.
4/ Lnh OUT 01:
Dng gi ni dung ca thanh ghi AL ti port 01. Port 01 c kt ni vi n giao
thng.
5/ CMP AL,58:
58 l a ch truy xut cui cng ca bng d liu. Nu AL cha 58, n cn reset BL
ch li v u bng v sn sng lp li trnh t. Nu AL = 58, c "Z" trong CPU s
c thit lp.
6/ Lnh JZ Start:
Dng nhy v li nhn start nu c "Z" trong CPU c set.

40/139

7/ Lnh INC BL:


Tng BL ln 1 BL ch ti a ch k tip trong bng d liu.

Chng trnh
;Chng trnh iu khin n giao thng ----------------------------------------JMP

Start

; nhy n nhn Start b qua bng d liu

DB

84

;bng d liu bt u

DB

C8

;cc d liu ny iu khin n ;giao thng

DB

31

;trnh t ny c n gin ha

DB

51

Start:
MOV

BL,02

;02 l a ch bt u ca bng d ;liu

Rep:
MOV

AL,[BL]

OUT

01

CMP

AL,58

JZ

Start

;chuyn d liu t bng n AL


;xut t thanh ghi AL n port 1
;so snh a ch cui trong bng ;d liu
;nu c th nhy n nhn start
;nu khng th BL ch n mc k tip

INC

BL

JMP Rep
END

;nhy v li nhn Rep


;kt thc chng trnh

;-------------------------------------------------------------------------------------Bi tp 08. Nhn nt Play xem.

41/139

Ti file phim v y

42/139

Bi tp 9
S dng tham s trung gian

Mc ch-yu cu:
Thng qua vic thc hin cc php ton cng s dng cc thanh ghi, v tr
nh trn RAM v ngn xp.
S dng c cc thanh ghi, v tr nh trn RAM v ngn xp trong lp trnh
vi x l.
Kin thc nn:
Cc tham s a vo chng trnh c th thng qua trong 3 cch:

Cc thanh ghi CPU.

Cc v tr RAM.

Ngn xp.

Trong v d di y s dng 3 cch gii khc nhau cng 2 s.

Chng trnh:
; Nhy qua bng thng s ---------------------------------------------------JMP Start
DB 00
DB 00
Start:
MOV

AL,5

;gi 1 byte ca RAM ti a ch 02

MOV

BL,4

;gi 1 byte ca RAM ti a ch 03

43/139

CALL

30 ;gi th tc th nht

;s dng v tr RAM a cc tham s vo trong 1 th tc


MOV

AL,3

MOV

[02],AL

MOV

BL,1

MOV

[03],BL

CALL

40

;gi th tc th hai

;s dng ngn xp a tham s vo 1 th tc


MOV

AL,7

PUSH

AL

MOV

BL,2

PUSH

BL

CALL

60

POP

BL

POP

AL

JMP

Start

;gi th tc th ba

;tr v nhn Start thc hin

;Th tc cng 2 s (cch 1) ----------------------------------------------;Cc tham s thng qua trong th tc s dng AL v BL


;Kt qu a vo AL
;y l phng php n gin nhng khng hay lm v c nhiu thams
ORG

30

;bt u ti a ch 30

ADD

AL,BL

;cng BL vi AL, kt qu lu ;trong AL

44/139

RET

;kt thc chng trnh con, quay tr v t th tc

;Th tc cng 2 s (cch 2) ----------------------------------------------;Cc tham s thng qua trong th tc s dng v tr RAM
;Kt qu lu vo v tr RAM
;Phng php ny th phc tp hn v khng gii hn s tham s
ORG

40

;bt u ti a ch 40

PUSH

CL

;lu cc thanh ghi v cc c vo ngn xp

PUSH

DL

PUSHF
MOV

CL,[02]

;tm np tham s t RAM

MOV

DL,[03]

;tm np tham s t RAM

ADD

CL,DL

MOV

[02],CL

POPF

;ct kt qu trong RAM


;khi phc li thanh ghi ban u v gi tr c

POP DL
POP CL
RET

;kt thc chng trnh con

;Th tc cng 2 s (cch 3) --------------------------------------------------;S c cng bn trong ngn xp


;Ly tham s ra ngn xp
;Thc hin vic cng
;y kt qu vo li ngn xp

45/139

;Phn ln th tc gi trong thi gian thc u c s dng ngn xp


ORG

60

POP

DL

POP

BL

POP

AL

ADD

AL,BL

PUSH

AL

PUSH

DL

;m bt u ti a ch 60

;t tr li ngn xp nh trc

END

;kt thc chng trnh

;----------------------------------------------------------------------------------Bi tp 09. Nhn nt Play xem.

Ti file phim v y .

46/139

Bi tp 10
Chng trnh ngt mm

Mc ch-yu cu:
Lm quen vi ngt mm v nhn ra s khc nhau gia ngt mm v gi th tc.
Hiu v bng vect ngt v cch gi ngt mm nh th no?
S dng ngt mm trong trao i d liu.
Kin thc nn:
1/ Ngt v th tc:
Tnh u vit ca h vi x l trong iu khin h thng l tnh uyn chuyn (flexible):
d dng thay i chng trnh thch nghi vi mi trng lm vic. Mun vy, khi c
tn hiu cn trao i vi h thng, CPU phi tm dng cng vic hin ti phc v
vic trao i d liu. Sau khi hon thnh vic trao i d liu, CPU li quay v lm tip
cng vic ang lm d dang. Cch lm vic kiu ny gi l ngt CPU. Ngt l mt on
m ngn cung cp cc dch v hu ch c th s dng bng cc chng trnh khc nhau.
Chng trnh ngt in hnh nh thi hnh cc phm nhn, s di chuyn chut, nt nhn,
mn hnh son tho, c a, vit .
Ngt mm bn cht l mt lnh CALL t bit, n c gi mt cch ch ng
theo nhiu cch thng qua chng trnh ca ngi lp trnh ngha l n c vit ti mt
vi tr c nh trong chng trnh v nh vo vector ngt ch n chng trnh phc v
ngt c th. Nu nhn mt cch hi ht t bn ngoi, ta d nhm ln gia gi th tc v
ngt mm, thc ra chng vn c im khc: nu nh gi th tc l vic gi i gi li
mt on chng trnh no bt k (do ngi lp trnh lp ra) th ngt mm li gi mt
on chng trnh a s c chun ho cho vic ngt, v d: khi giao tip CPU trong
h thng vi cng RS232 ca my tnh ta ch cn dng lnh INT 21 my s hiu v thc
thi ngay lnh ngt ny. Tuy vy vn c th dng CALL thay cho ngt mm, v th trong
h vi iu khin 8051 ngi ta khng dng ngt mm m ch dng ngt cng do ng
dng cc b ca vi iu khin, trong khi vi x l c ng dng rng ln hn nhiu.
Ngt cng c gy ra bi tn hiu in ti CPU t cc thit b phn cng.
Ngt ny xy ra mt thi im no bt k m ngi lp trnh khng th bit c,
v d nh khi ht giy trong khay my in, chuyn gia lp trnh ca Microsoft khng th
bit ! nhng h c th lng trc c kh nng ny do vy tn hiu ht giy trn c
chuyn thnh tn hiu in truyn n CPU, ngi lp trnh nh vo vector ngt ch n
47/139

on chng trnh phc v ngt gii quyt vn trn. Nh vy, mt th tc phc v


ngt c th xut hin bt c lc no trong khi chng trnh ang chy, trong khi cc
th tc thng thng ch xut hin nhng v tr c nh trong chng trnh.
Cng ging nh th tc, trc khi thc hin chng trnh phc v yu cu ngt, a
ch tr v cn c ct vo ngn xp.
Khi hot ng c ch ngt thit b ngoi vi ch ng pht tn hiu ngt cho h vi x
l qua chn INT (Interrupt). CPU c phng thc kim tra s xut hin ca tn hiu yu
cu ngt ny v s p ng khi c th.

Hnh 4.1: C ch ngt


2/ Ngt mm:
L ngt c gi bng mt lnh trong chng trnh. Lnh l INT km theo s hiu
ngt n, v d: lnh gi ngt s 5 c vit l INT 5. Cc ngt mm ny cho php gi trc
tip cc th tc (chng trnh con) phc v ngt c trong chng trnh.
3/ Bng vect ngt (Interrupt Vector Table):

48/139

Khi mt ngt c chp thun, gi tr ca a ch bt u ca chng trnh phc v ngt


gi l vect ngt. Cc s hiu ngt n u tng ng vi cc a ch xc nh ca nh
c cha a ch u tin ca chng trnh con phc v ngt cha trong bng vect ngt.
Ni c th hn : i vi cc nguyn nhn ngt khc nhau th CPU s thc thi cc m
lnh khc nhau gi cho ngt y mt chng trnh ngt tng ng, a ch u tin ca
chng trnh ny c xc nh qua bng vector ngt. Trong cc my IBM, bng ny
nm trong b nh trung tm bt u ti a ch 0 n 1024.
3/ Gi lnh ngt (calling an interrupt) :
y l mt vic lm phc tp. Lnh INT 02 lm CPU gi ra ni dung cha trong RAM
ti a ch 02. Sau khi lu a ch tr v trong ngn xp, con tr lnh IP c ch ti v
tr ny. M ngt khi y c thc hin. Khi hon thnh lnh IRET lm cho chng trnh
quay tr v t lnh ngt . Con tr lnh IP c t ti a ch c lu trong ngn
xp ban u.
Chng trnh:
;Chng trnh ngt phn mm------------------------------------------------------JMP

Start

;nhy qua bng ca vect ngt

DB

51

;vect ti a ch 02 ch ti a ch 51

DB

71

;vect ti a ch 03 ch ti a ch 71

Start:
INT

02

;ngt 02

INT

03

;ngt 03

JMP

Start

;---------------------------------------------------------------------------------------ORG
DB

50
E0

;---------------o cc bit trong nh 50------------------MOV

AL,[50]

49/139

NOT

AL

MOV

[50],AL

;-----------------------------------------------------------OUT

01

;Sng tt c bng n ca n giao thng bn phi

IRET
;--------------------------------------------------------------------------------------70
;chuyn cc bit t RAM vo AL
DB

MOV

AL,[70]

NOT

AL

AND

AL,FE

MOV
OUT

ORG

[70],AL
02

;o cc bit trong AL
;Bt buc bt bn phi ngoi cng bng 0
;chuyn cc bit o li vo RAM
;hin th s 8 trn Led 7 on bn tri

IRET
END
;--------------------------------------------------------------------------------------Bi tp 10. Nhn nt Play xem.

Ti file phim v y.

50/139

Bi tp 11
Chng trnh ngt cng v gi th tc ngt

Mc ch-yu cu:
Bi tp ny gii thiu ngt cng v cch gi th tc ngt.
S dng ngt cng trong trao i d liu.
Kin thc nn:
1/ Ngt cng:
Ngt cng l yu cu ngt CPU do cc tn hiu in n t chn INTR v NMI ( ngt c
che v khng che). Khc vi ngt mm, ngt cng khng c khi ng bi chng
trnh m bi cc thit b c trong phn cng. Loi ngt ny l mt ch c bit rt
hiu qu c trang b to c ch iu khin mm do v linh hot (flexible) khi h
c nhiu thit b ngoi vi. Bnh thng CPU tin hnh cng vic theo ch chnh l
ch lm vic theo chng trnh, ch khi no c s tc ng bi tn hiu in t phn
cng gi n CPU mi tm dng cng vic hin ti phc v yu cu ca thit b
ngoi vi . Tn hiu t cc thit b phn cng gi n th khng bit trc v mt thi
gian, v d nh khi nhn hay nh mt phm nhn th ngt bn phm s c kch hot,
n s gi tn hiu n CPU. CPU tm dng cng vic ang thc hin v x l vic ngt
: c th l chuyn k t ny vo vng nh m. Khi vic x l ny hon thnh th CPU
mi quay tr li chng trnh chnh ni m trc chng trnh tm dng.
Ngt cng trong v d trn c th b che chn li khi c I trong thanh ghi trng thi
khng c thit lp c th bng lnh CLI (Clear Interrupt Flag) : ngha l s xut hin
ca lnh ny khin cho khng c k t no c nhp t bn phm na mc d vn cn
xut hin ngt (phm vn c nhn hay nh). hu b ch cm ngt trn ( thit
lp li c I), ta dng lnh STI (Set Interrupt Flag), n cho php cc ngt b che tc ng
tr li bnh thng.
Cc ngt truyn qua chn NMI khng h b che chn :lun c thc hin, k c khi
ngt ny c gi ngay sau lnh CLI.
Ngoi hai loi ngt va nu trn, CPU cn c ngt cng bn trong. Nhng ngt ny
khng b kch hot bi thit b ngoi vi m bi chnh cc IC b tr nm trong h vi x
l.

51/139

Khc vi ngt mm, ngt cng khng c kch hot bi chng trnh phn mm m
do cc thit b tham gia trong phn cng ca h vi x l tc ng. V d: khi phm c
nhn, ht giy my in, thao tc trn chut, a da mm vo my tnh .
Khi c nhiu yu cu ngt thuc cc loi ngt khc nhau cng lc i hi CPU phc v
th CPU s thc hin x l yu cu ngt theo th t u tin vi nguyn tc ngt no c
mc u tin cao nht s c CPU nhn bit v phc v trc. Ngt c phn cng
u tin nh a th c u tin trc my in...Trong chng trnh m phng ny ngt
cng chnh l INT 02. N c to ra bi mt b nh thi. Tn hiu ngt c pht ra
mt cch u n, khong cch gia hai ngt c th t trc trong Configuration Tab.
chnh khong thi gian xut hin gia hai ln tn hiu ngt INT 02, chn View >
Configuration.

Chn Increase (tng) hay Reduce (gim) chnh tn s xut hin ca lnh INT 2. Lu
do y l chnh chu k nn mun tng tn s xut hin lnh ngt phi gim thi gian
chu k.

52/139

Bn phi t mt vect ngt ti a ch 02 ch n m ngt ca bn ti mt a ch no


trong RAM, khi c tn hiu ngt chng trnh phc v ngt ca bn s thc thi. Hy
xem v du minh ho phn sau. Trong chng trnh m bn son tho, d lnh ngt
c hay khng th CPU vn lin tc thm d xem trng thi ca cc thit b phn cng, c
th vi chng trnh m phng ny lnh ngt INT 02 lin tc c pht ra nhng thc
thi hay khng l tu thuc vo chng trnh ca bn.
2/ Gi th tc ngt:
Lnh ngt INT 2 d do phn cng hay phn mm tc ng, CPU s ly ra ni dung ca
RAM ti a ch 02. Sau khi lu a ch quay li trn ngn xp, con tr lnh IP c ch
n a ch c xc nh trong RAM. Sau m ngt c thc hin. Khi hon thnh
lnh IRET, chng trnh quay tr v chng trnh chnh. Con tr lnh IP ca CPU c
t n a ch c lu trn ngn xp trc .
Ngt cng c khc i cht so vi ngt mm. Ngt mm c gi vi mt lnh ging
nh INT 02 v tr v lnh ngay sau n. IP+2 c ct vo ngn xp. Ngt cng khng
c gi bi mt lnh trong chng trnh v th a ch quay v khng cn phi qua lnh
gi. Ni dung trong IP c ct ln trn ngn xp.

Chng trnh:
;----------------------------------------------------------------------------------; v d ny s dng ngt cng cho php iu khin song hnh ng c bc ln n giao
thng

JMP

Start

;nhy n nhn Start (bng ca vect ngt)

53/139

DB

50

;vect ti a ch 02 ch ti a ch 50

Start:
STI

;set c I

MOV

AL,11

Rep:
OUT

05

;iu khin ng c bc

ROR

AL

;xoay bit trong AL sang phi

JMP

Rep

JMP

Start

;---------------------------------------------------------------------------------------ORG

50

PUSH

AL

;lu AL vo ngn xp

PUSH

BL

;lu BL vo ngn xp

PUSHF
JMP

;lu cc c vo ngn xp
Pastdata

DB 84

; 1 + xanh 2

DB C8

; 1 + vng 1 + vng 2

DB 30

;xanh 1 + 2

DB 58

;vng 1 + 2 + vng 2

DB 57

;s dng kim tra tin trnh qua bng

Pastdata:

54/139

MOV

BL,[5B]
MOV

OUT

;BL ch n bng d liu

AL,[BL]

01

;d liu t bng n AL

; iu khin n giao thng


;Gi d liu trong AL ra n

CMP
JZ

AL,58
Reset

INC

BL

;a ch cui trong bng


;nu a ch cui c ch n th nhy n Reset
;tng BL ln 1, BL ch n a ch k tip trong

bng
MOV
JMP

[5B],BL

Stop

;lu con tr vo trong Ram

;nhy v nhn Stop

Reset:
MOV
MOV

BL,57

[5B],BL

;ch n a ch bt u bng d ;liu


;lu con tr vo trong Ram

Stop:
POPF

;khi phc cc c ti v tr lin ;trc

POP

BL

;khi phc BL ti gi tr lin ;trc

POP

AL

;khi phc AL ti gi tr lin ;trc

IRET
END
; Lu : d quan st kt qu, nn kt hp chnh tn s xung Ck ca CPU vi tn s
xut hin lnh ngt.
;------------------------------------------------------------------------------------Bi tp 11. Nhn nt Play xem.

Ti file phim v y .
55/139

Bi Tp Nng cao
Bi tp nng cao 1
Vit chng trnh iu khin n giao thng c thi gian tr nh thc t s dng 3 cch:
BI TP 1.1: S dng vng lp.
BI TP 1.2: S dng th tc nh thi.
BI TP 1.3: S dng bng d liu.

56/139

Bi tp nng cao 2
Vit chng trnh iu khin vic hin th trn VDU.
BI TP 2.1:
Vit chng trnh nhp chui vn bn bng bn phm v hin th trn mn hnh
VDU. Chng trnh nhp k t s dng li khi nhn phm Esc.
BI TP 2.1:
Vit chng trnh cho php h thng hin th trn mn hnh caVDU mt chui vn
bn c nh t trc, ta c th thay i mt cch d dng, sau chng trnh t xo
chng i... qu trnh c nh th m tip din. Bn th thay i on vn bn trn theo
bn xem!

57/139

Bi tp nng cao 3
Chng trnh iu khin ng c bc.
BI TP 3.1:
Vit chng trnh iu khin ng c bc quay thun vi mi bc quay l 5 (quay
1/2 bc).
BI TP 3.2:
Vit chng trnh iu khin ng c bc quay thun 90 ; nghch 35 sau dng
li.

58/139

Bi tp nng cao 4
Vit chng trnh iu khin rn chy trong m cung.
BI TP 4.1:
S dng bng d liu v vng lp, vit chng trnh iu khin rn chy thot khi
m cung.
BI TP 4.2:
S dng cc ngt cng vit chng trnh iu khin rn chy thot khi m cung
v ng in l sy chy song hnh.

59/139

Bi tp nng cao 5
Chng trnh iu khin thang my
Hy vit chng trnh iu khin thang my chuyn ng theo cc nt nhn ln
xung c trong giao din phn cng port 06.

60/139

Bi tp nng cao 6
Chng trnh khng ch nhit l sy.
Hy vit chng trnh khng ch nhit l sy theo nguyn l so snh ca s
nhit l c khng ch 20 C.
Gi : Khng ch nhit , m, in p ... theo nguyn l so snh ca s (cn
c gi l khng ch ON-OFF) l mt hnh thc khng ch rt thng dng trong thc
t. Trong dng khng ch ny ngi ta lin t?c ng ct ngun nhit, m, in p ...
gi gi tr trung bnh ca tn hiu l hng s.

61/139

Bi tp nng cao 7
Chng trnh iu khin hin th LED 7 on.
BI TP 7.1:
Thit k chng trnh m tun t lin tc t 0 n 9 hin th trn LED 7 on bn phi.
BI TP 7.2
Thit k hai chng trnh m c lp nhau :
LED tri hin th theo s xung Clock ca CPU.
LED phi hin th theo s xung pht ra bi b nh thi ngt phn cng.

62/139

Ph Lc
Ph lc A

M ASCII c 128 k t chun v hn 128 m rng, ch s chuyn i gia cc my vi


nhau, gia cc nc vi nhau.
M ASCII thay th cho m 16 bit vi 65536 k t m mi k t tung ng vi cc cch
s dng.
128 k t u tin :
DEC

1 2 3 4 5 6 7

8 9 10 11 12 13 14 15

HEX 0

1 2 3 4 5 6 7

8 9 A B C D E

000

00

Nul

016

10

032

20

Spa !

048

30

1 2 3 4 5 6 7

064

40

A B C D E F G H I

080

50

096

60

112

70

" # $ :

& ?

8 9 :

<

>

K L

M N O

Q R S T U V W X Y Z

a b c d e f

h y z

m N o

q r s t

u v w x y z

Nul

Cc m t 128 n 255:
Cc m ny c s dng vi DOS, my in, hoc mn hnh ANSI

Nul K t NULL ( kt thc mt chui )

63/139

Bel K t Bell hoc Beep

Bak K t delete hoc Backspace

Tab K t Tab

10

Lf

Lime Feed (bt u mt dng mi)

13

Cr

M Carriage Return

26

Eof M Dos End Of File

27

Esc M Escape

32

Spa K t Space

255 Nul Thm 1 k t Null

Chuyn i gia nh phn v hex :


CPU lm vic vi m nh phn, c th to ra s nh phn bng cch dng cng tc iu
chnh nt ON v OFF, nh phn gm s 0 v s 1. Bit n hoc Bit nh phn c
chuyn n CPU. Thng thng d liu gm 1 byte hay nhiu byte, 1 byte gm 8 bit.
V d : 1byte gm 8 bit ch c s 0 v s 1 : 0100 1011
Cch s dng h thp lc phn trong vic c, ni,vit th khng tin li bng cch s
dng h nh phn, vic chuyn i gia s nh phn v s hex th rt n gin, 1 byte s
c chia thnh hai nhm, mi nhm gm 4 bit.
V d :
Byte 01001011 c chia thnh hai hm bit : 0100 v 1011.
H thng s :

64/139

Nh phn(Binary) Thp lc phn (Hexadecimal) Thp phn (Decimal)


0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

10

1011

11

1100

12

1101

13

1110

14

1111

15

V d 1: phn chia 1 byte thnh hai :

Kt qu l 4Bhex

V d 2 : chuyn E7 thp phn sang nh phn

7 -----------------------

0111

65/139

Vy

E7 -----------------------1110 01112

Bao gm : lnh s hc, lnh jump, lnh move, lnh compare, lnh stack, procedures v
interrupts, lnh xut - nhp, v cc lnh khc.
Cc thanh ghi ca CPU :
Gm 4 thanh ghi c c dng cng mt mc ch l AL, BL, CL v DL.
IP l con tr lnh.
SP l con tr ngn xp.
SR l thanh ghi trng thi, thanh ghi ny gm cc loi c : I, S, O v Z.
Cc loi c :
Dng biu th ng ra ca my tnh thng qua CPU. Cc bit n trong thanh ghi trng
thi c s dng lm cc c. Trong b m phng ny s dng cc loi c :
C S: l mt c c t vo nu vic tnh ton a ra kt qu l(-)
C O: l mt c trn, c ny c t vo nu kt qu a ra ln hn 8 bit.
C Z : l c O, c t vo nu kt qu a ra ln hn 8 bit.
C I : l vic ngt phn cng.
Trn thc t th CPU c hn 4 loi c k trn.
Thanh ghi v cc m my :
Cc loi thanh ghi v cc m my tng ng nh sau :

66/139

Tn thanh ghi :
M my

AL
00

BL
01

CL
02

DL
03

V d : Cng 1 vo thanh CL th s dng lnh nh sau :


M bin dch :

INC

CL

M my hex :

A4

02

Nh phn

1010 0100

A4

: ch lnh my a n lnh INC

02

: ch thanh ghi CL

0000 0010

Trong trnh bin dch khng c s linh hot, mov th tng t nh MOV v Mov. M
thp lc phn khng s dng hai mc nh nh phn.
H thng s Hex :
H Hex bao gm cc con s nh 15, 3C v FF.Khi bin dch th c th chuyn tt c
cc con s thnh h hex. Cc thanh ghi trong CPU th s dng m nh phn, hex v thp
phn, do cn xem chi tit vic chuyn i qua li gia hex v nh phn.
H thng s m :
V d nh FE l 1 s (-).
Trong 1 byte th 4 bit da s cc bit bn tri c s dng nh 1 bit sign, n c gi tr l
-128 . Cc byte c th thay i t -128 n 127 ( i vi s - ) v t 0 n 255
Lnh chuyn i gin tip :
c s dng khi cn chyn d liu vo trong RAM, lc du ngoc vung c bao
ngoi d liu cn chuyn.
V du :
[15] : ch d liu ti a ch 15 hex c chuyn vo RAM. Khi chuyn d liu vo
thanh ghi th cng s dng du ngoc vung

67/139

V du? :
[BL] : a d liu c trong thanh ghi BL chuyn vo RAM. Vic chuyn i ny rt
quan trng v c s dng thng xuyn, thay v a trc tip d liu hoc gi tr vo
thanh ghi th chuyn gin tip n RAM. Vic di chuyn ny c s dng thng qua
con tr.

So snh vi chip 80X86 :


mt mc nh cc lnh ca h m phng ny th c xem nh cc m nh ca
trnh bin dch. Cc chng trnh tr nn thc t hn nh vic thc hin cc lnh, nhng
lnh set th khng thc hin c. Trong b m phng ny th cc lnh s dng theo
CPU 8 bit, cn cc loi CPU cn li th khng dng m phng. Trong phin bn cc
lnh CALL, RET, INT, RET v vic ngt phn cng khng qua cc th tc v vic ngt
th vn c th thc hin c.
Ngi son tho chng trnh mong mun cc lnh trong b m phng ny tng t
nh cc lnh trong chip 80X86, lnh MUL v DIV th n gin hn chip 80X86. S bt
li khi tip cn b m phng l kt qu to ra c trn qu nhiu. Vic s dng lnh ADD
v SUB trong b m phng ny c th thc hin c.
Trong 80X86 th khi tnh ton vic s dng lnh DIV bao gm c lnh DIV v MOD
nhng trong b m phng th s dng hai lnh ring bit nhau.
Vic to ra m my ca chip 80X86 v b m phng tng t nhau, hai loi m my th
khc nhau, m my ca b m phng n gin v gn hn.
Vi loi 80X86, th lnh MOV AL, 15 gm hai byte; byte th nht cha MOV AL cn
gi tr 15 a vo mt byte khc, iu ny to ra s khc nhau khi kt ni cc lnh MOV
vi cc thanh ghi v n khc nhiu khi s dng m OP.
B m phng ny cn 3 byte, MOV s dng 1 byte, loi m OP, AL s dng 1 byte
c m 00. D liu 15 c a vo 1 byte, vic ny tuy khng hiu qu nhng rt n
gin.

Cc lnh :

68/139

ADD

Cng

SUD

Tr

MUL

Nhn

DIV

Chia

MOD

Chia ly phn d

AND

OR

Hoc

XOR

So snh

INC

Tng ln 1

DEC

Gim i 1

NOT

Ph nh

ROL

Xoay cc bit qua tri

ROR

Xoay cc bit qua phi

SHL

Dch chuyn cc bit qua tri.

SHR

Dch chuyn cc bit qua phi.

Cc v d trc tip:

M bin dch

M my

ADD

AL, BL

A0

00

01

SUB

CL, DL

A1

02

03

69/139

MUL

AL, CL

A2

00

02

DIV

BL, DL

A3

01

03

MOD

DL, BL

A6

03

01

AND

CL, AL

AA

02

00

OR

CL, DL

AB

02

03

XOR

BL, AL

AC

01

00

Cc v d tc thi :

ADD

AL, 15

B0

00

15

SUB

BL, 05

B1

01

05

MUL

AL, 10

B2

00

10

DIV

BL, 04

B3

01

04

MOD

DL, 20

B6

03

20

AND

CL, 55

BA

02

55

OR

CL, AA

BB

02

AA

XOR

BL, FF

BC

01

FF

V d :
ADD CL, AL ; cng thanh ghi AL v CL sau kt qu a vo CL
ADD AL, 22 ; cng 22 vo thanh ghi AL sau kt qu a vo AL.
Kt qu sau khi thc hin php cng lun lun a vo thanh ghi u tin.

70/139

DEC BL ; gim 1 trong thanh ghi BL v kt qu a vo BL.


Cc c :
+ t c Z khi kt qu tnh ton ra 0.
+ t c S khi kt qu tnh ton ra (-).
+ t c O khi kt qu l trn.
Vic trn xy ra khi kt qu vic tnh ton ln hn s bit a vo thanh ghi. Vi thanh
ghi 8 bit th s ln nht c th l : -128 n + 127.

Vi tp ny, khng s dng cc loi c nh Z, S hoc O.


+ Tp lnh :

JMP

+ M my tng ng :

JZ

JNZ

JS

JNS

JO

CO

C1

C2

C3

C4

JNO
C5

. JMP Jump

: lnh nhy khng c iu kin.

. JZ

Jump Zero

: nhy nu c Z c t vo.

. JNZ

Jump Not Zoro

: nhy nu c Z khng c t vo.

. JS

Jump Sign

: nhy nu c c Sign.

. JNS

Jump Not Sign

: nhy nu c Sign khng t vo.

. JO

Jump Overflow

: nhy nu c c trn (O) c t vo.

. JNO

Jump Not Overflow

: nhy nu c trn (O) khng c t vo.

C6

V d :

JMP HERE ; m ca trnh bin dch

71/139

CO

??

; y l m my tng ng
; ?? a ch m ngi bin dch cn tnh ton

HERE :

; nhn m ngi bin dch s dng


; khi vic tnh ton hon chnh th nhy v a ch

Lnh JMP l mt trong tp lnh ca thanh ghi con tr, vic tnh ton c thc
hin bi ngi bin dch, dng lnh ny c th nhy ti hoc nhy v li trong di
+127 n - 128 chnh l nguyn nhn ti sao cc con s ln nht li c th c lu
tr trong 8 bit ca vng nh.
Cc lnh Jump khc th lm vic tng t, vi iu kin cc c c t vo
hoc khng.
HERE :

; mt loi nhn hp yu cu

HERE : :

; khng s dng c, ch cn mt du hai chm

1234 : ; khng s dng c, nhn phi l k t ch hoc l du "_".

Lnh Move thc hin gia cc thanh ghi vi nhau .


D liu c di chuyn t thanh ghi ny n thanh ghi khc.
B m phng th khng h tr loi lnh ny.
C php ca lnh MOV ny :
MOV

AL, BL
Lnh ny s dng gn hn vic s dng hai dng lnh :

PUSH AL
72/139

POP

BL

Lnh Move tc thi :


-

S dng khi cn di chuyn mt s no vo mt thanh ghi.

V d :
Lnh

MOV

M my

DO

Trong

BL, 45
01, 45

DO

: m my ca lnh MOVE tc thi

01

: thanh ghi BL

45

: s cn chuyn vo thanh ghi BL


Lnh Move gin tip :

D liu c chuyn i gia cc thanh ghi v cc vng nh trong RAM.


D liu c a n t thanh ghi hoc t RAM, cc a ch trong RAM s dng lnh
ny, v d :
Lnh

MOV

M my

D1

Trong

BL, [15]
01

D1

: m my ca lnh move gin tip

01

: thanh ghi BL

15

: a ch RAM

15.

D liu c chuyn t a ch [15] trong RAM n thanh ghi BL.


chuyn d liu t 1 thanh ghi vo RAM.
V d

73/139

Lnh

MOV [13],BL

M my

D2

Trong

13

01

D2

: ch m my cho mt lnh Move gin tip

01

: thanh ghi BL

13

: a ch RAM

D liu c di chuyn t thanh ghi BL vo a ch [13] trong RAM.


Lnh Move gin tip dng trong thanh ghi :
Mt thanh ghi thng cha cc d liu cn chuyn, mt thanh ghi khc c lu
tr trong vng RAM.
V d :
Lnh

MOV

M my

D3

Trong

DL,[AL]
03

00

D3

: ch m lnh ca lnh Move gin tip dng trong thanh ghi.

03

: thanh ghi DL

00

: thanh ghi AL

Thanh ghi AL c d liu c cha trong RAM, d liu c chuyn t RAM


sang thanh ghi DL.
D liu cng c th di chuyn theo mt hng khc, v d nh :
Lnh

MOV

M my

D4

[DL], AL
03

00

Trong :

74/139

D4

: m lnh ca thanh ghi s dng lnh Move gin tip.

03

: thanh ghi D2

00

: thanh ghi AL

Thanh ghi DL cha d liu c a ch trong RAM. D liu c di chuyn t


thanh ghi DL vo RAM

Khi b m phng cn so snh hai gi tr vi nhau th dng lnh CMP.

Lnh CMP s thc hin vic so snh sau khi tr hai gi tr vi nhau.

Nu hai gi tr bng nhau, lc o php tr c kt qu bng 0, trng hp ny


c Z s c t vo.

Nu s b tr nh hn s tr, th s khng t c vo.

Nu s b tr ln hn s tr, kt qu s ra mt s (-), trng hp ny c sign


s c t vo.
- C th s dng lnh JS, JS kim tra li kt qu khi s dng lnh CMP.
Lnh so snh hai thanh ghi : s dng hai thanh ghi so snh .
V d :
Lnh

CMP

M my

DA

Trong

DA
00

Al, BL
00, 01

: m ca lnh so snh hai thanh ghi.


: thanh ghi AL

75/139

01

: thanh ghi BL

. Nu hai thanh ghi c gi tr bng nhau, th t c Z


. Nu thanh ghi th nht AL c gi tr ln hn thanh ghi th hai, th t S
. Cc trng hp cn li th s khng t c vo.
Lnh so snh tc thi : so snh gia thanh ghi vi mt s bt k.
V d :
Lnh

CMP

M my

DB

Trong

AL, 0D
00, 0D
:

DB

: ch m ca lnh CMP

00

: thanh ghi AL

0D

: con s cn so snh

. Nu gi tr ca thanh ghi bng vi s cn so snh, th t c Z.


. Nu thanh ghi c gi tr ln hn s th t c S.
. Khng t c cho cc trng hp cn li.
+ Lnh so snh gin tip : so snh thanh ghi vi mt d liu c a ch cha
trong RAM
V d :
Lnh

CMP

M my

DC

CL, [20]
02, 20

Trong :
DC
02

: m lnh.
: thanh ghi CL.

76/139

20

: d liu c a ch trong RAM cn so snh vi thanh ghi.

Nu thanh ghi c gi tr bng gi tr ca con s, th t c Z

Nu thanh ghi CL c gi tr ln hn gi tr ca s cn so snh th t c.

Cc trng hp cn li th khng t c.

Cc lnh ny khng s dng vic t c Z, S hoc O


Sau khi a cc d liu vo ngn xp, phi t ng theo th t b a ngc v
ngn xp lm vic theo quy tc x l ng ra cui cng trc sau mi n ng ra u
tin ( quy lut LIFO : last in first out ).
Ngn xp c s dng :
+ Lu ni dung ca thanh ghi sau khi phc li .
+ a cc tham s vo th tc sau quay v kt qu
Ni dung ca thanh ghi c lu tr trong ngn xp sau s c khi phc li, ngn
xp lm vic theo nguyn tc LIFO ( vo sau cng ra trc ht)
. Lnh PUSH : c s dng t d liu vo ngn xp.
. Lnh POP : c s dng ly d liu ra khi ngn xp.
V d :
1) Lnh

PUSH BL

M my

E0

01

Trong : E0 : m my ca lnh PUSH

77/139

01

: thanh ghi BL
2) Lnh

POP

BL

M my

E1

01

Trong :
E1 : m lnh POP
01 : thanh ghi BL
Ngn xp c th lu tr v khi phc li cc c ca thanh ghi.
V d :
1) Lnh
M my

PUSHF

EA

Trong :
EA : m my ca lnh PUSHF

2) Lnh

POPF

M my

EB

Trong : EB m ca lnh POPF

S dng cc thanh ghi sn c.

78/139

Khng t c Z, O, S

Cc c v thanh ghi c lu bi cc th tc hay ngt v c khi phc li sau khi th


tc hay ngt hon thnh cng vic ca n.
. S dng lnh PUSH v PUSHF lu
. S dng lnh POP v POPF phc hi.
Cch gi mt th tc:
Xem v d sau :
Lnh

CALL 30

M my

CA

30

CA : m lnh CALL
30 : a ch bt u ca th tc c gi
Quay tr li t mt th tc :
Lnh

RET

M my

CB

Kt thc mt th tc th s dng lnh RET v quay tr v chng trnh ti lnh sau lnh
CALL. M my ca lnh RET l CB.
Cch gi lnh Interrup thng thng :
Lnh

INT

03

M my

CC

03

CC : m lnh ca INT, 03 : a ch ca vect ngt s dng bi lnh INT


03 : vect ngt thuc vng lu tr RAM, y l a ch bt u ca m ngt. Chng
trnh nhy v a ch ca m ngt v thc hin vic ngt.
Quay tr li t mt lnh ngt :
Lnh

IRET

79/139

M my

CD

M ngt sau cng l lnh IRET, quay tr li chng trnh s dng lnh A. M my ca
lnh IRET l CD.
Quay tr li a ch m chng trnh chuyn n sau khi thc hin vic ngt v lu trong
ngn xp.

Khng t cc c Z, S, O
Cc port c ni n b m phng v a ra ngoi.
IN

00 : c t bn phm, nhp t bn phm

OUT

01 : xut d liu ra iu khin n giao thng

V d :
Lnh

IN
M my

00
F0

00

FO : m my ca lnh IN, d liu c a vo t 1 port


00

: ch s port m d liu xut ra.

B m phng gm c cc port : 0HEX n 0FHEX


Lnh

OUT

01

M my

F1

01

F0 : m my ca lnh OUT, d liu c a ra cc port

80/139

01

: ch v tr ca port

Bao gm : HALT, MOP, CLO, ORG, DB, CLI, STI


Cc lnh ny khng t cc c Z, S, O
Ch :
CLI : lnh xa c I
SET : lnh t c I
?

Lnh HALT : lnh dng chng trnh

Lnh

HALT

M my

00

00: m lnh ca HALT


Chng trnh s ngng nu gp lnh HALT, chng trnh s chy li nu hy b
lnh ny. Bn c th s dng mt vi lnh HALT trong mt chng trnh v ch s dng
ng mt lnh END.
?

Lnh NOP : khng lm g trong mt chu k xung


Lnh

M my

NOP
FF

FF : ch m ca lnh NOP.
Chng trnh s khng lm g cho mt chu k xung clock, sau chng trnh
s hot ng tr li. NOP c s dng nh mt th tc delay cho php gia cc mch
in vi CPU v khi gi l "trng thi ch ".
81/139

Lnh CLO : ng tt c ca s ca cc chng trnh khc.

Lnh

CLO

M my

FE

FE : m lnh CLO
Ch c s dng m ny trong b m phng, v dng ng cc ca s ca
chng trnh khc. Vic ny rt cn thit v mn hnh lc s khng c chng trnh
khc, khng to ra s ln ln.
?

Lnh ORG : M gc

M c pht sinh t mt a ch bt u ln hn 0, vic ny th hu dng t cc


th tc , cc ngt hay bng d liu ti a ch trong vng nh.
ORG

30

Khng c m my no c pht ra nhng a ch thng t d liu bt u l 30


?

Lnh DB : nh ngha bin kiu byte hay chui

L mt cch tin li khi a chui m ASCII vo vng nh RAM


DB " HELLO"
M ASCII ca "H,E,L,L,O" c chuyn vo RAM
DB FF
y cng l mt cch chuyn gi tr Hex vo RAM.
C th s dng nhn bit s kt thc ca chui vi m ZERO, cc vect ngt
c th c chuyn vo cng vi DB. Bng d liu ca m Hex cng c ti vo, m
ca CPU c th chuyn m?t cch trc tip, n lm vic tng t nh cch lm vic m
ngi bin dch mong mun.
?

Lnh CLI : xa c I (xa c cho php ngt)

Nu c I b xa th phn cng b ngt. y l trng thi mc nh trong chng trnh


m phng. Khi ng li CPU th c I vn b xa, trong thi gian b ngt th phn cng
khng lm vic.

82/139

Lnh STI : thit lp c I (lp c cho php ngt)

Nu nh c I c thit lp th b m phng s to ra lnh INT 02 ti khong thi gian


bnh thng,vic ny rt cn thit khi c vector ngt c lu ti a ch 02 m ch n
m iu khin ngt ni khc. Nu vic ngt xut hin nhanh hn vic x l th vic
ph hu h thng m phng s xy ra. iu chnh tc xung clock CPU v khong
thi gian ngn nga trng hp ny.

Dec

Hex

Dec

Hex

Dec Hex

-128

80

-127

81

-124

84

-123

85

-122

86

-121

87

-120

88

-119

89

-118

8A

-117

8B

-116

8C

-115

8D

-114

8E

-113

8F

-112

90

-111

91

-110

92

-109

93

-108

94

-107 95

-104

98

-103

99

-102

9A

-101

9B

-100

9C

-099

9D

-098

9E

-097

9F

-096

A0

-095

A1

-094

A2

-093

A3

-092

A4

-091

A5

-090

A6

-089

A7

-088

A8

-087

A9

-086

AA

-085

AB

-084

AC

-083

AD

-082

AE

-081

AF

-126 82

-106

Dec Hex
-125

96

83

-105

97

83/139

-080

B0

-079

B1

-078

B2

-077

B3

-076

B4

-075

B5

-074

B6

-073

B7

-072

B8

-071

B9

-070

BA

-069

BB

-068

BC

-067

BD

-066

BE

-065

BF

-064

C0

-063

C1

-062

C2

-061

C3

-060

C4

-059

C5

-058

C6

-057

C7

-056

C8

-055

C9

-054

CA

-053

CB

-052

CC

-051

CD

-050

CE

-049

CF

-048

D0

-046

D2

-045

C3

-044

D4

-043

D5

-042

D6

-041

D7

-040

D8

-039

D9

-038

DA

-037

DB

-036

DC

-035

DD

-034

DE

-033

DF

-032

E0

-031

E1

-030

E2

-029

E3

-028

E4

-027

E5

-026

E6

-025

E7

-024

E8

-023 E9

-020

EC

-019

ED

-018

EE

-017

EF

-016

F0

-015

F1

-014

F2

-013

F3

-012

F4

-011

F5

-010

F6

-009

F7

-008

F8

-007

F9

-006

FA

-005

FB

-003

FD

-004

FC

-047

D1

-022

-002

EA

FE

-021

EB

-001 FF

84/139

Dec
+000

Hex
00

Dec
+001

Hex
01

Dec

Hex

+002

Dec

02

Hex
+003

03
+004 04

+005

05

+006

06

+007 07

+008 08

+009

09

+010

0A

+011 0B

+012

0C

+013

0D

+014

0E

+015

+016 10

+017

11

+018

12

+019 13

+020 14

+021

15

+022

16

+023 17

+024 18

+025

19

+026

1A

+027 1B

+028

1C

+029

1D

+030

1E

+031

+032 20

+033

21

+034

22

+035 23

+036 24

+037

25

+038

26

+039 27

+041

29

+042

2A

0F

1F

+040

28

+043

+044

2C

+045

2D

+046

2E

+047

+048 30

+049

31

+050

32

+051 33

+052 34

+053

35

+054

36

+055 37

+056 38

+057

39

+058

3A

+059 3B

+060

3C

+061

3D

+062

3E

+063

+064 40

+065

41

+066

42

+067 43

2B
2F

3F

85/139

+068 44

+069

45

+070

46

+071 47

+072 48

+073

49

+074

4A

+075 4B

+076

4C

+077

4D

+078

4E

+079

+080 50

+081

51

+082

52

+083 53

+084 54

+085

55

+086

56

+087 57

+088 58

+089

59

+090

5A

+091 5B

+092 5C

+093

5D

+094

5E

+095

+096 60

+097

61

+098

62

+099 63

+100 64

+101

65

+102

66

+103 67

+104 68

+105

69

+106

6A

+107 6B

+108 6C

+109

6D

+110

6E

+111

+112 70

+113

71

+114

72

+115 73

+116 74

+117

75

+118

76

+119 77

+120 78

+121

79

+122

7A

+123 7B

+124 7C

+125

7D

+126

7E

+127

4F

5F

6F

7F

86/139

Ph lc B
Gii cc bi tp cng c

BI TP S 1:
1.1/ Vit chng trnh s dng lnh SUB
Tng t chng trnh trn nhng ta s dng lnh SUB thay cho lnh ADD tr 2 s
v kt qu c lu vo thanh ghi AL.
; chng trnh tr 2 s Hex
CLO
MOV

AL,2

MOV

BL,2

SUB

AL, BL

END

; kt thc chng trnh .

1.2/ Vit chng trnh s dng lnh MUL


Tng t chng trnh trn nhng ta s dng lnh MUL nhn 2 s v kt qu c
lu vo thanh ghi AL
; chng trnh nhn 2 s Hex
CLO
MOV

AL,2

MOV

BL,2

MUL

AL, BL

END

; kt thc chng trnh .


87/139

1.3/ Vit chng trnh chia 2 s s dng lnh DIV


; chng trnh chia 2 s Hex
CLO
MOV

AL,2

MOV

BL,2

DIV

AL, BL

END

; kt thc chng trnh .

1.4/ Vit chng trnh chia cho 0

; chng trnh chia cho 0


MOV

AL,10

MOV

BL,0

DIV

AL,BL

BI TP S 2:
S dng help page trong s Hex v s nh phn. Tm ra nhng s Hex s lm hot ng
ca n thay i. T hy sa i chng trnh ca n giao thng hot ng theo
trnh t trong thc t.
Ging gii:
thc hin chng trnh . ta phi xem cc bit no lm cho n sng theo trnh t thc
t th cho ln 1, cc bit cn li bng 0, 2 bit LSB khng s dng th cho bng 0. T
tm ra s Hex tng ng vit chng trnh .

88/139

; chng trnh iu khin n giao thng thc t


CLO

; ng tt c cc ca s khng cn thit

Start :
MOV

AL, 84

OUT

01

MOV

AL, 88

OUT

01

MOV

AL,30

OUT

01

MOV

AL,50

OUT

01

JMP

Start

END

; chuyn 84h vo thanh ghi AL


; xut ra port 1
; chuyn 88h vo thanh ghi AL
; xut ra port 1
; chuyn 30h vo thanh ghi AL
; xut ra port 1
; chuyn 50h vo thanh ghi AL
; xut ra port1
; nhy v nhn Start thc hin li
; kt thc chng trnh

BI TP S 3:
Vit chng trnh hin th ch HELLO.
Hy tra bng m ASCII ca cc mu t H,E,L,L,O v copy nhng gi tr ny vo b
nh C0, C1,C2,C3,C4. y l vic n gin v c phn th trong vic hin th vn bn,
trong vic sp xp b nh hin th.
Ging gii:
vit chng trnh trn, u tin ta phi tra cu m ASCII ca cc mu t H,E,L,L,O
v a cc m ASCII n a ch RAM [C0],[C1],[C2],[C3], [C4]. Chy chng trnh
v xem vn bn xut hin nh th no trong vic m phng trn mn hnh hin th VDU.
iu ny l nhng g xy ra trong PC ca IBM khi ang chy trong h iu hnh MS
DOS.

89/139

Bn nn lm bi tp ny v nu bn ang hc lp trnh ngn ng thp th bn s hc c


hiu qu hn v c nhiu cch linh ng hn gii quyt vn .
Chng trnh :
CLO

; ng cc ca s khng cn thit

Start:
MOV

AL,48

; a 48 vo thanh ghi AL

MOV

[C0], AL

; a d liu trong AL ra mn hnh

MOV

AL,45

MOV

[C1],AL

MOV

AL,4C

MOV

[C2],Al

MOV

AL,4C

MOV

[C3],AL

MOV

AL,4F

MOV

[C4],AL

END.

; kt thc chng trnh

BI TP S 4:
4.1/ Vit chng trnh m li li s dng DEC BL.
; chng trnh m li
MOV BL, 40
Rep :
DEC

BL

; gim BL xung 1

90/139

JMP

Rep

END

4.2/ Vit chng trnh m ln 3 s dng lnh Add BL,3


; chng trnh m ln 3
MOV BL, 40
Rep :
Add
JMP

BL,3

; cng thm 3 vo BL

Rep

END

4.3/ Vit chng trnh m 1,2,4,8,16 s dng lnh MUL BL,2


; chng trnh m 1, 2, 4, 8, 16
MOV

BL,01

Rep :
MUL

BL,2

JMP

Rep

; nhn 2 vo BL

END

4.4/Vit chng trnh m theo dy s sau 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, trn b
nh .
; m theo dy s trn kt qu hin th trn nh [40] v [70] trn RAM
MOV
AL,0 ; Gi tr khi im th nht lu trong AL
MOV BL,1 ; Gi tr khi im
th hai lu trong BLRep:
MOV [70],AL
MOV [40],BL
ADD AL,BL

91/139

ADD BL,AL
JMP Rep
; Lp li php cngEND
thc chng trnh________________________________________

; _____ Kt

BI TP S 5
5.1/ Vit chng trnh hin th mi k t ti v tr u bn tri ca mn hnh VDU bng
vic copy tt c chng ti a ch [C0]
Th d ta mun a ch H ra v tr u bn tri mn hnh VDU th ta phi tra m ASCII
ca ch H v mov vo thanh ghi AL, ri t copy vo [CO]
Chng trnh:
CLO
START :
MOV

AL, 48

MOV

[C0], AL

END

5.2/ Vit chng trnh s dng thanh ghi BL ch ti a[C0] v tng BL sau mi ln
phm nhn theo th t thy c vn bn bn g.
Chng trnh:
;Chng trnh hin ch khi nhn, nhn Enter kt thc chng trnh
MOV

BL,C0

Start:
IN

00

CMP

AL,0D

JZ

Stop

92/139

MOV

[BL],AL

INC

BL

JMP

Start

Stop:
END

5.3/ Vit chng trnh nhp m s m my vi yu cu c th nh sau: khi


chng trnh khi ng mun thot khi chng trnh phi tun t g ng th t
ba ch ci A,N,H (ng c th t); nu g sai chng c chy ln qun khng thot ra
c.
; Nhp phm nhn t bn phm cho n khi phm enter c nhn -----------CLO
Rep :
IN

00

;Kim tra c phi ch A khng?

CMP AL,0D
JNZ Rep

IN

00

; C phi ch N khng?

CMP AL,0D
JNZ Rep

IN

00

; C phi ch H khng?

CMP AL,0D
JNZ Rep

93/139

; Nu ng l ba ch A,N,H nhp theo th t th thot khi chng trnh

END

BI TP S 6:
Vit chng trnh n giao thng v s dng th tc ny thit lp thi gian tr hon
ging thc t.
hin th n giao thng ng thc t ta cho : 10s, Xanh: 8s, Vng 2s.
;chng trnh hin th n giao thng theo thc t
CLO
Start:
MOV

AL,84

OUT

01

;xut ra port 1

MOV

AL,8

;tr hon 8s

CALL

30

MOV

AL,88

OUT

01

MOV

AL,2

CALL

; 1 + xanh 2

;gi th tc ti a ch [30]

; 1 + vng 2

;tr hon 2s

30

MOV

AL,30

OUT

01

;xanh 1 + 2

94/139

MOV
CALL

AL,8

;tr hon 8s

30

MOV

AL,50

OUT

01

MOV

AL,2

CALL

30

JMP

Start

;vng 1 + 2

;tr hon 2s

;nhy v nhn Start

;th tc tr hon c lu a ch [30]


ORG

30

PUSH

AL

PUSHF
Rep:
DEC

AL

JNZ

REP

POPF
POP

AL

RET
END

BI TP S 7:7.1/ Vit mt chng trnh s dng 3 th tc. Bao gm th tc c vn


bn t bn phm v ct vo RAM, th tc th 2 nn chuyn i trng hp cc k t
ch hoa trong vn bn thnh ch thng. Th tc 3 nn hin th vn bn trn mn hnh
VDU.

95/139

; --------------------------------------------------------------; Chng trnh chnh


MOV
BL,70 ; [70]l a ch m ASCII ca k t u tin trn VDU.CALL
10
; goi? th tc nhp chui k tCALL 90
; goi? th tc chuyn
ch thng thnh ch hoa CALL 40
; goi? th tc hin th chui k t trn
VDUHALT ; khng c dng END ti y; -------------------------------------------------------------; goi th tc nhp chui k tORG 10
; khi u th tc ti
a ch [10]PUSH AL
; lu tr trng thi thanh ghiPUSH BL PUSHF Rep:IN
00
; nhp k t t bn phmCMP AL,0D
; c phi phm Enter khng?JZ
Stop
; nu phi nhy n StopMOV [BL],AL ; Nhp phm nhn vo RAM
ti nh c ch ra bi BLINC BL
; BL ch ra v tr k tip m k t s
nhp voJMP Rep
; Nhy v Rep ( chun b nhp phm k tip)Stop:MOV
AL,0
; Nhp khong trngMOV [BL],AL
POPF
; phc hi trng
thi thanh ghiPOP BL POP AL RET
; kt thc th tc; -------------------------------------------------------------; CHUYN CH THNG THNH CH HOAORG
90
PUSH AL
PUSH BL
PUSHFCHUYEN:MOV
AL,[BL] ; C k t
no nhp v ti nh [BL]?
CMP
AL,0
; nu khng thot ra NGUNGJZ
NGUNGSUB
AL,20 ;nu c, chuyn sang ch hoaMOV
[BL],ALINC
BLJMP
CHUYENNGUNG:
POPF
; khi phc trng thi thanh ghi
POP
BL
POP ALRET;---------------------------------------------------------------; TH TC
HIN TH K T TRN MN HNHORG 40 ; HERE:MOV CL,C0 ; XEM CH
GII BI TP 7 MOV BL,70
START:
MOV AL,[BL]
CMP
AL,0
JZ END1
MOV [CL],AL
INC CL
INC
BL
JMP START
END1: ; -------------------------------------------------------------END

BI TP S :8.1/ S dng bng d liu vit chng trnh iu khin n giao thng
theo thc t. Ta phi tm s nh phn no lm cho n sng tng ng v sau i qua
s hex
Ta c th quy c :
1 - Xanh 2 sng : 1000 0100
1 - Vng 2 sng : 1000 1000
Xanh 1 - 2 sng : 0011 0000
Vng 1 - 2 sng : 0101 0000

96/139

Chng trnh:
;n giao thng sng theo thc t
JMP

Start

DB

84

DB

88

DB

30

DB

50

Start:
MOV

BL,02

Rep:
MOV

AL,[BL]

OUT

01

CMP
JZ

AL,50
Start

INC

BL

JMB

Rep

END

8.2/ Vit chng trnh iu khin ng c bc chy bc


;ng c bc chay bc
JMP START

97/139

DB 1
DB 3
DB 2
DB 6
DB 4
DB 0C
DB 8
DB 9
START:
MOV BL,02
REP:
MOV AL,[BL]
OUT
CMP

05
AL,9

JZ

STOP

INC

BL

JMP

REP

STOP:
END

BI TP S 9:
9.1/Vit th tc nhn i mt s, c mt tham s trong th tc th s dng 1
thanh ghi. S dng cng thanh ghi quay tr v li kt qu.

98/139

; Nhy qua bng thng s ---------------------------------------------------JMP Start


DB 00
DB 00
Start:
MOV

AL,5

;gi 1 byte ca RAM ti a ch 02

MOV

BL,2

;gi 1 byte ca RAM ti a ch 03

CALL

30 ;gi th tc nhn i

;Th tc nhn i mt s -----------------------------------------------------;Cc tham s thng qua trong th tc s dng AL v BL


;Kt qu a vo AL
ORG

30

;bt u ti a ch 30

MUL

AL,BL

;nhn AL vi 2, kt qu lu trong AL

RET
END

;kt thc chng trnh con, quay tr v t th tc


;kt thc chng trnh

;-----------------------------------------------------------------------------------

9.2/ Vit th tc o tt c cc bit trong byte (tt c s 0 thnh 1, s 1 thnh 0).


Chuyn gi tr c x l vo th tc bng cch s dng v tr RAM. Quay tr v kt
qu trong cng v tr RAM.
; Nhy qua bng thng s ---------------------------------------------------JMP Start
DB 00

99/139

Start:
;s dng v tr RAM a cc tham s vo trong 1 th tc
MOV

AL,3

MOV

[02],AL

CALL

40

;gi th tc o du

;Th tc o tt c cc bit --------------------------------------------------;Cc tham s thng qua trong th tc s dng v tr RAM


;Kt qu lu vo v tr RAM
ORG

40

;bt u ti a ch 40

PUSH

CL

;lu cc thanh ghi v cc c vo ngn xp

PUSHF
MOV

CL,[02]

NOT

CL

POPF

;tm np tham s t RAM

;khi phc li thanh ghi ban u v gi tr c

POP CL
RET

;kt thc chng trnh con

END

;kt thc chng trnh

;-----------------------------------------------------------------------------------

BI TP S 10:
Vit mt chng trnh ngt np phm nhn v lu vo RAM.
; --------------------------------------------------------------; Ngt mm

100/139

;---------------------------------------------------------------Jmp Start
; nhy qua bng d
liu ca ng vector ngtDB 51
; vector ti nh 02 ch ti a ch 51Start:INT
02
; ngt 02; --------------------------------------------------------------ORG 50DB 70;
----------------------------------------------------------------; Nhp vn bng vo t bn phm,
vic nhp kt thc khi nhn ENTER.; ---------------------------------------------------------------MOV BL,C0 ; nh a ch s hin th trn VDU (gc tri mn hnh)Start1:IN
00
; Nhp t bn phm vo thanh ghi AL.CMP AL,0D ; C phi phm
ENTER ? JZ Stop
; Nu phi th nhy v Stop.MOV [BL],AL ; Chuyn k t
va nhp trong AL vo VDU
; a ch m BL ch nINC BL
;
BL ch ra v tr k tip trn VDU.JMP Start
; Tr v li nhn start.Stop:IRETEND

BI TP 11
1/ Vit chng trnh kim tra b nh thi to xung ngt trong chng trnh m
phng. ; --------------------------------------------------------------; Chng trnh minh ho s
tc ng ca b nh thi to tn hiu ngt cng
; Trong Configuration Tab, khong thi gian l 5 ; ngha l sau mi 5 giy s c mt
lnh INT02 c gi t b nh thi phn
;
cng
tc
ng
ln
chng
40Start:STIRep:NOPNOPNOPNOPNOPNOPJMP
40NOPNOPNOPNOPNOPNOPIRETEND

trnh Jmp

StartDB
RepORG

2/Dng lnh CLI v STI kim tra s tc ng ca ngt cng ln CPu trong chng
trnh m phng.
; --------------------------------------------------------------; S dng lnh CLI v STI xo
v t c I
; Chng trnh kim tra chc nng ca ngt cng 02; -------------------------------------------------------------JMP StartDB 40 ; Vector ngt ti a ch
02Start:nopnopnopclinopnopnopstijmp Start; -------------------------------------------------------------org 40NOPNOPNOPNOPNOPIRET; -------------------------------------------------------------end
;---------------------------------------------------------------

3/Vit chng trnh iu khin ng thi n giao thng khi v khuya (ch c n vng
mi ct nhp nhy) cng mch m t 0 n 9 lp i lp li nhiu ln, hin th kt qu
101/139

trn mt led 7 on. Nu bn mun phn cng m t 00 n 99 th s dng c 2 led


hin th cng mt lc.
; --------------------------------------------------------------Jmp Start ; nhy qua bng d
liuDB 50 ; vec t ngt cngDB FA ; Bng d liu bt u a ch [03]DB 0ADB
B6DB 9EDB 4EDB DCDB FCDB 8ADB FEDB CE ; d liu cui cng trong bng.DB
03 ; a ch bt u ca bng d liu; -------------------------------------------------------------Start:STI
; Cho php ngt cng tc ng
Mov BL,03 ; BL cha a ch khi u ca bng d liuRep:MOV AL,[BL] ; chuyn
d liu t bng vo ALOUT 02
; hin th LED
CMP AL,CE ; C phi cui bng chaJZ Start
; Nu cui, nhy n StartINC
BL
; v tr k tip ca bngJMP Rep
; Nhy tr v v thc hin vi con
s k tipJMP Start; --------------------------------------------------------------ORG 50push al
;lu tr trng thi thanh ghipush bl ;pushf ; Jmp PastDataDB 40 ; vng tri sngDB
08 ; vng phi sngDB 57 ; qua bngPastData:MOV BL,[59]
; BL ch n bng
d liuMOV AL,[BL]
; chuyn d liu t bng vo ALOUT 01
;
hin th n giao thngCMP AL,08
; C phi d liu cui cng ca bngJZ
Reset
; Nu cui, n ResetINC BL
; BL ch n v tr k
tipMOV [59],BL
; Lu gi tr con tr lnh vo RAMJMP StopReset:MOV
BL,57
; n a ch3 khi im ca bn d liuMOV [59],BL
; Lu con tr
lnh vo nh 54 trn RAM Stop:popf
; phc nguyn trang thi thanh
ghipop bl pop al IRET; --------------------------------------------------------------END; ------------------------------------------------------------Li gii phn bi tp tng hp

BI TP 1.1
ng dng vng lp.
CLO
Start:

; -------------------------------------------------------MOV

AL,84

OUT

01

LOOP1:
INC
AL,88

AL
CMP
OUT 01LOOP2:

AL,8a

JNZ

LOOP1

MOV

102/139

INC

AL
CMP
OUT 01LOOP3:

AL,8a

JNZ

LOOP2

MOV

INC

AL
CMP
OUT 01LOOP4:

AL,39

JNZ

LOOP3

MOV

AL,30
AL,50
INC

AL

CMP

AL,53

JNZ

LOOP4

JMP

StartEND

;-----------------------------------------------------------------------------------

BI TP 1.2:
S dng th tc nh thi.
;chng trnh hin th n giao thng
CLO
Start:
MOV

AL,84

OUT

01

MOV

AL,8

CALL

30

MOV

AL,88

OUT

01

MOV

AL,2

CALL

30

MOV

AL,30

OUT

01

MOV

AL,8

; 1 + xanh 2
;xut ra port 1
;tr hon 8s
;gi th tc ti a ch [30]
; 1 + vng 2

;tr hon 2s

;xanh 1 + 2

;tr hon 8s

103/139

CALL

30

MOV

AL,50

OUT

01

MOV

AL,2

CALL

30

JMP

Start

;vng 1 + 2

;tr hon 2s

;nhy v nhn Start

;th tc tr hon c lu a ch [30]


ORG

30

PUSH

AL

PUSHF
Rep:
DEC

AL

JNZ

REP

POPF
POP

AL

RET
END
;------------------------------------------------------------------------------

BI TP 1.3:
S dng bng d liu.
Ta c th quy c :

104/139

1 - Xanh 2 sng : 1000 0100


1 - Vng 2 sng : 1000 1000
Xanh 1 - 2 sng : 0011 0000
Vng 1 - 2 sng : 0101 0000
Chng trnh:
JMP

Start

DB

84

DB

88

DB

30

DB

50

Start:
MOV

BL,02

Rep:
MOV

AL,[BL]

OUT

01

CMP

AL,50

JZ

Start

INC

BL

JMP

Rep

END

BI TP 2.2:

105/139

;GHI VO MN HNH VDU--------------------------------------------CLO

;ng cc ca s khc li

JMP

HERE

DB

;nhy qua bng d liu

"HELLO WORLD"

DB

;np chui k t vo RAM

;kt thc chui k t hin th on vn bn

HERE:
MOV

CL,C0

;nh ra a ch u tin trn mn hnh

MOV

BL,03

;a ch bt u ca on vn bn

MOV

AL,[BL]

;a k t trong chui vo AL

CMP

AL,0

;kt thc chui k t cha?

JZ

END

;nu kt thc nhy ra khi vng lp n END

START:

MOV

CL,[AL]

;nu cha kt thc lu k t va hin th vo VDU

INC

CL

;nh ra v tr k cn k t va hin th xong

INC

BL

;a k t k tip trong chui vo BL

JMP

START

;tr v start

END1:
; ----- XO MN HNH VDU ----------------------------------;nh ra a ch u tin trn mn hnh VDU
MOV BL,0C
xo
MOV AL,20

; chn khong trngREP:

MOV CL,C0
; a ch bt u

MOV [CL],AL

; Xo tng

ch
INC CL
DEC BL
; Gim dn BL
JNZ REP
; thot
khi xo hon tt
JMP HERE
; tr v li t u; ------------------------------------------------------------- END; --------------------------------------------------------------

106/139

BI TP 3.1:
Vit chng trnh iu khin ng c bc quay thun vi mi bc quay l 5 (quay
1/2 bc).
Start :
MOV

AL,1

OUT

05

MOV

AL,3

OUT

05

MOV

AL,2

OUT

05

MOV

AL,06

OUT

05

MOV

AL,04

OUT

05

MOV

AL,0C

OUT

05

MOV

08

OUT

05

MOV

AL,09

OUT

05

JMP

Start

END?

107/139

Chng trnh s ngn hn khi s dng bng d liu.


BI TP 3.2:
Vit chng trnh iu khin ng c bc quay thun 90 ; nghch 35 sau dng
li.
Gii tng t nh bi 3.1 nhng dng 1/2 bc cui lc quay nghch 35 .

BI TP 4.1:
y ta s dng port 04, gi gi tr FF n thanh ghi AL xc lp li rn. Ln,
xung bn tri v bn phi c iu khin bi 4 bit tri. Bn bit phi iu khin qung
ng di chuyn.
Chng trnh:
ORG

30

;bng d liu rn chy trong ma trn: thit b li

DB

4F

;xung 0B

DB

1D

;phi 3

DB

8B

;ln 8

DB

1D

;phi 3

DB

4E

;xung 6

DB

1E

;phi 3

DB

8E

;ln 9

DB

2F

;tri 5

DB

8C

;ln 3

DB

1F

;phi 8

DB

4E

;xung 0C

108/139

ORG

40

;bng d liu rn chy trong ;ma trn: khong cch

DB

0B

;xung 0B

DB

;phi 3

DB

;ln 8

DB

;phi 3

DB

;xung 6

DB

;phi 3

DB

;ln 9

DB

;tri 5

DB

;ln 3
DB

DB

0C

;phi 8

;xung 0C

START:
MOV

AL,FF

OUT

04

MOV

CL,30

MOV

DL,40

MORE:
MOV

AL,[CL]

MOV

BL,[DL]

CMP

AL,0

JZ

START

109/139

REP:
OUT

04

DEC

BL

JNZ

REP

INC

CL

INC

DL

JMP

MORE

END

BI TP 4.2
Gi lp trnh tng t bi tp 11.3, thay th hai chng trnh thnh phn bng
chng trnh iu khin rn trong m cung v ng in l sy.

BI TP 5
Hy vit chng trnh u khn thang my theo cc nt nhn ln xung c trong
giao din phn cng port 06.
;Chng trnh iu khin thang my
MOV

AL,0

OUT

06

LOOP:
IN

06

PUSH

AL

;kim tra thang my ti nh hm thang my

110/139

POP

BL

AND

BL,5

CMP

BL,5

JZ

StopTop

IN

06

PUSH

AL

POP

BL

AND

BL,A

CMP

BL,A

JZ

StopBot

PUSH

BL

AND

BL,10

;kim tra ng c v cng tc nhn i xung

; kim tra nt gi xung

CallDown

PUSH

AL

POP

BL

AND

BL,20

JNZ

;kim tra v tr di hm thang my

AL

POP

JNZ

;kim tra ng c v nt nhn i ln

; kim tra nt gi ln

CallUp
JMP

LOOP

111/139

StopTop:
AND

AL,DE

OUT

06

JMP

; ngng mt v nt gi

LOOP

StopBot:
AND

AL,ED

OUT

06

JMP

LOOP

;ngng mt v nt gi

CallDown:
IN

06

AND

AL,8

CMP

AL,8

JZ

errDown

MOV

AL,12

OUT

06

JMP

;thang my sn sng i xung cha?

;khng khi ng mt

LOOP

errDown:
MOV

AL,0

OUT

06

JMP

LOOP

CallUp:
IN

06

; thang my sn sng i ln cha?

112/139

AND

AL,4

CMP

AL,4

JZ
MOV

errUp

; khng khi ng mt

AL,21

OUT

06

JMP

LOOP

errUp:
MOV

AL,0

OUT

06

JMP

LOOP

END

BI TP 6
Hy vit chng trnh khng ch nhit l sy theo nguyn l so snh ca s
nhit l c khng ch 20 C.
;Chng trnh bt tt l sy
MOV

BL,80

PUSH

BL

Main:
POP

AL

XOR

AL,80

PUSH

AL

OUT

03

; gi d liu n l sy

113/139

MOV

AL,30

CALL

90

; tr hon 30 ln
; gi th tc tr hon

;---------------------------------------------------------------------------------------;chy vng lp ny 20 ln
MOV

CL,20 ;coi thanh ghi CL nh mt b m

Bang:
DEC

CL

JZ

Main

IN

03

CMP

AL,80

JZ

turnOn

CMP

AL,81

JZ

turnOff

CMP

AL,0

JZ

turnOn

turnOff:
MOV

AL,0

OUT

03

JMP

Bang

turnOn:
MOV

AL,80

OUT

03

114/139

JMP

Bang

;------------------------------------------------------------------------------------ORG
PUSH

90

; thi gian tr hon c nh bi gi tr trong AL

AL

delay:
DEC

AL

JNZ

delay

POP

AL

RET
;-------------------------------------------------------------------------------------END

BI TP 7.1:
Thit k chng trnh m tun t lin tc t 0 n 9 hin th trn LED 7 on bn phi.
BI TP 7.2
Thit k hai chng trnh m c lp nhau :
LED tri hin th theo s xung Clock ca CPU.
LED phi hin th theo s xung pht ra bi b nh thi ngt phn cng.
; Chng trnh hin th Led 7 on
Jmp Start

DB

; Nhay qua bang du lieu.

30

; Vector dinh thoi ngat phan cung

115/139

; chi toi ma tai [30]


DB

FA

; Bang du lieu bat dau tai dia chi[03]

DB

0A

DB

B6

DB

9E

DB

4E

DB

DC

DB

FC

DB

8A

DB

FE

DB

CE

; nhap du lieu cuoi vao.

DB

03

; vi tri RAM nay chi toi bang du lieu Location points to the

data
; ma ngat su dung dia chi nay de kiem tra viec no thuc hien
suot
; bang du lieu .
; -------------------------------------------------------------; CHUONG TRINH CHINH

Start:
STI
MOV BL,03

; Cho phep cac ngat dinh thoi phan cung


; BL chua dia chi bat dau cua bang du lieu

116/139

Rep:
MOV AL,[BL]

; chuyen du lieu tu bang vao AL

OUT

02

; chuyen du lieu ra hien thi

CMP

AL,CE

; kiem tra gia tri cuoi trong bang

JZ

Start

; neu gia tri den cuoi thi nhay ve Start

INC

BL

; chi den vi tri ke tiep

JMP

Rep

; nhay ve va thuc thi tri so ke

; -------------------------------------------------------------; INTERRUPT HANDLER.

ORG

30

; ma bat dau tai dia chi [30]

PUSH

AL

; luu AL vao ngan xep

PUSH

BL

; luu BL vao ngan xep

PUSHF

; luu co CPU vao ngan xep

MOV

BL,[0D]

; vi tri RAM 0D chua con tro chi den bang du lieu

MOV

AL,[BL]

; tim du lieu tu bang

OR

AL,1

; thiet lap LSB len 1.

OUT

02

; chuyen du lieu ra hien thi

CMP

AL,CF

; kiem tra gia tri cuoi cung

JZ

Reset

; nhay ve reset

117/139

INC

BL

; vi tri ke tiep trong bang

MOV

[0D],BL

JMP

Done

MOV

BL,03

MOV

[0D],BL

; luu vi tri nay vao RAM


; nhay ra khoi vong lap

Reset:
; 03 la dia chi bat dau cua bang
; luu con tro nay vao RAM

Done:
POPF

; khoi phuc cac co CPU tu ngan xep

POP

BL

; khoi phuc BL tu ngan xep

POP

AL

; khoi phuc AL tu ngan xep

IRET

; ngat

; -------------------------------------------------------------END

Sau khi xem qua cc bi gii


? CPU:
CPU l ni thc hin tt c cc php ton s hc v logic.
CPU l ni c th lu tr cc vng gi l cc thanh ghi ; CPU cha cc c, cc c ny
dng xc nh kt qa l s (-), s 0 hoc s b trn, s thu nhn c nhiu tin tc
hn nu c s m t cu trc ca h thng.
Thanh ghi bao gm cc tn : AL, BL, CD v DL, ln lt c m? l 00, 01, 02 v 03.
Cc thanh ghi c s dng lu tr s nh phn.

118/139

Cc con s c lu tr trong thanh ghi c th c to ra t php ton s hc


v logic hc, t chuyn cc m nh phn ra cc thit b ngoi vi nh iu khin n
giao thng.
Ch thch: Chng trnh khi bt u thng c li ch thch .
Nhng li ch thch c s dng nh l ti liu trong mt chng trnh. N tin
ch trong cc chng trnh mi to ra v ngi vit c th qun cc bc ca chng
trnh.
Li ch thch hay l li ch thch gii thch ti sao cc vic sp xy ra, xy ra nh
th no, li ch thch khng hay khi lp li qa nhiu ln mt vic va n gin li va
d hiu.
a ch RAM: Eg [ 7F ] [ 22 ] [ AL ] [ CL ]
[ 7F ] : c ngha l cha ni dung nh 7F thuc RAM .
[ CL ]: c ngha lni dung c chuyn n t thanh ghi CL .

AND: nhn hai gi tr nh phn


V d:
AND AL,12 ; thc hin php AND gia AL v s 12,kt qu lu vo AL
AND BL,CL ; thc hin php AND gia CL v BL ,kt qu lu vo BL
M my tng ng :
BA

00

12 ;AND 12 vc Al , kt qu lu vo AL

AA

00

02 ;AND CL v BL , kt qu lu vo BL

Qui lut ca php AND :


Ch duy nht trng thi 1 AND 1 s ra kt qu l 1, cc trng hp cn li u ra kt qu
l 0.
V du? :

119/139

10101010
AND

00001111

Kt qu:

00001010

Lu : 1 AND 1=1,4 bit bn tri s c kt qu l 0

LNH CALL V RET: c s dng vi cc th tc


Khng s dng cc loi c trong CPU .
V d :
CALL 50

; gi th tc a ch 50

M my tng ng
CA

50

; gi th tc a ch 50

CPU chuyn lnh con tr c gi tr IP+2 vo ngn xp ,sau CPU s quay li a ch


ny .
Lnh con tr trong CPU s c t a ch 50, CPU tip tc thi hnh cc lnh t
50 n khi gp lnh RET, sau gi tr c chuyn ra khi ngn xp bi lnh IP ri
chuyn n a ch 50 tng kt cc cng vic thc hin.

LNH CLI V STI: c s dng vi cc ngt


CLI : Xo c "I" trong thanh ghi trng thi
STI : t c "I" ca lnh ngt trong thanh ghi trng thi
M my ca CLI l FP ,m my ca STI l FC
Nu t c I th CPU s thc hin vic ngt
Sau b m phng s thc hin vic ngt phn cng trong khong thi gian ngi vit
chng trnh mong mun

120/139

Nu t c "I" vo ,ti a ch [02] thc hin 1 vector ngt th CPU s nhy n m - ni


cn thc hin vic ngt .

LNH CLO: ng cc ca s khng cn thit


CLO khng s dng cc c trong CPU ,m my ca CLO l FE
CLO khng thc hin c trong chip 86. Khi s dng lnh CLO th ca s cc chung
trnh khng s dng n s c ng li thay v phi dng chut ng tng ca s
mt.

LNH CMP : so snh


Lnh CMP s dng cc c trong CPU
V d:
CMP

AL

,OD

; so snh AL vi OD

DB

OO

OD

; so snh AL vi OD

M my tng ng

Nu cc ga tr so snh c :

Bng nhau th t c "Z"


AL nh hn BL th t c"S"
AL ln hn BL th khng c c no

V d :
CMP CL,[20]

; so snh CL vi 20

M my tng ng
DC

02

20

Nu cc ga tr so snh c :
Bng nhau th t c "Z"

121/139

CL c ni dung nh hn ni dung c trong a ch 20 th t c S .


CL c ni dung ln hn ni dung c trong a ch 20 th khng t c.

LNH DB: nh ngha byte


Lnh DB khng s dng cc c trong CPU.
DB l mt cch gi trc tip cc gi tr vo RAM, lnh DB khng c m my .
Nhng con s v dng ch sau DB iu c chuyn vo RAM.

DB

DB

22 ; y l mt bng d liu c chuy t vo RAM

DB

33

DB

44

DB

DB

"Hello world"; M ASCII ca dng ch c chuyn vo RAM

; Kt thc dng ch th s dng ln NULL.

Lnh DEC v INC

: Tng ln 1 v gim i 1

Lnh DEC v INC thit lp c trong CPU

LNH DIV V MOD:


C cc lnh DIV t chip x86, nhng lnh MOD th khng c trong chip x86.
Chip x86 : Lnh DIV thc hin c hai cng vic l: Div v MOD, kt qa x2 lu vo
cc thanh ghi khc nhau. Vic tch v n gin i vi 8 bit trong b m phng khi s
dng Mod v Div th khng th thc hin c .
8 DIV 3 bng 3 (nh 2 )

122/139

8 MOD 3 bng 2.
V d:
DIV AL,5

; chiaAL cho 5; kt qa lu vo AL

DIV AL,BL

; chia AL cho BL, kt qa lu vo AL

MOD AL,5

; Mod AL cho 5, kt qa: phn d a vo AL

MOD AL,BL

; Mod AL cho BL, phn d chuyn vo AL

M my :
B3

00

05

; chia AL cho 5, kt qu lu vo AL

A5

00

01

; chia AL cho BC, kt qu lu vo AL

B6

00

05

; Mod AL cho 5, kt qu lu vo AL ( phn d )

A6

00

01

; Mod AL cho BL, kt qu : phn d a vo AL

LNH END : khng thit lp cc c trong CPU


END : dng chng trnh ang thc hin. M my ca END v HALT l 00. b m
phng thc hin c vic ny do vic s dng n hot ng ngng dao ng trong
CPU. Trnh bin dch s khng thc hin vic bin dch sau khi gp lnh END .
Trong 1 chng trnh ch s dng 1 lnh END duy nht.

LNH HALT: khng thit lp cc c trong CPU


HALT : dng chng trnh ang thc hin, m my lnh HALT l 00. B m phng
thc hin c iu ny khi CPU ngng hot ng. C th s dng vo lnh HALT
trong 1 chng trnh.

123/139

LNH IN V OUT : xut - nhp


Giao tip vi thit b ngoi vi , khng thit lp cc c trong CPU
Lnh xut - nhp c s dng bi cc port
V d :
MOV AL,55

; chuyn gia tr 0101 0101 vo AL

IN

01

; gi ga tr trn ra port 1

IN

03

; c c t port 3 chuyn qua AL

IN

00

; 00 l bn phm

M my tng ng :
DO

00

F1

55

; chuyn 0101 0101 vo AL

01

; gi 0101 0101 n port 1 ( iu khin n giao thng)

FO

03

; c c t port 3 vo AL

FO

00

; 00 nhp t bn phm

Lnh INT v IRET : S dng vi cc ngt


Lnh INT v IRET khng thit lp c trn.
V d:
INT 02

;gi lnh ngt

;bt u bng a ch c lu tr
;ti a ch 02, cc a ch 00 n OF c th s ;dng nh vector ngt
IRET

;quay tr li v tr ngt

M my tng ng

124/139

CC

02

; gi vic ngt.

CD

; quay tr li vic ngt.

CPU y ga tr IP + 2 bi con tr lnh vo ngn xp. Sau CPU s quay tr li a ch


ny. Lnh con tr c t vo a ch ny n khi gp lnh IRET. CPU s chuyn d
liu ra khi ngn xp nh lnh t a ch ny n khi gp lnh IRET. CPU s chuyn d
liu ra khi ngn xp nh lnh IP v chuyn n a ch ni m n ang thc hin.

Lnh JMP
t mt gi tr mi vo IP, khng thit lp cc c trong CPU.
V d :

JMP FOO

; nhy n a ch nhn FOO.

M my tng ng
CO

12

; nhy 12 v tr .

CO

FE

; quay li 12 v tr .

Lnh JMP thc hin c nh vic cng thm 1 s vo lnh IP. S ny c th nm trong
khong - 128 n 127, vic ny xc nh di nht c th.
Lnh JMP : nhy khng iu kin, JMP khng s dng trong CPU.

Lnh JNO: Jmp Not Overflow


JNO khng thit lp c CPU.
V d:
JNO

FOO

; nhy n a ch c nhn FOO

M my tng ng
C6

12

; nhy 12 khong cch

C6

FE

; quay li 2 khong cch

125/139

JNO lm vic bng cch cng 1 s vo CPU nh con tr lnh IP , s ny c th i t


-128. - . +127. y l khong cch ln nht m lnh nhy c th thc hin
JNO s thc hin nu c " O" trong CPU khng t vo.

Lnh JNS : Jump Not Sign


JNS khng thit lp c CPU.
V d :

JNS FOO ; nhy v a ch c nhn FOO

M my tng ng
C4

12

; nhy 12 khong cch

C4

FE

; quay li 2 khong cch

JNS lm vic bng cch cng thm 1 s vo CPU nh con tr lnh, s ny c th


chuyn i t -128 n -127 , y l khong cch ln nht c th nhy .
Lnh JNZ : Jump Not Zero
JNZ khng thit lp c CPU.
V d :
JNZ

FOO

; nhy v nhn FOO

M my tng ng
C2

12

; nhy 12 khong cch

C2

FE

; quay li 2 khong cch

JNZ lm vic da trn nguyn tc tng thm 1 vo CPU nh con tr lnh IP. Con s ny
thay i t -128 n +127, y l khong cch ln nht c th ca lnh nhy.
JNZ s thc hin vic nhy nu c"Z" trong CPU khng t vo

Lnh JO :

126/139

Nhy khi gp s trn.


JO khng thit lp c CPU.
V d:
JO

FOO

; nhy n a ch nhn FOO.

M my tng ng :
C5

12

; nhy 12 khong cch

C5

FE

; quay li hai khong cch.

JO lm vic d trn nguyn tc tng thm mt vo CPU nh con tr lnh IP. Con
s ny thay i t -128 n +127 , y l khong cch c th nhy ln nht.
JO s thc hin vic nhy nu trong CPU c t c "O".

Lnh JS: Jump Sign


JS khng thit lp c CPU.
V d :
JS

FOO ; nhy n a ch nhn FOO

M my tng ng
C3

12

; nhy 12 khong cch

C3

FE

; quay v li hai khong cch.

JS lm vic da trn nguyn tc tng thm mt vo CPU nh IP. Con s ny thay i t


-128 n +127, y l khong cch ln nht c th nhy.

Lnh JZ ( Jump Zero )


JZ khng thit lp c CPU.

127/139

V d :
JZ

FOO ; nhy v a ch nhn FOO

M my tng ng
C1

12

; nhy 12 khong cch

C1

FE

; quay li hai khong cch

JZ lm vic da trn nguyn tc tng thm mt vo CPU, nh con tr lnh. Con s ny


thay i t -128 n +127, y l khong cch ln nht m lnh nhy c th thc hin.
Lnh JZ s thc hin vic nhy nu c Z" c t vo CPU.

Lnh MOV
Chuyn d liu t ni ny n ni khc.
V d :
MOV AL, 12

; chuyn 12 hex vo AL

MOV BL, [2F] ; chuyn ni dung trong nh [2F] vo BL


MOV [33], CL ; chuyn d liu t thanh ghi CL vo nh [33]
MOV AL, [DL]; chuyn ni dung trong thanh ghi DL vo mt ;vng nh, t
vng nh chuyn vo AL.
MOV [BL], CL ; chuyn ni dung trong thanh ghi BL vo nh ;c a ch trong
thanh ghi CL.
M my tng ng
DU

00

12 ; chuyn 12 hex vo AL

D1

01

2F ; chuyn ni dung nh 2F vo BL

D2

33

02; chuyn d liu t CL n nh [33]

D3

00

03; chuyn d liu t DL n nh, chuyn nh ; n AL.

128/139

D4

02

03; chuyn d liu t BL n nh, sau chuyn ; nh n CL.

LNH MUL ( NHN - MULTIPLY )


Cc lnh MUL khc c thc hin ti chip X86.
Lnh X86 Mul a kt qu vo nhiu thanh ghi. B m phng khng th thc hin lnh
MUL 8 bit mt cch n gin c. Lnh ny bt li khi vic xut hin c trn qu
nhiu ln.
V d :
MUL AL, 5 ; thc hin nhn AL cho 5, kt qa chuyn vo thanh ghi AL
M my tng ng
B2

00

05

; nhn AL vi 5 ,kt qu chuyn vo AL

A2

00

01

; nhn AL vi B2, kt qa chuyn vo AL.

LNH NOP: (No Operation) - Khng lm g.


Khi gp lnh ny , CPU s ngng lm vic trong 1 chu k xung. Vic ny rt cn thit vi
cn c khong thi gian to s ng b gia CPU v cc mch in t . CPU ngng
lm vic trc khi cc mch in t hiu c cu lnh . M my ca lnh NOP l FF .

LNH NOT
o ngc tt c cc bit .
V d:
NOT

CL

; o ngc cc bit trong thanh ghi CL

M my tng ng
AD

02

; o ngc cc bit trong CL

129/139

Nu CL cha d liu 01010101 trc khi s dng lnh NOT th khng c g thay i
nhng khi gp lnh NOT n s tr thnh 10101010

LNH OR
Dng OR 2 gi tr nh phn.
V d :
OR

AL, 12 ; OR 12 vi AL, kt qu a vo AL
OR

BL, CL ; OR CL vi BL, kt qu a vo BL

M my tng ng
BB

00 12 ; OR 12 vi AL, kt qu a vo AL

AB

01 02 ; OR

CL vi BL, kt qu a vo AL

Quy lut ca lnh OR : hai ng vo bng 0 s a ra kt qu l 0, cc ng vo cn li


u cho kt qu bng 1. V d :
10101010
or

00001111

kt qu

10101111

0 hoc 0 = 0 4 bit phi ra kt qu l 1

LNH ORG
t m gc
ORG 50

; m c pht sinh t a ch 50

130/139

ORG khng l mt lnh thuc CPU. N l loi lnh c a ra t trnh bin dch c m
c pht sinh t mt a ch c bit, c s dng trong th tc v ngt ORG c s
dng trong cc b nh c bit nh bng d liu, bng d liu th khng c m my
tng ng.

LNH PUSH V POP


Lnh ngn xp.
PUSH dng lu tr mt byte vo ngn xp, POP ly ra khi ngn xp. Ngn xp l mt
vng nh tun theo quy lut LIFO. Nhn xp dng :
+ To s quay tr li ca lnh gi th tc
+ To s quay tr li a ch ca lnh ngt
+ Gi cc tham s vo trong cc th tc
+ Nhn kt qu c ly t cc th tc
+ Lu, phc hi cc thanh ghi v cc c.
+ o ngc th t ca d liu
V d :
PUSH

AL ; lu AL v a vo ngn xp
POP AL ; phc hi AL c a ra t ngn xp

M my tng ng
EO

00 ; lu AL vo ngn xp

E1

00 ; phc hi AL t ngn xp

LNH PUSHF, POPF


PUSHF : khng thit lp c CPU.

131/139

POPF : thit lp c CPU


Ngn xp l vng nh c bit lm vic theo quy lut LIFO. Ngn xp c cc cng dng
:
+ To s quay li a ch ca lnh gi th tc.
+ To s quay li a ch ca lnh ngt.
+ Gi cc tham s vo th tc.
+ Lu, phc hi cc thanh ghi v cc c.
+ o ngc th t ca d liu.
V d :

PUSHF

; lu c trong CPU a vo ngn xp

POPF

; phc hi c trong CPU a vo ngn xp

M my tng ng
EA

; lu c trong CPU chuyn ra ngn xp

EB

; phc hi c trong CPU chuyn ra ngn xp.

LNH ROL v ROR : Rotate all bits to the Right v Left.


Xoay bit sang tri, phi.
V d :
ROL AL ; xoay tri cc bit mt v tr
ROL DL ; xoay phi cc bit mt v tr
M my tng ng
9A

00 ; xoay tri cc bit mt v tr

9B

03 ; xoay phi cc bit mt v tr

Sau khi xoay xong mt bit th chuyn n xoay cc bit cn li cho n ht.

132/139

Trc khi xoay

: 10000110

Sau khi xoay tri : 00001101

Trc khi xoay

Sau khi xoay phi : 01000011

: 10000110

LNH SHL V SHR : Shift (Logically) Right v Left.


Chuyn dch cc bit sang phi, tri .
SHL v SHR thit lp c CPU.

V d :
SHL AL

; dch cc bit sang tri mt v tr


SHR DL

; dch cc bit sang phi mt v tr

- Trc khi xoay : 10000110


- Sau khi xoay tri

: 00001100

- Trc khi xoay : 10000110


- Sau khi xoay

: 01000011

LNH SUB (Substract)


Tr 2 ton hng.
SUB khng thit lp c CPU
V d :
SUB AL, 12 ; tr 12 trong thanh ghi AL, kt qu lu vo AL.

133/139

Ph lc C
Gii thiu cc phn mm m phng vi iu khin
Hin nay trn th trng phn mm c rt nhiu phn mm m phng vi iu khin
rt hay nh UMPS Simulator ... nhng a s vn l shareware hay trial (cc phn mm
qung co hay cho dng th), do bn phi ng k mi c th s dng lu di v
hng c y cc tnh nng ca chng. Trong khung kh gio trnh ny, cc phn
mm c chn dng full retail nn bn c th s dng y cc tnh nng ca chng.

TS CONTROLS EMILATOR 8051


y l phn mm thit k theo chun ca cc chng trnh ng dng chy trn h iu
hnh Windows, do n mt s u im kh c trng nh: thao tc d dng, thun li,
hng dn tng i y .. .Phn mm ny m phng mt h vi iu thc t 8051 nn
rt thun tin cho sinh vin m phng chng trnh chnh vi iu khin trc khi quyt
nh rp mch. Tuy nhin so vi SIM51, TS Controls Emulator cn khim khuyt hn
khu np tp tin ngun vo phn mm m phng. Vi phn mm ny, gio trnh s gii
thiu cc phn sau:
Ci t chng trnh.
Mn hnh giao din chnh.
S dng chng trnh m phng.

SIM51
y l phn mm m phng vi iu khin h 8051 chy trn mi trng DOS mc d
giao din xu nhng i hi cu hnh my rt nh thun tin cho vic m phng vi iu
khin trc khi quyt nh rp mch. Trong phn mm c trang b chng trnh bin
dch t m ngun sang m hex hoc bin rt tin cho bn np trnh cho EPROM hoc vi
iu khin. Vi phn mm ny, gio trnh s gii thiu cc phn sau :

Mn hnh giao din chnh.


S dng SIM51 dch chng trnh ngun ra m my

134/139

Tham gia ng gp
Ti liu: M phng vi iu khin
Bin tp bi: Nguyn Phng Quang
URL: http://voer.edu.vn/c/481ec957
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Nhp mn Lp trnh Vi iu khin
Cc tc gi: Nguyn Phng Quang
URL: http://www.voer.edu.vn/m/0c982e5c
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Bi tp 1
Cc tc gi: Nguyn Phng Quang
URL: http://www.voer.edu.vn/m/fa86d586
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Bi tp 2
Cc tc gi: Nguyn Phng Quang
URL: http://www.voer.edu.vn/m/68a95c16
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Bi tp 3
Cc tc gi: Nguyn Phng Quang
URL: http://www.voer.edu.vn/m/3d1f3021
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Bi tp 4
Cc tc gi: Nguyn Phng Quang
URL: http://www.voer.edu.vn/m/9d02f549
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Bi tp 5
Cc tc gi: Nguyn Phng Quang
URL: http://www.voer.edu.vn/m/fdb97e28

135/139

Giy php: http://creativecommons.org/licenses/by/3.0/


Module: Bi tp 6
Cc tc gi: Nguyn Phng Quang
URL: http://www.voer.edu.vn/m/aec9b1e3
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Bi tp 7
Cc tc gi: Nguyn Phng Quang
URL: http://www.voer.edu.vn/m/4bfd9c40
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Bi tp 8
Cc tc gi: Nguyn Phng Quang
URL: http://www.voer.edu.vn/m/7acc391a
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Bi tp 9
Cc tc gi: Nguyn Phng Quang
URL: http://www.voer.edu.vn/m/c5ce7f5e
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Bi tp 10
Cc tc gi: Nguyn Phng Quang
URL: http://www.voer.edu.vn/m/ea379b17
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Bi tp 11
Cc tc gi: Nguyn Phng Quang
URL: http://www.voer.edu.vn/m/8de9e466
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Bi tp nng cao 1
Cc tc gi: Nguyn Phng Quang
URL: http://www.voer.edu.vn/m/7631c4f0
Giy php: http://creativecommons.org/licenses/by/3.0/

136/139

Module: Bi tp nng cao 2


Cc tc gi: Nguyn Phng Quang
URL: http://www.voer.edu.vn/m/e865e34d
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Bi tp nng cao 3
Cc tc gi: Nguyn Phng Quang
URL: http://www.voer.edu.vn/m/0ee4b006
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Bi tp nng cao 4
Cc tc gi: Nguyn Phng Quang
URL: http://www.voer.edu.vn/m/cc1cf5cc
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Bi tp nng cao 5
Cc tc gi: Nguyn Phng Quang
URL: http://www.voer.edu.vn/m/113ac460
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Bi tp nng cao 6
Cc tc gi: Nguyn Phng Quang
URL: http://www.voer.edu.vn/m/93942348
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Bi tp nng cao 7
Cc tc gi: Nguyn Phng Quang
URL: http://www.voer.edu.vn/m/871e50c1
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Ph lc A
Cc tc gi: Nguyn Phng Quang
URL: http://www.voer.edu.vn/m/29a457b9
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Ph lc B

137/139

Cc tc gi: Nguyn Phng Quang


URL: http://www.voer.edu.vn/m/bd5fafe2
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Ph lc C
Cc tc gi: Nguyn Phng Quang
URL: http://www.voer.edu.vn/m/9232c559
Giy php: http://creativecommons.org/licenses/by/3.0/

138/139

Chng trnh Th vin Hc liu M Vit Nam


Chng trnh Th vin Hc liu M Vit Nam (Vietnam Open Educational Resources
VOER) c h tr bi Qu Vit Nam. Mc tiu ca chng trnh l xy dng kho
Ti nguyn gio dc M min ph ca ngi Vit v cho ngi Vit, c ni dung phong
ph. Cc ni dung u tun th Giy php Creative Commons Attribution (CC-by) 4.0
do cc ni dung u c th c s dng, ti s dng v truy nhp min ph trc
ht trong trong mi trng ging dy, hc tp v nghin cu sau cho ton x hi.
Vi s h tr ca Qu Vit Nam, Th vin Hc liu M Vit Nam (VOER) tr thnh
mt cng thng tin chnh cho cc sinh vin v ging vin trong v ngoi Vit Nam. Mi
ngy c hng chc nghn lt truy cp VOER (www.voer.edu.vn) nghin cu, hc
tp v ti ti liu ging dy v. Vi hng chc nghn module kin thc t hng nghn
tc gi khc nhau ng gp, Th Vin Hc liu M Vit Nam l mt kho tng ti liu
khng l, ni dung phong ph phc v cho tt c cc nhu cu hc tp, nghin cu ca
c gi.
Ngun ti liu m phong ph c trn VOER c c l do s chia s t nguyn ca cc
tc gi trong v ngoi nc. Qu trnh chia s ti liu trn VOER tr ln d dng nh
m 1, 2, 3 nh vo sc mnh ca nn tng Hanoi Spring.
Hanoi Spring l mt nn tng cng ngh tin tin c thit k cho php cng chng d
dng chia s ti liu ging dy, hc tp cng nh ch ng pht trin chng trnh ging
dy da trn khi nim v hc liu m (OCW) v ti nguyn gio dc m (OER) . Khi
nim chia s tri thc c tnh cch mng c khi xng v pht trin tin phong
bi i hc MIT v i hc Rice Hoa K trong vng mt thp k qua. K t , phong
tro Ti nguyn Gio dc M pht trin nhanh chng, c UNESCO h tr v c
chp nhn nh mt chng trnh chnh thc nhiu nc trn th gii.

139/139

You might also like