Professional Documents
Culture Documents
Bin tp bi:
Nguyn Phng Quang
M phng vi iu khin
Bin tp bi:
Nguyn Phng Quang
Cc tc gi:
Nguyn Phng Quang
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
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
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/139
6/139
7/139
8/139
9/139
10/139
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
12/139
13/139
14/139
15/139
16/139
Bi tp C Bn
Bi tp 1
Vit chng trnh thc hin cc php tnh s hc.
Mc ch-yu cu:
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
17/139
Chng trnh:
; Chng trnh cng 2 s Hex ----------------------------------------CLO
MOV
AL,2
MOV
BL,2
ADD
AL, BL
END
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
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
OUT
01
JMP
END
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
MOV BL,40
MOV CL,50
MOV DL,60
AL,15
MOV
BL,40
MOV
CL,50
MOV
DL,60
AL
; tng AL ln 1
FOO :
INC
[A0], AL
MOV
BL,[40]
; truyn d liu gin tip qua thanh ghi (Register indirect moves)
MOV
[CL], AL
23/139
MOV
BL,[CL]
JMP
FOO
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 th t
?
; 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 .
26/139
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
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
?
?
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
JNZ Rep
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
AL,8
CALL
30
MOV
AL,10
CALL
30
MOV
AL,20
CALL
30
JMP
Start
;mt tr hon di
;nhy v Start
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
POPF
33/139
POP
RET
AL
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:
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
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
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
PUSH
BL
PUSHF
Rep:
IN
00
CMP AL,0D
JZ
Stop
MOV
INC BL
JMP
Rep
37/139
Stop:
MOV
AL,0
POP
BL
POP
AL
RET
40
HERE:
MOV CL,C0
;a ch c bn ca RAM VDU
MOV BL,03
START:
;nhp vn bn vo VDU
AL,0
END
CL
INC
BL
JMP
;k t vn bn k tip
38/139
END1
RET
END
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
Chng trnh
;Chng trnh iu khin n giao thng ----------------------------------------JMP
Start
DB
84
;bng d liu bt u
DB
C8
DB
31
;trnh t ny c n gin ha
DB
51
Start:
MOV
BL,02
Rep:
MOV
AL,[BL]
OUT
01
CMP
AL,58
JZ
Start
INC
BL
JMP Rep
END
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 v tr RAM.
Ngn xp.
Chng trnh:
; Nhy qua bng thng s ---------------------------------------------------JMP Start
DB 00
DB 00
Start:
MOV
AL,5
MOV
BL,4
43/139
CALL
30 ;gi th tc th nht
AL,3
MOV
[02],AL
MOV
BL,1
MOV
[03],BL
CALL
40
;gi th tc th hai
AL,7
PUSH
AL
MOV
BL,2
PUSH
BL
CALL
60
POP
BL
POP
AL
JMP
Start
;gi th tc th ba
30
;bt u ti a ch 30
ADD
AL,BL
44/139
RET
;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
PUSH
DL
PUSHF
MOV
CL,[02]
MOV
DL,[03]
ADD
CL,DL
MOV
[02],CL
POPF
POP DL
POP CL
RET
45/139
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
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
48/139
Start
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
AL,[50]
49/139
NOT
AL
MOV
[50],AL
;-----------------------------------------------------------OUT
01
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
Chng trnh:
;----------------------------------------------------------------------------------; v d ny s dng ngt cng cho php iu khin song hnh ng c bc ln n giao
thng
JMP
Start
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
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
Pastdata:
54/139
MOV
BL,[5B]
MOV
OUT
AL,[BL]
01
;d liu t bng n AL
CMP
JZ
AL,58
Reset
INC
BL
bng
MOV
JMP
[5B],BL
Stop
Reset:
MOV
MOV
BL,57
[5B],BL
Stop:
POPF
POP
BL
POP
AL
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
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
63/139
Tab K t Tab
10
Lf
13
Cr
M Carriage Return
26
27
Esc M Escape
32
Spa K t Space
64/139
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
10
1011
11
1100
12
1101
13
1110
14
1111
15
Kt qu l 4Bhex
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
INC
CL
M my hex :
A4
02
Nh phn
1010 0100
A4
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.
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
ROR
SHL
SHR
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
JMP
+ M my tng ng :
JZ
JNZ
JS
JNS
JO
CO
C1
C2
C3
C4
JNO
C5
. JMP Jump
. JZ
Jump Zero
: nhy nu c Z c t vo.
. JNZ
. JS
Jump Sign
: nhy nu c c Sign.
. JNS
. JO
Jump Overflow
. JNO
C6
V d :
71/139
CO
??
; y l m my tng ng
; ?? a ch m ngi bin dch cn tnh ton
HERE :
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 : :
AL, BL
Lnh ny s dng gn hn vic s dng hai dng lnh :
PUSH AL
72/139
POP
BL
V d :
Lnh
MOV
M my
DO
Trong
BL, 45
01, 45
DO
01
: thanh ghi BL
45
MOV
M my
D1
Trong
BL, [15]
01
D1
01
: thanh ghi BL
15
: a ch RAM
15.
73/139
Lnh
MOV [13],BL
M my
D2
Trong
13
01
D2
01
: thanh ghi BL
13
: a ch RAM
MOV
M my
D3
Trong
DL,[AL]
03
00
D3
03
: thanh ghi DL
00
: thanh ghi AL
MOV
M my
D4
[DL], AL
03
00
Trong :
74/139
D4
03
: thanh ghi D2
00
: thanh ghi AL
Lnh CMP s thc hin vic so snh sau khi tr hai gi tr vi nhau.
CMP
M my
DA
Trong
DA
00
Al, BL
00, 01
75/139
01
: thanh ghi BL
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
CMP
M my
DC
CL, [20]
02, 20
Trong :
DC
02
: m lnh.
: thanh ghi CL.
76/139
20
Cc trng hp cn li th khng t c.
PUSH BL
M my
E0
01
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
78/139
Khng t c Z, O, S
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
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
OUT
V d :
Lnh
IN
M my
00
F0
00
OUT
01
M my
F1
01
80/139
01
: ch v tr ca port
Lnh
HALT
M my
00
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
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
30
82/139
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
AL,2
MOV
BL,2
MUL
AL, BL
END
AL,2
MOV
BL,2
DIV
AL, BL
END
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
; 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
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
; ng cc ca s khng cn thit
Start:
MOV
AL,48
; a 48 vo thanh ghi AL
MOV
[C0], AL
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.
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
BL,3
; cng thm 3 vo BL
Rep
END
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
00
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
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
30
PUSH
AL
PUSHF
Rep:
DEC
AL
JNZ
REP
POPF
POP
AL
RET
END
95/139
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
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
AL,5
MOV
BL,2
CALL
30 ;gi th tc nhn i
30
;bt u ti a ch 30
MUL
AL,BL
;nhn AL vi 2, kt qu lu trong AL
RET
END
;-----------------------------------------------------------------------------------
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
40
;bt u ti a ch 40
PUSH
CL
PUSHF
MOV
CL,[02]
NOT
CL
POPF
POP CL
RET
END
;-----------------------------------------------------------------------------------
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
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
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
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
;ng cc ca s khc li
JMP
HERE
DB
"HELLO WORLD"
DB
HERE:
MOV
CL,C0
MOV
BL,03
;a ch bt u ca on vn bn
MOV
AL,[BL]
;a k t trong chui vo AL
CMP
AL,0
JZ
END
START:
MOV
CL,[AL]
INC
CL
INC
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
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
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
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
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
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
CallDown
PUSH
AL
POP
BL
AND
BL,20
JNZ
AL
POP
JNZ
; 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
;khng khi ng mt
LOOP
errDown:
MOV
AL,0
OUT
06
JMP
LOOP
CallUp:
IN
06
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
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
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
30
115/139
FA
DB
0A
DB
B6
DB
9E
DB
4E
DB
DC
DB
FC
DB
8A
DB
FE
DB
CE
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
116/139
Rep:
MOV AL,[BL]
OUT
02
CMP
AL,CE
JZ
Start
INC
BL
JMP
Rep
ORG
30
PUSH
AL
PUSH
BL
PUSHF
MOV
BL,[0D]
MOV
AL,[BL]
OR
AL,1
OUT
02
CMP
AL,CF
JZ
Reset
; nhay ve reset
117/139
INC
BL
MOV
[0D],BL
JMP
Done
MOV
BL,03
MOV
[0D],BL
Reset:
; 03 la dia chi bat dau cua bang
; luu con tro nay vao RAM
Done:
POPF
POP
BL
POP
AL
IRET
; ngat
; -------------------------------------------------------------END
118/139
00
12 ;AND 12 vc Al , kt qu lu vo AL
AA
00
02 ;AND CL v BL , kt qu lu vo BL
119/139
10101010
AND
00001111
Kt qu:
00001010
; gi th tc a ch 50
M my tng ng
CA
50
; gi th tc a ch 50
120/139
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 :
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
DB
DB
DB
33
DB
44
DB
DB
: Tng ln 1 v gim i 1
122/139
8 MOD 3 bng 2.
V d:
DIV AL,5
; chiaAL cho 5; kt qa lu vo AL
DIV AL,BL
MOD AL,5
MOD AL,BL
M my :
B3
00
05
; chia AL cho 5, kt qu lu vo AL
A5
00
01
B6
00
05
A6
00
01
123/139
IN
01
; gi ga tr trn ra port 1
IN
03
IN
00
; 00 l bn phm
M my tng ng :
DO
00
F1
55
01
FO
03
; c c t port 3 vo AL
FO
00
; 00 nhp t bn phm
;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
Lnh JMP
t mt gi tr mi vo IP, khng thit lp cc c trong CPU.
V d :
JMP 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.
FOO
M my tng ng
C6
12
C6
FE
125/139
M my tng ng
C4
12
C4
FE
FOO
M my tng ng
C2
12
C2
FE
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
FOO
M my tng ng :
C5
12
C5
FE
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".
M my tng ng
C3
12
C3
FE
127/139
V d :
JZ
M my tng ng
C1
12
C1
FE
Lnh MOV
Chuyn d liu t ni ny n ni khc.
V d :
MOV AL, 12
; chuyn 12 hex vo AL
00
12 ; chuyn 12 hex vo AL
D1
01
2F ; chuyn ni dung nh 2F vo BL
D2
33
D3
00
128/139
D4
02
00
05
A2
00
01
LNH NOT
o ngc tt c cc bit .
V d:
NOT
CL
M my tng ng
AD
02
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
00001111
kt qu
10101111
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.
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
131/139
PUSHF
POPF
M my tng ng
EA
EB
9B
Sau khi xoay xong mt bit th chuyn n xoay cc bit cn li cho n ht.
132/139
: 10000110
: 10000110
V d :
SHL AL
: 00001100
: 01000011
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.
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 :
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
136/139
137/139
138/139
139/139