Vous êtes sur la page 1sur 172

MC LC -----------------

Li ni u ln phin bn 1.0 Li ni u ln phin bn 1.2 Li ni u ln phin bn 1.3

I. Gii thiu

II. Bt u

II.1 h iu hnh DOS v Windows thc hin II.1.1 tp tin II.1.2 ci t di MS-DOS hoc Windows II.1.3 DOS Command Line hot ng II.1.4 DOS Mi trng II.1.5 Chy ASEM-51 trong Borland-IDE II.1.6 Chy ASEM-51 t Windows 3.1x II.1.7 Chy ASEM-51 t TM II.1.8 Cc h iu hnh DOS ch bo v Assembler ASEMX II.1.9 Cc Win32 Console-Ch Assembler ASEMW II.1.10 Cc HEXBIN Tin ch II.2 Linux thc hin II.2.1 tp tin II.2.2 ci t trong Linux

TH ANH NGUYN

II.2.3 Linux lnh hot ng dng II.2.4 Linux Mi trng II.2.5 Cc HEXBIN Tin ch II.3 Chng trnh DEMO

III. ASEM-51 hi Ngn ng

III.1 co III.2 Biu tng III.3 hng III.4 biu III.5 8051 Instruction Set III.6 Hng dn Pseudo III.7 Loi Segment III.8 khin Assembler III.8.1 chnh iu khin III.8.2 chung Controls III.9 biu tng c xc nh trc III.10 iu kin hi III.10.1 chung IFxx Xy dng III.10.2 IFxx v ELSEIFxx Hng dn III.11 v m ch bin III.11.1 Macros Callable n gin III.11.2 thng s v m III.11.3 Lp li Macro III.11.4 k hiu a phng III.11.5 v m khai thc

TH ANH NGUYN

III.11.6 sm kt thc mt m rng v m III.11.7 lng nhau v quy cc cuc gi v m III.11.8 nh ngha Macro lng nhau III.11.9 i din trong danh sch cc file

IV. Kh nng tng thch vi Intel Assembler

IV.1 hn ch IV.2 m rng IV.3 khc bit hn na

V. Danh sch nh dng file

VI. H tr 8.051 phi sinh

Ph lc A: ASEM-51 Thng bo li

A.1 li hi A.2 li Runtime

Ph lc B: HEXBIN Thng bo li

B.1 li chuyn i B.2 li Runtime

Ph lc C: Cc biu tng c xc nh trc

TH ANH NGUYN

Ph lc D: T kha dnh ring

Ph lc E: c im k thut ca nh dng Intel HEX

Ph lc F: ASCII Character Set

Ph lc G: Vn hc

Ph lc H: Thng hiu

Ph lc I: Hng dn 8051 trong s th t

Ph lc J: 8051 Hng dn theo th t t vng

Li ni u ln phin bn 1.0 =======================

Hm nay vi iu khin c s dng trong mt lot cc ng dng t n gin sn phm in t tiu dng vi cc thnh phn avionic phc tp. V vy, ti khng ngc nhin khi thy mt 80C31 trn bng gii m videotext, ti mua mt s thi gian trc y. V n c mt giao din ngi dng km v nhiu li, ti ngh ti c th lm tt hn v v vy ti bt u tm kim mt cho lp rp 8051. Nhng tri ngc vi s lng ln cc thnh phn phn cng c bn, s lng ngi pht trin phn mm vi iu khin dng nh l rt nh ng ch , v do l s lng cc cng c pht trin trn th trng. C mt s lng rt nh ca cc nh lp rp tt cho chuyn nghip vi gi $ 250 v ln - qu t cho mc ch s thch. Bn cnh cc bn demo v dng, c khng c b dng c khi ng hn ch hoc cc phin bn hc c sn. TH ANH NGUYN

Ti cng tm thy mt vi phn mm chia s v lp rp phm vi cng cng. Nhng hoc l h ngho v khng phi l rt ng tin cy, hoc khng phi l rt 8051 c th, hoc h s dng mt s loi c php tng tng l 100% tng thch vi chnh n, nhng xa cc tiu chun ca Intel. Ti khng thch tt c! C v l mt thiu chung ca vi iu khin hu ch v gi c phi chngnpht trin phn mm. y l mt iu ng tic, bi v tnh ph qut ca h, n gin kin trc v gi thp lm cho vi iu khin rt th v c bit cho s thch v gio dc. V vy, ti quyt nh vit mt tin dng 8.051 ng chuyn lp rp cho cc my tnh. Hn mt nm tri qua, k t khi ti pht hnh V1.1 ASEM-51 Thng 10 nm 1994. Mc d ti khng dnh tt c thi gian trn ASEM-51, V1.2 i km vi nhiu phn m rng, sa li, v nhiu chc nng hoc ci tin ni b! im ni bt ca phin bn mi l mt danh sch gn nh hon ho c trng tp tin vi tham chiu cho v mt s ty chn in n mi, mt bootstrap chng trnh cho MCS-51 hi ng thm nh, v rt nhiu mi *. file MCU. bit thng tin chi tit xem ASEM-51 V1.2 Ghi ch Pht hnh. Nhng g ti hc c qua hai nm tr li y l phn mm min ph l khng c t do, khng cho tc gi cng khng cho ngi s dng. ASEM-51 khng th c thc hin vi khng c g nhng gi min ph v s, chi cho pht trin phn mm thun ty. Ti cng phi mua mt PASCAL h thng pht trin, rt nhiu ti liu vi iu khin, v mt 80C535 hi ng qun tr nh gi. Vic phn phi cc phn mm min ph c v l mt vn ln hn ca n pht trin. Trc ht, ngi ta phi mua mt modem. Sau , chi ph rt nhiu thi gian, chi ph, kh khn, v cc cuc tho lun "th v" vi sysops c bit, cho n khi cc cng c c ng (hoc khng) trn nhiu BBS v cc trang web FTP. Cng b mt chng trnh phn mm chia s trn CD-ROM, ngi ta ch tm hiu, l thch hp nht. i vi iu ny, cch tt nht l mua mt chc hay hai (v mt a CD-ROM), v gi cc phn mm cc nh xut bn ca nhng ngi dng nh l ph bin nht. Ngi dng quan tm cui cng phi mua modem hoc a CD-ROM v np l ph nh nhau, hoc mua cng mt a CD-ROM, c c nhng "phn mm min ph" mt ln na t cc ngun cng cng. Sau khi tt c, n c th r hn, nhanh hn v thun tin hn, ch n gin l mua mt gii php phn mm chuyn nghip (nu c) trong cc ca hng my tnh gc. Nhng n khng phi l mt na nim vui! ASEM-51 V1.1 c phn phi (v c nhn i) hn 60 ftp cc trang web trn ton th gii, c ti ln rt nhiu BBS, v c cng b trn t nht l hai phn mm chia s a CD-ROM. Nhng ti ch nhn c mail t 9 ngi, mt con gin a phng, v mt con qui vt quc t. Hai nc ny yu cu ti cho php, bn ASEM-51 cho (ca h) li nhun, v tht bi thm hi.

TH ANH NGUYN

Hu ht cc th ngi s dng bt u vi "Ti sao chp lp rp ca bn t mt trang web FTP, m ti khng nh. l ci nhn tt trn cc ci nhn u tin! Bng cch ny, bn c mt bng d liu ca 80Cxyz? " hoc mt ci g nh th. Trong tt c cc thi gian, ti nhn c mt bo co li duy nht. V n c bo co qua in thoi, ti khng th ti to n. Tuy nhin hai li nghim trng c c nh k t phin bn 1.1, nhng Ti tm thy chng bng cch bn thn mnh trong thng 11 nm 1995 c hai. Chc chn ASEM-51 l khng c phn mm ch o, nhng thnh tht m ni, ti l mt cht tht vng ca ngi dng phn hi ngho!

Cui cng, ti phi cm n nhng ngi, nhng ngi gip ti pht hnh ASEM-51: Andreas Kies th nghim tt c cc phin bn beta trc ca cc nh lp rp. ng phn phi cc phin bn u tin, v duy tr min ph h tr ASEM-51 hch ton ngay t u. Gabriele Novak kim tra chnh t ca tt c cc tp tin ti liu. Werner Allinger th nghim phin bn beta mi nht v cc chng trnh ti khi ng. Cui cng nhng khng km, ti mun cm n tt c ngi dng quan tm cho kin ca mnh v ngh. Deisenhofen, 22 Thng 1 1996

W.W. Heinz

Li ni u ln phin bn 1.3 =======================

TH ANH NGUYN

Su nm tri qua k t khi ti pht hnh phin bn 1.2. Ti gn nh chc chn rng hu ht ngi dng ca ti ngh rng y l ngi cui cng! C v nh l ti lun c mt s thi gian rnh ri h tr, duy tr, thay i, m rng, nng cao v cng ASEM-51 hn v hn trong nhiu nm, nhng khng bao gi cng b mt phin bn mi chnh thc. Nhng by gi, sau su thng th nghim beta, n lc cng b ASEM-51 Phin bn 1.3 (Final Release). Nhng tnh nng mi quan trng nht l

- Nn tng my ch mi: Win32 v Linux (386) - Ch bin v m - Ci thin ng k iu kin lp rp - u ra trong tuyt i OMF-51 nh dng (vi thng tin debug) - 37 Bc nh MCU mi - Ti liu nh dng c hai ASCII v HTML

bit thng tin chi tit v rt nhiu cc phn m rng nh, ci tin, v sa li, xem ASEM-51 V1.3 Ghi ch Pht hnh. K t ma thu nm 2001, ASEM-51 c mt nh chnh thc trn Internet, ASEM-51 trang web h tr: http://plit.de/asem-51/

Tn dng: Andreas Kies th nghim tt c cc phin bn beta ca cc nh lp rp. Nu khng c ng Linux b quyt, cng Linux s l mt cng vic rt kh khn. Werner Allinger th nghim phin bn beta mi nht, v cung cp webspace min ph cho cc trang web ASEM-51 ngay t u. Axel Kielhorn vit DS5000.MCU tp tin. Anders Sandstroem gi cho ti 87LPC762.MCU v 87LPC768.MCU.

TH ANH NGUYN

Michael R. gp phn 80C32X2.MCU. Ti cng mun cm n tt c nhng ngi s dng khc cho cc bo co li ca h, ng gp, kin ng gp.

Bayreuth, ngy 31 Thng 12 nm 2002

W.W. Heinz

I. Gii thiu =============== ASEM-51 l mt lp rp v m hai ng chuyn cho Intel MCS-51 gia nh ca vi iu khin. N ang chy trn my tnh trong MS-DOS, Windows, v Linux. H iu hnh DOS thc ch lp rp ASEM.EXE ch yu cu 256 MB b nh h iu hnh DOS min ph v MS-DOS 3.0 (hoc cao hn). Cc ch bo v mi lp rp ASEMX.EXE i hi mt CPU 286 (hoc tt hn), v t nht 512 MB b nh XMS min ph. Win32 giao din iu khin ch lp rp ASEMW.EXE mi i hi mt CPU 386 (hoc tt hn) v Windows 9x, NT, 2000 hay XP. Linux mi lp rp ASEM i hi mt h thng Linux 386 da trn. HTML ti liu hng dn thit lp mi i hi mt MHz Pentium 90 (hoc tt hn) v mt trnh duyt web.

ASEM-51 ngn ng lp rp l mt tp hp phong ph ca cc tiu chun Intel m bo kh nng tng thch ti a vi 8.051 ngun lp rp hin c. ASEM-51 c th to ra hai loi tp tin i tng: nh dng Intel HEX, l

TH ANH NGUYN

trc tip chp nhn bi hu ht cc lp trnh EPROM, v tuyt i OMF-51 nh dng, l cn thit cho nhiu m phng, gi lp v g ri mc tiu. V vy, ASEM-51 l thch hp cho vi iu khin phng tin MCS-51 da trn v nh cc d n trong s thch, gio dc v kinh doanh. Tuy nhin, ASEM-51 c thit k x l cc chng trnh cng rt ln! Tnh nng quan trng nht ca n l:

- Nhanh, gn, ng tin cy, d s dng, v cng nh cc ti liu - Ci t d dng, hu nh khng c cu hnh yu cu - Dng lnh hot ng, hng lot v kh nng kt ni mng - y trong nm 2000 ph hp - DOS (RM v AM), Win32 v Linux m nh phn c sn - C php tng thch Intel - Nm quy v tr, mt cho mi ca MCS-51 khng gian a ch - nh gi lp rp thi gian ca s hc v logic biu - Loi phn khc kim tra ton hng hng dn - T ng ti u ha m ca nhy chung v cc cuc gi - X l v m (m cc cng trnh _really_) - Lng nhau bao gm x l tp tin - Lp rp c iu kin lng nhau - Tuyt i OMF-51 u ra ca module (vi thng tin debug) - u ra tp tin Intel HEX - Tin ch chuyn i hex-to-nh phn - Tch hp biu tng cho 8.051 thanh ghi chc nng c bit (c th b v hiu ha) - H tr trc tip ca hn by mi 8.051 c phi sinh - H tr ngi dng xc nh 8.051 c phi sinh - H tr c bit ca 83C75x gia nh Philips - 8051 ng k h tr ngn hng

TH ANH NGUYN

- Danh sch lp rp chi tit vi bng k hiu hay tham chiu cho - Tip tc a thch cc c s in n ;-) - Ti liu nh dng ASCII v HTML - Chng trnh ti khi ng th nghim trn bng MCS-51 mc tiu - H tr tch hp d dng vo Borland IDE ph bin - Hn ch cp nht dch v ca tc gi

Cc gi phn mm ASEM-51 c pht trin vi:

Borland Pascal-mit Objekten 7.0 (c) Borland quc t 1992 Delphi 2.0 Client / Server Suite (c) Borland quc t 1996 FreePascal 1.0.6 (c) Florian Klaempfl 2002

II. Bt u =================== Chng ny m t s phn b ASEM-51, ci t ca h trn nn tng my ch h tr, v lm th no s dng chng trong cng vic hng ngy.

II.1 h iu hnh DOS v Windows thc hin ----------------------------------Cho n khi phin bn 1.2, ASEM-51 c sn trong thc hin ch thc cho ng bng MS-DOS ch. Trong khi mt ch bo v phin bn h iu hnh DOS v mt giao din iu khin Win32 phin bn ch c thm vo gi. Ngc li vi vic thc hin Linux mi, tt c cc h iu hnh DOS v Windows hng v c chc nng ging nhau v hot ng c bn ca h v vy c th TH ANH NGUYN

10

m t vi nhau. Ch c mt vi khc bit nh v cc tnh nng c bit c s c tho lun ring. K t khi chng ta c th chia s cc ngun chng trnh vi cc phin bn Linux, tt c cc h iu hnh DOS v Windows thc thi c th c cc tp tin ASCII trong c hai h iu hnh DOS v nh dng UNIX, nhng ghi tp tin ASCII trong bn a (DOS) ch nh dng ca h.

II.1.1 tp tin -----------ASEM-51 lu tr phn phi ca bn cho h iu hnh DOS / Windows nn c cc sau y nhm cc tp tin:

1.) Tay ASEM_51.DOC ASEM-51 ca ngi s dng, nh dng ASCII Tp tin ch mc DOCS.HTM ca ti liu ASEM-51, nh dng HTML *. HTM trang tip theo ca ti liu HTML *. GIF GIF tham chiu bi cc trang HTML *. JPG hnh nh JPEG c tham chiu bi cc trang HTML ASEM.EXE lp rp (DOS ch thc) ASEM.PIF ASEM thng tin chng trnh cho Windows 3.1x ASEM.ICO ASEM tp tin biu tng cho Windows 3.1x ASEM2MSG.EXE ASEM-51 b lc tin nhn cho Borland-IDE (DOS) ASEM2MSG.PAS ngun Turbo-Pascal ca ASEM2MSG.EXE ASEMX.EXE lp rp (DOS ch bo v) ASEMX.PIF ASEMX thng tin chng trnh cho Windows 3.1x ASEMX.ICO ASEMX tp tin biu tng cho Windows 3.1x DPMI my ch 16-bit DPMI16BI.OVL ca Borland (cho ASEMX.EXE) 16-bit qun l DPMI thi gian chy RTM.EXE Borland TH ANH NGUYN

11

ASEM32.BAT chy ASEMX vi my ch DPMI 32-bit ca Borland ASEMW.EXE lp rp (Win32 giao din iu khin ch ) HEXBIN.EXE tin ch chuyn i hex-to-nh phn (DOS) HEXBINW.EXE tin ch chuyn i hex-to-nh phn (Win32) DEMO.A51 mt chng trnh mu 8051 lp rp *. MCU x l tp tin nh ngha ca 8.051 c phi sinh (Cho mt danh sch chi tit cc tp tin MCU xem chng "VI H tr. Ca 8.051 phi sinh")

2.) Tay BOOT51.DOC BOOT-51 ca ngi s dng, nh dng ASCII Tp tin ch mc BOOT51.HTM ca ti liu BOOT-51, nh dng HTML BOOT51.A51 BOOT-51 ngun lp rp (yu cu ASEM-51 V1.3) CUSTOMIZ.EXE BOOT-51 tin ch ty chnh BOOT.BAT tp tin thc thi cho chng trnh ng dng ti ln UPLOAD.BAT gi BOOT.BAT ch Tin ch thit lp COMPORT.EXE cho cng ni tip my tnh Chng trnh RESET51.EXE thit lp li h thng ch thng qua cng my tnh Chng trnh sleep.exe ch thi gian phc hi thit lp li BLINK.A51 chng trnh th nghim mu cho BOOT-51

3.) README.1ST thng tin nhanh chng, nh dng ASCII LICENSE.DOC ASEM-51 License Agreement, nh dng ASCII RELEASE.130 ASEM-51 Ghi ch Pht hnh, nh dng ASCII SUPPORT.DOC ASEM-51 Hng dn h tr, nh dng ASCII Install.bat to ra mt thch hp ci t ASEM-51 di MS-DOS Xa KILLASEM.BAT tt c cc file ca ASEM-51 gi (DOS)

TH ANH NGUYN

12

Nhm th nht bao gm tt c cc tp tin trc tip lin quan n vic lp rp. Nhm th hai c cha tt c cc tp tin trc tip lin quan n vic bootstrap chng trnh. Nhm th ba c h tr v ti liu cc tp tin chung p dng cho ton b gi.

II.1.2 ci t di MS-DOS hoc Windows ------------------------------------------V nguyn tc ASEM-51 khng yu cu mt phn mm ci t hoc m cu hnh. Trong trng hp n gin bn c th sao chp tt c cc tp tin ca gi vo th mc lm vic ca bn, v tn hng nhng li ch ca s tht plug-and-play kh nng tng thch! Mt khc, tin trnh ci t ca ASEM-51 di MS-DOS l rt n gin:

- To mi, th mc u trng trn a cng ca bn.

- Gii nn kho lu tr ASEM-51 phn phi ca bn vo th mc ny, hoc sao chp tt c cc tp tin ca gi ASEM-51 vo n.

- Hy mc nh th mc u, chy tp tin thc thi Install.bat cung cp, v lm theo hng dn.

Nu bn khng thch bt c iu g ang chy t ng, hoc iu ny l khng kh r rng, ASEM-51 cng c th c ci t bng tay nh sau:

- To mt th mc mi trn cng ca bn, v d C: \ ASEM51.

TH ANH NGUYN

13

- Sao chp tt c cc tp tin ca gi ASEM-51 vo th mc ny.

- Thm n tuyn b PATH ca bn trong tp tin AUTOEXEC.BAT, v d nh

PATH C: \ DOS; C: \ util; C: \ ASEM51

- Nu iu ny khng c thc hin trong khi gii nn phn phi lu tr, to ra mt th mc con, v d C: \ ASEM51 \ MCU, v di chuyn tt c tp tin *. file MCU cung cp cho th mc con ny, kho st tt hn.

- To mt th mc con, v d C: \ ASEM51 \ HTML, v di chuyn tt c tp tin *. HTM, *. GIF v *. JPG th mc con ny, tng ng. ( c m dn HTML, gi trnh duyt web ca bn v bt u vi tp tin C: \ ASEM51 \ HTML \ DOCS.HTM)

- Ty chn xc nh mt h iu hnh DOS bin mi trng trong ASEM51INC AUTOEXEC.BAT, xc nh mt con ng tm kim bao gm cc tp tin, v d nh

SET ASEM51INC = C: \ ASEM51 \ MCU; D: \ MICROS \ MCS51 \ bao gm

- i vi hot ng ng n ca Borland 16-bit my ch DPMI trn my tnh vi hn 16 MB RAM, hy chc chn rng EMM386.EXE (bao gm trong DOS 5.0 hoc mi hn) c np, v xc nh cc bin mi trng trong DPMIMEM AUTOEXEC.BAT nh sau:

SET DPMIMEM = MAXMEM 16.383

TH ANH NGUYN

14

- Khi ng li my tnh ca bn.

Ci t hng lot tp tin install.bat s hot ng trn MS-DOS, Windows 3.1x, v h thng Windows 9x. N vn cha c th nghim trn khc Cc phin bn Windows. c bit l i vi cc NT da trn cc phin bn Windows NT 4.0, 2000 v XP, tin trnh ci t c khuyn khch.

II.1.3 DOS Command Line hot ng --------------------------------ASEM-51 cung cp h tr y cc hot ng dng lnh v kh nng hng lot nh cc cng c pht trin thng mi tt nht. ;-) Tuy nhin, n c th c tch hp vo mi trng pht trin nc ngoi, nu mun. Lp rp c gi bng cch g:

ASEM <source> [<object> [<listing>]] [<options>]

ni <source> l ngun lp rp 8051, <object> l tp tin u ra, v <listing> l tp tin danh sch lp rp. Cc thng s v <object> <listing> l ty chn. Khi b qua, cc tn tp tin c ngun gc t tn tp tin <source>, nhng vi phn m rng HEX (hoc OMF) v LST. Tt c cc tn tp tin c th c xc nh khng c phn m rng. Trong nhng trng hp ny, cc nh lp rp thm phn m rng mc nh nh hnh di y:

m rng tp tin -------------------------------------------------- ---<source>. A51

TH ANH NGUYN

15

<object> HEX (vi / OMF-51 ty chn:. OMF). LST <listing>.

Nu bn mun c mt tn tp tin khng c phn m rng, chm dt n vi mt '.'! Thay v tn tp tin bn cng c th ch nh tn thit b chuyn hng u ra cho nhn vt cng I / O. Tn thit b c th kt thc vi mt ':'! N khng c kim tra, cho d thit b ang tn ti hoc ph hp cho cng vic. Mc d c th c cc tp tin ngun t mt thit b vt (V d nh CON :) thay v mt tp tin, iu ny khng c khuyn co: K t khi ASEM-51 l mt lp rp hai vt qua, n lun lun c cc tp tin ngun hai ln!

ASEM cng nhn cc ty chn sau y:

/ BAO GM: path1 [; path2 [; ... ; Pathn]] / Xc nh: biu tng [: gi tr [: type]] / OMF-51 / CT / Yn tnh

Khi / BAO GM ty chn c s dng, lp rp tm kim cc quy nh con ng bao gm cc tp tin khng th c tm thy trong th mc lm vic. ng dn c th l bt k s lng cc th mc cch nhau bng ',' nhn vt. Cc th mc s c tm kim t tri sang phi. ng dn, ch nh vi / BAO GM ty chn, c tm kim trc con ng, c nh ngha vi (ty chn) DOS bin mi trng ASEM51INC!

Cc / Xc nh la chn rt hu ch cho vic la chn cc bin th chng trnh c th

TH ANH NGUYN

16

t dng lnh c thc hin vi iu kin lp rp. N cho php xc nh mt biu tng vi mt gi tr v mt loi phn khc trong dng lnh. Gi tr v loi l ty chn. Cc loi phn on ca cc biu tng mc nh l s, nu b qua. Biu tng mc nh gi tr l 0, nu b qua. Gi tr biu tng c th l bt k hng s. Cc loi biu tng phi l mt cc nhn vt sau y:

C = CODE D = D LIU I = IDATA X = XDATA B = BIT N = s (mc nh)

Theo mc nh, ASEM-51 to ra mt i tng tp tin nh dng Intel hex. Khi / OMF-51 ty chn c ch nh, tuyt i OMF-51 m-un c to ra.

Ty chn c th vit tt nh min l h vn cn duy nht!

V d:

0.) ASEM

Khi gi khng c tham s, lp rp s hin th mt mn hnh tr gip:

MCS-51 gia nh Macro Assembler ASEM-51 V1.3

TH ANH NGUYN

17

s dng: ASEM <source> [<object> [<listing>]] [ty chn]

la chn: / BAO GM: path1, path2; path3 / Xc nh: biu tng [: gi tr [: type]] / OMF-51 / CT / Yn tnh

1.) CHNG TRNH ASEM

s lp rp cc ngn ng lp rp chng trnh PROGRAM.A51 8051 v to ra mt tp tin PROGRAM.HEX Intel HEX v PROGRAM.LST danh sch.

2.) ASEM TARZAN.ASM JANE JUNGLE.PRN

s lp rp cc ngn ng lp rp chng trnh TARZAN.ASM 8051 v to ra mt tp tin JANE.HEX Intel HEX v JUNGLE.PRN danh sch.

3.) ASEM D N EPROM.

s lp rp cc ngn ng lp rp chng trnh PROJECT.A51 8051 v sn xut mt EPROM tp tin Intel HEX v PROJECT.LST danh sch.

4.) ASEM ROVER / OMF

s lp rp cc ngn ng lp rp chng trnh ROVER.A51 8051 v sn xut tuyt i OMF-51 i tng m-un ROVER.OMF v ROVER.LST danh sch.

TH ANH NGUYN

18

. 5) ASEM mu COM2: NUL

s lp rp cc ngn ng lp rp chng trnh SAMPLE.A51 8051, gi sn lng file HEX giao din COM2 ni tip v n p danh sch cc tp tin u ra bng cch gi n n thit b NUL.

6) ASEM Applicat / INC: C: \ ASEM51 \ MCU; D:. \ MICROS \ 8051 \ U

s lp rp cc chng trnh APPLICAT.A51, trong khi tt c cc yu cu bao gm tp tin s c tm kim u tin trong th mc mc nh, sau trong C: \ ASEM51 \ MCU, v cui cng trong D: \ MICROS \ 8051 \ U.

. 7) ASEM UNIVERSL / D: Eva_Board: 8000h: C

s lp rp cc chng trnh UNIVERSL.A51, trong khi cc biu tng M EVA_BOARD s c xc nh trc vi 8000h gi tr trong qu trnh lp rp.

Khi li chng trnh c pht hin, h c gn c trn bn iu khin. Ny c th xem xt nh sau:

MCS-51 gia nh Macro Assembler ASEM-51 V1.3

APPLICAT.A51 (14): phi c bit n trn o u tin USERBITS.INC (6): c gng chia cho s khng DEFINES.INC (37): biu tng khng xc nh

TH ANH NGUYN

19

APPLICAT.A51 (20): biu tng khng xc nh APPLICAT.A51 (27): khng c tuyn b END tm thy

5 li c pht hin

Tt c cc li c nh du vi tn ca cc ngun hoc bao gm cc tp tin, s dng a phng ni n c tm thy, v cc thng bo li ca chnh n. nh dng u ra ny lm cho n d dng tch hp ASEM-51 vo hin ti nc ngoi mi trng pht trin hoc workbenches. Mt hon ton ph hp cho Turbo C c th t c + IDE (v c l nhng ngi khc) vi cc ty chn CT /. Khi xc nh, s lng ct ca chng trnh li ny l sn lng b sung sau khi cc s dng:

MCS-51 gia nh Macro Assembler ASEM-51 V1.3

APPLICAT.A51 (14,12): phi c bit n trn o u tin USERBITS.INC (6,27): c gng chia cho s khng DEFINES.INC (37,18): biu tng khng xc nh APPLICAT.A51 (20,18): biu tng khng xc nh APPLICAT.A51 (27,1): khng c tuyn b END tm thy

5 li c pht hin

Nu sai st c pht hin trong ng dy m rng v m, khng c tng ng

TH ANH NGUYN

20

v tr trong tp tin ngun. Do , cc li c nh du vi tn ca ngun hoc tp tin bao gm, v s dng a phng t ni m rng v m c gi. (i vi cc macro c th c gi l dng vi cc cuc gi v m, v cho cc khi lp li ny l dng endm.) cung cp cho ngi s dng mt gi , tn v m v dng m rng (v ty chn ct) s c chn vo trc cc thng bo li thc t:

MCS-51 gia nh Macro Assembler ASEM-51 V1.3

UARTIO.A51 (44,1): nhn c (3,22): phn loi khng ph hp UARTIO.A51 (87,1): REPT (4,19): biu tng khng xc nh UARTIO.A51 (87,1): REPT (8,19): biu tng khng xc nh UARTIO.A51 (87,1): REPT (12,19): biu tng khng xc nh

4 li c pht hin

S dng m rng l s dng m rng trong m rng v m tng ng, bt u t 1. Nu li xy ra trong qu m rng ca mt khi lp li, cc REPT t kha thay th tn v m.

Ty chn / yn tnh ngn chn tt c cc giao din iu khin u ra ngoi tr thng bo li.

Khi chm dt, ASEM-51 tr v mt m thot cho h iu hnh:

tnh hnh ERRORLEVEL

TH ANH NGUYN

21

---------------------------------------------khng c li 0 li chng trnh pht hin 1 li thi gian chy gy t vong 2

Lu : Cnh bo khng nh hng n cc m thot!

II.1.4 DOS Mi trng --------------------- xc nh mt con ng tm kim bao gm cc tp tin, mt bin mi trng ty chn ASEM51INC c th c nh ngha:

SET ASEM51INC = <path>

<path> c th l bt k s lng cc th mc cch nhau bng ',' nhn vt. Hy chc chn rng ton b ngha khng cha bt k khong trng hoc cc tab! Nu ASEM51INC c xc nh, cc nh lp rp tm kim cc <path> quy nh cho bao gm cc tp tin khng th c tm thy trong th mc lm vic, cng khng phi trong con ng tm kim ch nh vi / BAO GM la chn. Cc th mc <path> s c tm kim t tri sang phi.

V d:

1) SET ASEM51INC = C:. \ ASEM51 \ MCU; D: \ MICROS \ MCS51 \ bao gm

Nu bao gm cc tp tin khng th c tm thy trong th mc lm vic,

TH ANH NGUYN

22

cng khng phi trong / BAO GM ng dn (nu c ch nh), cc tm kim lp rp tip theo C: \ ASEM51 \ MCU v cui cng l D: \ MICROS \ MCS51 \ bao gm.

2) SET ASEM51INC = C:. \ ASEM51 \ MCU;% PATH%

Nu ASEM51INC c xc nh nh trn trong AUTOEXEC.BAT sau PATH tuyn b, cc nh lp rp cui cng tm kim th mc C: \ ASEM51 \ MCU v sau tt c cc th mc, c trong chng trnh tm kim h iu hnh DOS con ng, t tri sang phi!

Chiu di ti a ca <path> c gii hn trong 255 k t. iu ny khng th vt qu vi lnh SET ca lnh DOS thng dch vin COMMAND.COM, nhng vi cc thng dch vin ch huy ca bn th ba nh 4DOS (ti a 512 k t)!

Lu rng theo sau khong trng v cc tab pha sau tn ca cc bin mi trng dng nh c coi l ng k di MS-DOS! Nu sau mt nh ngha

SET ASEM51INC = C: \ ASEM51 \ MCU v SET ASEM51INC = C: \ 8051 \ MCU

s c hai (!) mc ng thi trong mi trng DOS! Tuy nhin, lp rp s nhn ra iu th hai ch. V DOS khng ct ct theo sau khong trng v cc tab vi tn bin, lp rp khng th lm iu ny mt trong hai! l l do ti sao bn nn chc chn, lun lun xc nh mi trng bin khng c khong trng v cc tab.

TH ANH NGUYN

23

II.1.5 Chy ASEM-51 trong Borland-IDE ----------------------------------------Turbo C + + (1,0-3,0) ngi s dng s nh gi cao kh nng gi ASEM-51 nh mt chng trnh chuyn tip t Borland IDE. (Phin bn h iu hnh DOS ch!) i vi iu ny, chng trnh ASEM2MSG b lc cho cc thng bo li ASEM-51 c cung cp. tch hp ASEM-51 vo Borland IDE, thc hin cc bc sau:

- Hy chc chn rng, ASEM-51 c ci t ng nh m t trc y, hoc ASEM.EXE v ASEM2MSG.EXE ang u trong PATH ca bn.

- Bt u Turbo C + + (hoc Borland C + +) IDE cho h iu hnh DOS.

- i vi Turbo C + + 1.0, nhp chut u tin: Ty chn | menu Full | ON

- Bm vo t thanh menu: Ty chn | Chuyn

- Khi "chuyn giao" hp thoi c kch hot, nhn nt Edit.

- By gi cc "Sa i / New Chuyn khon" hp thoi s c kch hot. in vo cc mc sau y:

Chng trnh Tiu : ASEM-~ 51 Chng trnh ng dn: ASEM Command Line: $ NOSWAP $ TIT KIM CUR $ CAP bt ngt (ASEM2MSG) $ EDNAME / C Translator: [X] Phm nng: F8 phm Shift

TH ANH NGUYN

24

Sau nhn nt New.

- Khi tr v "Chuyn" hp thoi, nhn nt OK.

- Bm vo t thanh menu: Ty chn | Lu | OK

By gi chng ta c th, lp rp cc tp tin trong cc hot ng chnh sa ca s vi ASEM-51, khi nhn Shift-F8. Cc thng bo li (nu c) s xut hin trong "tin nhn" ca s. Bn c th duyt qua cc li, v nhy vo vn bn gc bng cch n gin nhn Enter. iu ny thm ch lm vic, nu li khng phi l trong chng trnh ring ca mnh, nhng trong mt tp tin bao gm!

Turbo Pascal 7.0 ngi dng cng c th s dng Borland IDE ca h lp rp. tch hp ASEM-51 vo Turbo-Pascal IDE, thc hin nh sau bc sau:

- Hy chc chn rng, ASEM-51 c ci t ng nh m t trc y, hoc ASEM.EXE v ASEM2MSG.EXE ang u trong PATH ca bn.

- Khi ng Turbo Pascal 7.0 (hoc Borland-Pascal 7.0) IDE cho h iu hnh DOS.

- Bm vo t thanh menu: Ty chn | Cng c

- Khi "Cng c" hp thoi c kch hot, nhn nt New.

- By gi cc "Sa i / Cng c mi" hp thoi s c kch hot.

TH ANH NGUYN

25

in vo cc mc sau y:

Tiu : ASEM-5 ~ ~ 1 Chng trnh con ng: ASEM Dng lnh: $ NOSWAP $ TIT KIM CUR $ CAP bt ngt (ASEM2MSG) $ EDNAME Phm nng: Shift + F8

Sau bm nt OK.

- Khi tr v "Cng c" hp thoi, bm nt OK.

- Bm vo t thanh menu: Ty chn | Mi trng | Preferences

- Khi "Tu chn" hp thoi c kch hot, v hiu ha "ng trn i ngun "mc trong" "Ty chn hp kim. Sau nhn nt OK.

- Cui cng nhn t thanh menu: Ty chn | Lu

Ti ASEM-51 c th c gi vi Shift-F8, lp rp cc chng trnh trong hot ng ca s son tho, trong khi thng bo li (nu c) xut hin trong "Thng ip" ca s.

Ngi s dng c hai Turbo C + + v Turbo-Pascal nn thch Turbo C + + IDE. Trong Turbo Pascal 7.0 IDE, / CT (hoc / C) ty chn khng c tc dng! Phin bn Turbo-Pascal trc 7.0 khng thc hin trnh n Tools.

Lu rng vic chuyn giao v m $ TIT KIM CUR lu cc ni dung ca hot ng

TH ANH NGUYN

26

chnh sa ca s (nu sa i), trc khi ASEM.EXE c gi! Nu lp rp ca bn Chng trnh bao gm cc file ngun hn na (c th c hin ang c np vo chnh sa cc ca s khc), xc nh tt hn $ TIT KIM TT C. iu ny s lu ni dung ca tt c (sa i) ca s chnh sa cc tp tin a, trc khi gi ASEM.EXE! Nu bn khng chc chn, ch nh $ TIT KIM NHANH CHNG. iu ny s nhc bn cho mi (Sa i) sa ca s lu cc ni dung trc khi chy ASEM.EXE. Cho thm thng tin v cc macro chuyn nhng, tham kho cc tr gip trc tuyn Borland!

Quan trng: ASEM2MSG.EXE l khng thch hp cho cc phin bn Win32 ca Borland IDE!

II.1.6 Chy ASEM-51 t Windows 3.1x ---------------------------------------Tt nhin ASEM v ASEMX ang chy tt trong Windows 3.1x DOS-Box! Nhng tch hp vo Windows 3.1x my tnh bn, cc tp tin ASEM.PIF v ASEM.ICO c cung cp. chn ASEM-51 vo mt nhm cc Chng trnh qun l, thc hin cc bc sau y:

- Hy chc chn rng, ASEM-51 c ci t ng cch cho MS-DOS nh m t trc y.

- Khi ng Windows 3.1x v m rng ca s Qun l Chng trnh n i din y kch thc mn hnh, nu cn thit.

- Tp trung vo cc nhm chng trnh trong ASEM-51 s c a vo, v d "ng dng".

TH ANH NGUYN

27

- Bm vo t thanh menu Qun l chng trnh: File | New

- Khi "Chng trnh mi i tng" hp thoi ang hot ng, chn ty chn "Chng trnh mc", v nhp vo nt OK.

- By gi cc "Chng trnh tnh Item" hp thoi s c kch hot. in vo cc mc sau y:

M t: ASEM-51 Command Line: ASEM.PIF Mc lm vic: (bt c iu g bn mun) Phm tt: (bt c iu g bn mun) Chy gim thiu: []

Sau bm [Change Icon] nt.

- By gi mt hp thng bo s xut hin vi cc thng bo li "Khng c biu tng c sn cho cc tp tin c ch nh". Ch cn nhn nt OK.

- Cc "Change Icon" hp thoi s c hin th ngay by gi. in vo

File Name: ASEM.ICO

v nhn vo nt OK. By gi biu tng ASEM-51 s c hin th trong lnh vc biu tng. Nhn nt OK mt ln na.

TH ANH NGUYN

28

- Khi tr v "Chng trnh mc Properties" hp thoi, bo ch nt OK.

(Trong phin bn Windows quc gia, mi th c th trng hi khc nhau.)

By gi ASEM.EXE c th c gi bng cch nhp p vo biu tng ASEM-51. Sau khi nhp cc thng s chng trnh trong mt hp thoi tng ng, ASEM ang chy trong mt ca s DOS, m vn m sau khi chng trnh chm dt, cho bn c mt ci nhn v cc thng bo li.

V nguyn tc, vic ci t lp rp ch bo v ASEMX.EXE cng c th c thc hin nh m t trn. Tuy nhin, lnh vc <Phn m t> cn c lp y vi "XMS ASEM-51", cc <Command Line> nn "ASEMX.PIF", v <File Name> biu tng nn ASEMX.ICO thay th.

II.1.7 Chy ASEM-51 t TM --------------------------------Ngi s dng 3.x TM c th tch hp ASEM-51 vo bin tp ca h bng cch n gin xc nh mt bin mi trng DOS trong AUTOEXEC.BAT ca h vi

SET BCA51 = "ASEM%% s"

Ny quy nh cc lnh bin dch cc tp tin vi phn m rng *. A51. Sau , ASEM-51 c th c gi t TM vi Alt-F10.

TH ANH NGUYN

29

II.1.8 Cc h iu hnh DOS ch bo v Assembler ASEMX --------------------------------------------Ni chung, c chng minh ch thc lp rp ASEM.EXE l cng cho cc chng trnh rt ln. Tuy nhin, n c th chy ra khi b nh, nu mt chng trnh c cha mt s lng ln cc biu tng ngi dng nh ngha di, hoc rt nhiu cc nh ngha v m ln. Thu hp khong cch, gi ASEM-51 bao gm cc ch bo v mi lp rp ASEMX.EXE. ASEMX c chc nng ging vi ASEM, nhng n c th s dng b nh m rng, p ng yu cu khng gian lm vic khc nghit. ASEMX c i km vi 16-bit my ch DPMI16BI.OVL v Borland DPMI qun l thi gian chy RTM.EXE. N i hi mt CPU 286 (hoc tt hn), v t nht 512 MB b nh XMS min ph (1 MB)! ASEMX khi c gi, DPMI16BI.OVL v RTM.EXE phi l

- Trong th mc mc nh ca bn, - Ni ASEMX.EXE l, hoc - u trong PATH ca bn

Trong khi khi ng, my ch DPMI c gng phn b tt c min ph cn li XMS b nh s dng bi ASEMX. Nu bn khng mun iu ny, bn c th hn ch s lng b nh c phn b vi h iu hnh DOS bin mi trng DPMIMEM:

SET DPMIMEM = MAXMEM n

s hn ch khng gian b nh XMS, c s dng cho giao din DPMI, n kB. Khng bao gi thit lp n mt gi tr ln hn 16.383!

TH ANH NGUYN

30

Nhn chung, giao din Borland DPMI l rt ng tin cy v khng bnh thng khng xung t vi cc nh qun l b nh khc. ASEMX cng s chy vi khc phin bn ca DPMI16BI.OVL v RTM.EXE cung cp vi nhiu phn mm Borland gi (tr TC + + 3.0 v BC + + 3.1).

Tuy nhin, c kh khn pha trc trn h thng vi hn 16 MB RAM! Khng cn ci t c th, c mt xu hng gy t vong sp , treo, hoc thm ch khi ng, bt c khi no mt chng trnh DPMI nh ASEMX c gi. Cho hot ng ca giao din DPMI, MS-DOS 5.0 (hoc mi hn) l yu cu, v EMM386.EXE phi c np! Nu EMM386.EXE c ti vi cc thng s (v d nh NOEMS), Borland 16-bit my ch DPMI khng th x l nhiu hn 16 MB! Tuy nhin, khng cc thng s (i = nnnn, x = nnnn l ok) hoc vi cc my ch DPMI khc c th c hn. Trong nhng trng hp ny, ASEMX c th s dng ln n 64 MB b nh m rng!

Nu ASEMX ang chy trong mt mi trng h thng vi mt my ch DPMI ring, v d nh Windows h iu hnh DOS-Box, RTM.EXE s pht hin ny v s dng my ch DPMI hot ng thay v DPMI16BI.OVL. Trong trng hp ny, cc bin mi trng DPMIMEM c khng c hiu lc. hn ch (hoc tng) b nh XMS c sn cho Windows 3.1x DOS nhc nh, thay i tp tin DOSPRMPT.PIF trong th mc WINDOWS ca bn vi Windows PIF son tho tp tin. bit thm thng tin v cch lm cho b nh nhiu hn hoc t hn XMS c sn cc chng trnh ng dng trong mi trng h thng khc, hy xem tng ng hng dn s dng ca ngi dng.

Mt la chn khc th v l 32-bit my ch DPMI Borland vi

TH ANH NGUYN

31

qun l b nh o. N khng th c cung cp theo gi ASEM-51 v l do giy php, nhng c cha trong Borland Turbo Assembler 4.0 v 5.0, Borland C + + 4.5x v 5.0x, v c th nhng ngi khc. N c ban u pht trin cho cc cng c dng lnh Borland, nhng n cng lm vic vi ASEMX. N i hi mt CPU 386 (hoc tt hn), v cho php m rng vt l min ph b nh vi mt tp tin chuyn i c th c to ra vi cc MAKESWAP.EXE chng trnh. Bn cnh , my ch DPMI32VM.OVL DPMI 32-bit v qun l thi gian chy 32RTM.EXE c yu cu. Cc tp tin ASEM32.BAT hng lot, cung cp theo gi ASEM-51, cho thy cch chy ASEMX vi 64 MB b nh o, s dng 32-bit my ch DPMI ca Borland.

II.1.9 Cc Win32 Console-Ch Assembler ASEMW --------------------------------------------V nguyn tc, h iu hnh DOS lp rp ASEM v ASEMX cng ang chy trong Ca s 9x/NT/2000/XP DOS-Box, nhng vi mt s hn ch DOS c th in hnh: tn tp tin c gii hn cho cc nh dng 8.3, chui con ng c gii hn 64 k t, lp rp ch thc khng th truy cp nhiu hn 640 KB b nh RAM, v h tr h iu hnh DOS tr nn t hn v ti t hn vi mi phin bn Windows mi. khc phc nhng nhc im, gi ASEM-51 i km vi cc mi Win32 giao din iu khin ch lp rp ASEMW.EXE. ASEMW c chc nng ging ht nhau ASEM, nhng n c th x l tn tp tin di v li ch ca Win32 qun l b nh, cho php lp rp cc chng trnh thin vn hc ln!

Gi : Nu bn yu tn tp tin vi khong trng gia, bn phi t chng trong du ngoc kp, v d

TH ANH NGUYN

32

ASEMW "Test-Chng trnh cho 80C32 ti nh gi-Board.a51"

II.1.10 Cc HEXBIN Tin ch -------------------------Hu ht cc lp trnh EPROM phi chp nhn cc nh dng tp tin Intel HEX m l u ra ca ASEM-51. Tuy nhin, cho l t EPROM cm v mc ch c bit n c th l hu ch chuyn i cc tp tin HEX vo mt tp tin hnh nh nh phn tinh khit. i vi iu ny cc tin ch chuyn i HEXBIN c cung cp. N c gi nh sau:

HEXBIN <hex> [<bin>] [/ OFFSET: o] [/ Chiu di: l] [/ IN: f] [/ yn tnh]

ni <hex> l tp tin u vo trong nh dng Intel HEX, v <bin> l tp tin u ra nh phn. Cc <bin> tham s l ty chn. Khi b qua, tn tp tin c ngun gc t tn tp tin <hex>, nhng vi BIN m rng. Tt c cc tn tp tin c th c ch nh m khng cn m rng. Trong trng hp ny, chng trnh thm phn m rng mc nh nh hnh di y:

m rng tp tin -----------------------------HEX <hex>. BIN <bin>.

Nu bn mun c mt tn tp tin khng c phn m rng, chm dt n vi mt '.'! Thay v tn tp tin bn cng c th ch nh tn thit b chuyn hng u ra cho nhn vt cng I / O. Tn thit b c th kt thc vi mt ':'!

TH ANH NGUYN

33

N khng c kim tra, cho d thit b ang tn ti hoc ph hp cho cng vic.

Sn lng tp tin nh phn cng c th c kim sot vi cc ty chn / OFFSET, / IN v / Chiu di. Thng thng cc byte u tin trong tp tin nh phn l byte u tin ca HEX ghi li vi a ch ti thp nht. Nu mt s gi byte l c chn vo u tp tin (v d cho s lin kt trong mt hnh nh EPROM), iu ny c th c thc hin vi cc ty chn / OFFSET:

/ OFFSET: 1000

s chn 4.096 byte gi trc khi cc byte u tin ca bn ghi HEX u tin np. B p lun lun phi c xc nh nh mt s hex. Mc nh b p c 0. V c th c peepholes gia cc h s HEX, mt gi tr byte c th in c nh ngha vi ty chn / FILL:

/ IN: 0

s in vo tt c peepholes gia cc h s HEX vi byte cng nh tt c cc byte gi c th c a vo vi / OFFSET hoc / Chiu di ty chn. Gi tr byte in lun lun phi c xc nh nh mt s hex. in byte mc nh l FFH EPROM thn thin. Theo mc nh byte cui cng trong cc tp tin nh phn l byte cui cng ca HEX ghi li vi a ch ti cao nht. Nu cc tp tin nh phn nn c mt c xc nh r chiu di, sau mt s gi byte c th c ni vo tp tin (v d nh cho chnh xc ph hp vi chiu di EPROM), iu ny c th c thc hin

TH ANH NGUYN

34

vi cc ty chn / Chiu di:

/ Chiu di: 8000

bn s gn thm nh nhiu gi byte sau byte cui cng ca cc tp tin, rng tng chiu di tp tin tr nn chnh xc 32.768 byte. Chiu di tp tin phi lun lun c xc nh nh mt s hex. Khi HEXBIN c gi vi tt c cc ty chn trn, n c th hin th mt bo co chuyn i tp tin nh th ny:

Hex File Converter HEXBIN V2.3

b p: 1000H byte a ch u tin: 9000H a ch cui cng: A255H in peepholes vi: 00H hnh nh nh phn chiu di: 8000h byte

Ty chn / yn tnh ngn chn giao din iu khin u ra, trong khi thng bo li hin th bt k.

Ty chn c th vit tt nh min l h vn cn duy nht!

V d:

TH ANH NGUYN

35

0.) HEXBIN

Khi gi khng c tham s, HEXBIN hin th mt mn hnh tr gip:

Hex File Converter HEXBIN V2.3

s dng: HEXBIN <hexfile> [<binary>] [ty chn]

la chn: / OFFSET: offset / Chiu di: chiu di / FILL: fillbyte / Yn tnh

1.) CHNG TRNH HEXBIN

s chuyn i cc tp tin PROGRAM.HEX Intel HEX vo mt tp tin hnh nh nh phn tinh khit PROGRAM.BIN.

. 2) HEXBIN TARZAN.OBJ JUNGLE / IN: E5

s chuyn i cc tp tin TARZAN.OBJ Intel HEX vo mt tp tin hnh nh nh phn JUNGLE.BIN v in vo tt c peepholes gia cc bn ghi tp tin hex vi cc E5H gi tr nh phn.

3.) HEXBIN D N EPROM. / Off: 8000 / chiu di: 10000 / f: 0

s chuyn i cc tp tin PROJECT.HEX Intel HEX vo mt tp tin hnh nh nh phn

TH ANH NGUYN

36

EPROM, chn 32K gi byte trn u trang ca tp tin, in vo tt c peepholes v cc byte dummy vi null, v m rng cc tp tin chnh xc 64K.

Khi chm dt HEXBIN tr v mt m thot cho h iu hnh:

tnh hnh ERRORLEVEL ---------------------------------------------khng c li 0 li chuyn i pht hin 1 li thi gian chy gy t vong 2

Ngoi ra cn c mt phin bn giao din iu khin ch Win32 ca HEXBIN: HEXBINW.EXE! HEXBINW c chc nng ging vi HEXBIN, nhng c th x l tn tp tin di.

II.2 Linux thc hin ------------------------Cho n khi phin bn 1.2, ASEM-51 sn sng cho MS-DOS ch. thot khi h iu hnh DOS ban u "nhn v cm nhn", nhiu giao din cho h iu hnh phi c sa i hoc vit li, v d nh dng lnh ch bin, giao din iu khin I / O, x l tp tin, mi trng UNIX, v b nh qun l. Hn na, hnh vi chung ca cc chng trnh phi c ph hp vi cng c UNIX. Mt phn cn li nht nh ca h iu hnh DOS hng v vn c th cn li mc d. Mt khc, nhng chng trnh Linux c th c cc tp tin ASCII trong c hai H iu hnh DOS v nh dng UNIX. Tuy nhin, cc tp tin ASCII lun c vit nh dng UNIX. Tt c nhng khc bit ny lm cho n cn thit m t vic thc hin Linux

TH ANH NGUYN

37

trong mt phn ring bit!

II.2.1 tp tin -----------Lu tr ASEM-51 phn phi ca bn cho Linux nn cha sau nhm cc tp tin:

1.) Tay asem_51.doc ASEM-51 ca ngi s dng, nh dng ASCII tp tin ch mc docs.htm ca ti liu ASEM-51, nh dng HTML *. Htm trang tip theo ca ti liu HTML *. Gif GIF tham chiu bi cc trang HTML *. Jpg hnh nh JPEG c tham chiu bi cc trang HTML ASEM lp rp (Linux 386) asem.1 ngi n ng trang cho ASEM hexbin tin ch chuyn i hex-to-nh phn (Linux 386) hexbin.1 ngi n ng trang cho hexbin demo.a51 mt chng trnh mu 8051 lp rp *. MCU x l tp tin nh ngha ca 8.051 c phi sinh (Cho mt danh sch chi tit cc tp tin MCU xem chng "VI H tr. Ca 8.051 phi sinh")

2.) Tay boot51.doc BOOT-51 ca ngi s dng, nh dng ASCII tp tin ch mc boot51.htm ca ti liu BOOT-51, nh dng HTML boot51.a51 BOOT-51 ngun lp rp (ASEM-51 V1.3 tr ln) customiz BOOT-51 tin ch ty chnh (Linux 386) customiz.1 ngi n ng trang cho customiz

TH ANH NGUYN

38

khi ng kch bn cho chng trnh ng dng ti ln boot.1 ngi n ng trang cho khi ng ti ln gi l khi ng ch (phin bn chung) upload.new "mi" ti ln (ti u ha cho stty 2.0 hoc mi hn) reset51 chng trnh thit lp li h thng ch thng qua cng my tnh reset51.1 ngi n ng trang cho reset51 blink.a51 chng trnh th nghim mu cho BOOT-51

3.) README.1ST thng tin nhanh chng, nh dng ASCII license.doc ASEM-51 License Agreement, nh dng ASCII release.130 ASEM-51 Ghi ch Pht hnh, nh dng ASCII support.doc ASEM-51 Hng dn h tr, nh dng ASCII install.sh to ra mt thch hp ci t ASEM-51 trong Linux xa uninst51.sh tt c cc file ca gi ASEM-51 (Linux)

II.2.2 ci t trong Linux ------------------------------ASEM-51 cho Linux c sn nh l mt kho lu tr tar v mt gi rpm. Nu bn nhn c cc gi rpm, ng nhp nh l ngi ch v ch cn g

rpm-i asem51-1.3-1.i386.rpm

Cc gi rpm c th nghim trn SuSE Linux-ch, nhng cng nn lm vic trn cc bn phn phi Linux khc p ng cc tiu chun th mc m bo VSATTP. Nu bn c c kho lu tr tar, thc hin cc bc sau:

TH ANH NGUYN

39

gzip-d asem51-1.3-ELF.tar.gz tar xvf asem51-1.3-ELF.tar cd asem51 sh install.sh

Nu bn ang ci t ASEM-51 nh l ngi ch (a thch), cc kch bn ci t install.sh s ci t ton b gi trong / usr/local/share/asem-51/1.3, v thit lp mt s lin kt tng trng trong / usr / local / bin v / usr/local/man/man1.

Nu bn ang ci t ASEM-51 theo mt s ID, install.sh c gng ci t phn mm trong th mc chnh ca bn di ~ / asem-51/1.3, v thit lp mt s lin kt tng trng trong ~ / bin v ~ / man/man1.

Xem chi tit cc thng bo, install.sh c hin th trn giao din iu khin, v lm mt s iu chnh cho ph hp:

Nu bn cha ci t ASEM-51 nh l ngi ch, n c th l cn thit thm ~ / Bin vo PATH ca bn, v ~ / ngi n ng MANPATH ca bn.

xc nh mt con ng tm kim bao gm cc tp tin *. MCU cung cp, bn c th xc nh mt mi trng ty chn bin ASEM51INC. i vi iu ny, bash, ksh, v ngi s dng sh nn chn on m di y vo tp tin h s ca h.:

ASEM51INC = / usr/local/share/asem-51/1.3/mcu xut khu ASEM51INC

TH ANH NGUYN

40

csh, tcsh, v ngi s dng zsh nn chn dng sau vo h ng nhp tp tin tng ng.:

setenv ASEM51INC / usr/local/share/asem-51/1.3/mcu

Nu bn ci t ASEM-51 trong th mc chnh ca bn, nn ASEM51INC im vo ~ / asem-51/1.3/mcu tt nhin.

c hng dn s dng HTML, gi trnh duyt web ca bn v nh du cc trang ch mc

/ Usr/local/share/asem-51/1.3/html/docs.htm (ci t nh l ngi ch) ~ / Asem-51/1.3/html/docs.htm (ci t cc b)

Lu rng bn khng th thit lp li h thng mc tiu 8051 ca bn vi mt cng my in my tnh, nu bn cha ci t ASEM-51 nh l ngi ch! ( bit chi tit xem ti liu BOOT-51 cung cp.)

Nu bn ci t ASEM-51, nhng bn khng thch n, bn c th d dng g b ci t n. Nu bn ci t gi rpm, ch cn g

rpm-e asem51

Nu bn ci t cc kho lu tr tar chung chung, hy chc chn g b ci t ASEM-51 di cng mt s ID trc bn s dng ci t! Chy

uninst51.sh

TH ANH NGUYN

41

v l n.

II.2.3 Linux lnh hot ng dng ----------------------------------Trong Linux, cc nh lp rp c gi bng cch g:

ASEM [<options>] <source> [<object> [<listing>]]

ni <source> l ngun lp rp 8051, <object> l u ra tp tin, v <listing> l tp tin danh sch lp rp. Tt c cc tn tp tin c ch nh mt cch r rng, cn li khng thay i. Cc thng s <object> v <listing> l ty chn. Khi b qua, tn tp tin <object> c ngun gc t tn tp tin <source>, nhng vi m rng "hex." (hoc ". OMF"). Khi tn tp tin <listing> c b qua, n c ngun gc t tn tp tin <object>, nhng vi phn m rng "lst.":

m rng tp tin ----------------------------------------------<object> hex (vi tu chn-o:. OMF). lst <listing>.

Thay v tn tp tin bn cng c th ch nh tn thit b chuyn hng u ra I / O thit b. Tn thit b c cho l bt u vi "/ dev /". Tt nhin khng c phn m rng s c thm vo tn thit b! N khng c kim tra, cho d thit b ang tn ti hoc ph hp cho cng vic. Mc d c th c cc tp tin ngun t mt thit b vt

TH ANH NGUYN

42

thay v mt tp tin, iu ny khng c khuyn co: K t khi ASEM-51 l mt hai-pass lp rp, n lun lun c cc tp tin ngun hai ln! Chiu di ti a ca mt tham s tp tin c gii hn trong 255 k t!

ASEM cng nhn cc ty chn sau y:

ty chn ngn | ty chn di -------------------------- + ----------------------- ---------I path1: path2: path3 | - bao gm = path1: path2: path3 -D biu tng [: gi tr [: type]] | - xc nh = biu tng [: gi tr [: type]] -O | - OMF-51 C-| - ct -V | - verbose

Cc ty chn ngn hn v di trong cng mt hng l tng ng. Ty chn di c th vit tt nh min l h vn cn c o. Tt c cc tn ty chn l trng hp nhy cm!

Khi - bao gm cc ty chn c s dng, lp rp tm kim cc quy nh con ng bao gm cc tp tin khng th c tm thy trong th mc lm vic. ng dn c th l bt k s lng cc th mc cch nhau bng ':' k t. Cc th mc s c tm kim t tri sang phi. ng dn, quy nh vi - bao gm cc ty chn, c tm kim trc con ng, c nh ngha vi (ty chn) bin mi trng ASEM51INC! Chiu di ng i ti a c gii hn trong 255 k t.

Cc - xc nh ty chn l hu ch cho vic la chn cc bin th chng trnh c th

TH ANH NGUYN

43

t dng lnh c thc hin vi iu kin lp rp. N cho php xc nh mt biu tng vi mt gi tr v mt loi phn khc trong dng lnh. Gi tr v loi l ty chn. Cc loi phn on ca cc biu tng mc nh l s, nu b qua. Biu tng mc nh gi tr l 0, nu b qua. Gi tr biu tng c th l bt k hng s. Cc loi biu tng phi l mt cc nhn vt sau y:

C = CODE D = D LIU I = IDATA X = XDATA B = BIT N = s (mc nh)

Theo mc nh, ASEM-51 to ra mt i tng tp tin nh dng Intel hex. Khi cc - OMF-51 ty chn c ch nh, tuyt i OMF-51 m-un c to ra.

V d:

0.) ASEM

Khi gi khng c tham s, lp rp s hin th mt mn hnh tr gip:

MCS-51 gia nh Macro Assembler ASEM-51 V1.3

s dng: ASEM [ty chn] <source> [<object> [<listing>]]

TH ANH NGUYN

44

la chn:-i - bao gm = path1: path2: path3 -D - xc nh = biu tng [: gi tr [: type]] -O - OMF-51 -C - ct -V - verbose

1.) ASEM program.a51

s lp rp cc ngn ng lp rp chng trnh program.a51 8051 v to ra mt tp tin program.hex Intel HEX v program.lst danh sch.

2.) ASEM tarzan.asm jane jungle.prn

s lp rp cc ngn ng lp rp chng trnh tarzan.asm 8051 v sn xut mt tp tin Intel HEX jane v jungle.prn danh sch.

3.) ASEM d n EPROM

s lp rp cc chng trnh d n lp rp 8.051 ngn ng v to ra mt tp tin EPROM Intel HEX v eprom.lst danh sch.

4.) ASEM-o rover.a51

s lp rp cc ngn ng lp rp chng trnh rover.a51 8051 v sn xut tuyt i OMF-51 i tng m-un rover.omf v rover.lst danh sch.

5.) ASEM sample.a51 / dev/ttyS0 / dev / null

TH ANH NGUYN

45

s lp rp cc ngn ng lp rp chng trnh sample.a51 8051, gi sn lng tp tin hex vi giao din ni tip / dev/ttyS0 v ngn chn sn lng tp tin danh sch bng cch gi n n thit b / dev / null.

. 6) ASEM-i / usr/local/include/asem-51: ~ / 8051/inc app.a51

s lp rp cc chng trnh app.a51, trong khi tt c cc yu cu bao gm tp tin s c tm kim u tin trong th mc mc nh, sau trong / Usr/local/include/asem-51, v cui cng trong ~ / 8051/inc.

. 7) ASEM - xc nh = Eva_Board: 8000h: C universal.a51

s lp rp cc chng trnh universal.a51, trong khi cc biu tng M EVA_BOARD s c xc nh trc vi 8000h gi tr trong qu trnh lp rp.

Khi li chng trnh c pht hin, thng bo li tng ng l u ra li tiu chun. iu ny c th xem xt nh sau:

applicat.a51 (14): phi c bit n trn o u tin userbits.inc (6): c gng chia cho s khng defines.inc (37): biu tng khng xc nh applicat.a51 (20): biu tng khng xc nh applicat.a51 (27): khng c tuyn b END tm thy

TH ANH NGUYN

46

Tt c cc li c nh du vi tn ca cc ngun hoc bao gm cc tp tin, s dng a phng ni n c tm thy, v cc thng bo li ca chnh n. nh dng u ra ny cung cp mt ci mc chy ASEM-51 t IDE ca bn th ba. Mt hon ton ph hp c th t c vi cc - ct ty chn. Khi xc nh, s ct ca li chng trnh l u ra b sung sau khi s dng:

applicat.a51 (14,12): phi c bit n trn o u tin userbits.inc (6,27): c gng chia cho s khng defines.inc (37,18): biu tng khng xc nh applicat.a51 (20,18): biu tng khng xc nh applicat.a51 (27,1): khng c tuyn b END tm thy

Nu sai st c pht hin trong ng dy m rng v m, khng c tng ng v tr trong tp tin ngun. Do , cc li c nh du vi tn ca ngun hoc tp tin bao gm, v s dng a phng t ni m rng v m c gi. (i vi cc macro c th c gi l dng vi cc cuc gi v m, v cho cc khi lp li ny l dng endm.) cung cp cho ngi s dng mt gi , tn v m v dng m rng (v ty chn ct) s c chn vo trc cc thng bo li thc t:

uartio.a51 (44,1): nhn c (3,22): phn loi khng ph hp uartio.a51 (87,1): REPT (4,19): biu tng khng xc nh uartio.a51 (87,1): REPT (8,19): biu tng khng xc nh

TH ANH NGUYN

47

uartio.a51 (87,1): REPT (12,19): biu tng khng xc nh

S dng m rng l s dng m rng trong m rng v m tng ng, bt u t 1. Nu li xy ra trong qu m rng ca mt khi lp li, cc REPT t kha thay th tn v m.

Theo mc nh, ASEM-51 l hon ton "yn tnh", nu khng c li c pht hin. Nu - verbose ty chn c ch nh, sn phm b sung, phin bn, v thng tin tm tt li c ghi vo u ra tiu chun:

MCS-51 gia nh Macro Assembler ASEM-51 V1.3

uartio.a51 (44,1): nhn c (3,22): phn loi khng ph hp uartio.a51 (87,1): REPT (4,19): biu tng khng xc nh uartio.a51 (87,1): REPT (8,19): biu tng khng xc nh uartio.a51 (87,1): REPT (12,19): biu tng khng xc nh

4 li c pht hin

Khi chm dt, ASEM-51 tr v mt m s xut cnh qu trnh ku gi:

m s xut cnh tnh hnh --------------------------------------------khng c li 0

TH ANH NGUYN

48

li chng trnh pht hin 1 li thi gian chy gy t vong 2

Lu : Pht cnh co cng l u ra v li tiu chun, nhng khng nh hng n cc m thot!

II.2.4 Linux Mi trng ----------------------- xc nh mt con ng tm kim bao gm cc tp tin, mt bin mi trng ty chn ASEM51INC c th c nh ngha:

. 1) i vi bash, ksh, v sh:

ASEM51INC = <path> xut khu ASEM51INC

. 2) i vi csh, tcsh v zsh:

setenv ASEM51INC <path>

<path> c th l bt k s lng cc th mc cch nhau bng ':' k t. Hy chc chn rng ton b ngha khng cha bt k khong trng hoc cc tab! Nu ASEM51INC c xc nh, cc nh lp rp tm kim cc <path> quy nh cho bao gm cc tp tin khng th c tm thy trong th mc lm vic, cng khng phi trong con ng tm kim ch nh vi - bao gm cc ty chn. Cc th mc <path> s c tm kim t tri sang phi.

TH ANH NGUYN

49

V d:

. 1) bash: ASEM51INC = / usr/local/include/asem-51: ~ / micros/mcs51/inc xut khu ASEM51INC

Nu bao gm cc tp tin khng th c tm thy trong th mc lm vic, cng khng phi trong - bao gm ng dn (nu c ch nh), cc tm kim lp rp tip theo / usr/local/include/asem-51 v cui cng ~ / micros/mcs51/inc.

2) csh.: setenv ASEM51INC / usr/local/include/asem-51

Nu ASEM51INC c xc nh nh trn trong ng nhp., Lp rp cui cng tm kim cc th mc / usr/local/include/asem-51 cho bao gm cc.

Chiu di ti a ca <path> c gii hn trong 255 k t.

II.2.5 Cc HEXBIN Tin ch ------------------------Hu ht cc lp trnh EPROM phi chp nhn cc nh dng tp tin Intel HEX m l u ra ca ASEM-51. Tuy nhin, cho l t EPROM cm v mc ch c bit n c th l hu ch chuyn i cc tp tin HEX vo mt tp tin hnh nh nh phn tinh khit. i vi iu ny cc tin ch chuyn i hexbin c cung cp. N c gi nh sau:

TH ANH NGUYN

50

hexbin [<options>] <hexfile> [<binary>]

ni <hexfile> l tp tin u vo trong nh dng Intel HEX, v <binary> l tp tin u ra nh phn. Tt c cc tn tp tin c ch nh mt cch r rng, cn li khng thay i. Cc <binary> tham s l ty chn. Khi b qua, cc tn tp tin c ngun gc t <hexfile>, nhng vi phn m rng "thng rc.". Chiu di ti a ca mt tham s tp tin c gii hn trong 255 k t!

Thay v tn tp tin bn cng c th ch nh tn thit b chuyn hng u vo hoc sn lng I / O thit b. Tn thit b c cho l bt u vi "/ dev /". Tt nhin khng c phn m rng s c thm vo tn thit b! N khng c kim tra, cho d thit b ang tn ti hoc ph hp cho cng vic.

hexbin nhn cc ty chn sau y:

ty chn ngn | ty chn di --------------- + ---------------------O <offset> | - offset = <offset> -L <length> | - chiu di = <length> -F <fillbyte> | - in = <fillbyte> -V | - verbose

Cc ty chn ngn hn v di trong cng mt hng l tng ng. Ty chn di c th vit tt nh min l h vn cn c o. Tt c cc tn ty chn l trng hp nhy cm!

TH ANH NGUYN

51

Sn lng tp tin nh phn c th c kim sot vi cc ty chn - b p, - in vo v - chiu di. Thng thng cc byte u tin trong tp tin nh phn l byte u tin ca HEX ghi li vi a ch ti thp nht. Nu mt s gi byte l c chn vo u tp tin (v d cho s lin kt trong mt hnh nh EPROM), iu ny c th c thc hin vi cc - b p ty chn:

- B p = 1000

s chn 4.096 byte gi trc khi cc byte u tin ca bn ghi HEX u tin np. B p lun lun phi c xc nh nh mt s hex. Mc nh b p c 0. V c th c peepholes gia cc h s HEX, mt gi tr byte c th in c xc nh vi - in ty chn:

- in = 0

s in vo tt c peepholes gia cc h s HEX vi byte cng nh tt c cc byte gi c th c a vo vi - b p hoc - La chn chiu di. Gi tr byte in lun lun phi c xc nh nh mt hex s. in byte mc nh l FFH EPROM thn thin. Theo mc nh byte cui cng trong cc tp tin nh phn l byte cui cng ca HEX ghi li vi a ch ti cao nht. Nu cc tp tin nh phn nn c mt c xc nh r chiu di, sau mt s gi byte c th c ni vo tp tin (v d nh cho chnh xc ph hp vi chiu di EPROM), iu ny c th c thc hin vi ty chn - chiu di:

TH ANH NGUYN

52

- Chiu di = 8000

bn s gn thm nh nhiu gi byte sau byte cui cng ca cc tp tin, rng tng chiu di tp tin tr nn chnh xc 32.768 byte. Chiu di tp tin phi lun lun c xc nh nh mt s hex.

Theo mc nh, hexbin l hon ton "yn tnh", nu khng c li c pht hin. Nu - verbose ty chn c ch nh, sn phm v phin bn thm thng tin, bo co chuyn i tp tin c ghi vo u ra tiu chun:

Hex File Converter HEXBIN V2.3

b p: FF0H byte a ch u tin: 7FF0H a ch cui cng: 8255H in peepholes vi: A5H hnh nh nh phn chiu di: 2000H byte

V d:

0.) Hexbin

Khi gi khng c tham s, hexbin hin th mt mn hnh tr gip:

Hex File Converter HEXBIN V2.3

TH ANH NGUYN

53

s dng: hexbin [ty chn] <hexfile> [<binary>]

la chn:-o - khong b <offset> -L - chiu di = <length> -F - in = <fillbyte> -V - verbose

1.) Hexbin program.hex

s chuyn i cc tp tin program.hex Intel HEX vo mt tp tin hnh nh nh phn tinh khit program.bin.

2.) Hexbin-f E5 tarzan.obj jungle.bin

s chuyn i cc tp tin tarzan.obj Intel HEX vo mt tp tin hnh nh nh phn jungle.bin v in vo tt c peepholes gia cc bn ghi tp tin hex vi cc E5H gi tr nh phn.

3) hexbin -. Tt = 8000-l10000 - in = 0 project.hex EPROM

s chuyn i cc tp tin project.hex Intel HEX vo mt tp tin hnh nh nh phn EPROM, chn 32K gi byte trn u trang ca tp tin, in vo tt c peepholes v cc byte dummy vi null, v m rng cc tp tin chnh xc 64K.

Khi chm dt hexbin tr v mt m s xut cnh qu trnh ku gi:

TH ANH NGUYN

54

m s xut cnh tnh hnh --------------------------------------------khng c li 0 li chuyn i pht hin 1 li thi gian chy gy t vong 2

II.3 Chng trnh DEMO -------------------- nhn c bt u vi mt lp rp mi, n lun lun l hu ch c mt chng trnh c th c lp rp vi n. Vi mc ch ny, 8051 lp rp chng trnh DEMO.A51 c cung cp, c th c s dng cho ln u tin kim tra cc ci t ASEM-51. i vi iu ny, bn nn hoc ci t ASEM-51 nh m t trn, hoc gi tt c cc file ca gi ASEM-51 trc tip trong th mc lm vic ca bn!

Di MS-DOS hoc trong mt ca s DOS-Box ch cn g

ASEM DEMO HEXBIN DEMO

ti du nhc DOS. ASEM v HEXBIN s kt thc m khng c li v bn cn phi c cc tp tin mi sau trn a cng ca bn:

DEMO.HEX tp tin Intel HEX DEMO.LST lp rp tp tin danh sch cc DEMO.A51 DEMO.BIN tp tin hnh nh nh phn ca DEMO.HEX

TH ANH NGUYN

55

Theo loi Linux

ASEM demo.a51 hexbin demo.hex

Mt ln na ASEM v hexbin s kt thc m khng c li v bn cn phi c cc tp tin mi sau trn a cng ca bn:

demo.hex tp tin Intel HEX demo.lst lp rp tp tin danh sch cc demo.a51 demo.bin tp tin hnh nh nh phn ca demo.hex

Nu c iu g sai, hoc ASEM-51 khng c ci t ng cch, c c th l tp tin b mt trong phn phi ca bn, hoc ch n gin l c th lp rp khng tm 8052.mcu tp tin bao gm! demo.a51 cng c th phc v nh mt chng trnh lp rp mu bao gm cc v d cho (gn nh) tt c cc hng dn ca my, hng dn gi, lp rp kim sot v hng dn siu c thc hin trong khun kh ASEM-51. Bt c khi no nghi ng cch s dng mt lnh no , c th l mt demo.a51 gip qu bu. Khng ging nh cc nh lp rp khc, cc tp tin danh sch ASEM-51 c tnh nng chng ngoi phm! N thc s l bi hc so snh ngun gc to ra cc m trong danh sch.

III. ASEM-51 hi Ngn ng

TH ANH NGUYN

56

================================== Ngi s dng nn quen thuc vi 8.051 vi iu khin v lp rp ngn ng lp trnh. Hng dn ny s khng gii thch kin trc ca MCS-51 vi iu khin gia nh n cng s tho lun v cc khi nim c bn ca ngn ng lp trnh lp rp. N ch m t c php chung bo co lp rp v hng dn lp rp c thc hin trong khun kh ASEM-51.

III.1 co ---------------Tp tin m ngun bao gm mt chui cc cu lnh ca mt trong cc hnh thc:

[Biu tng:] [hng dn [cc tham s]] [; bnh lun]

biu tng hng dn lun [; bnh lun]

$ Kim sot [(i s)] [; bnh lun]

Tt c nhng g c vit trong du ngoc l ty chn. Chiu di ti a ca dng m ngun l 255 k t. Tt c mi th t cc ',' nhn vt cui dng c gi nh l bnh lun. Dng trng c coi l bnh lun, qu. Cc yu t t vng ca mt tuyn b c ngn cch bi khong trng v cc tab. Ngoi cc hng chui k t, ch hoa v ch thng l tng ng.

TH ANH NGUYN

57

V d: Y: MOV A, # 0FFH; xc nh nhn Y v ti A vi FFH

NM EQU 2002; xc nh biu tng cho nm hin ti

$ INCLUDE (80C517.MCU), bao gm cc nh ngha SAB80C517 ng k

III.2 Biu tng ------------Biu tng l tn ngi dng nh ngha cho a ch, s in thoi hoc macro. Chiu di ti a ng k ca h l 31 k t. H c th thm ch di hn, nhng tt c mi th pha sau 31 k t u tin c b qua. Biu tng c th bao gm ch ci, ch s, '_' v '?' k t. Mt tn biu tng khng phi bt u bng mt ch s! Trn v ch thng c coi l tng ng. Lu : cc t kha ngn ng hi phi khng c nh ngha li nh l biu tng ngi s dng!

V d: Is_this_really_a_SYMBOL_? l mt tn biu tng hp php!

III.3 hng --------------Hng s bao gm mt chui cc ch s, tip theo l mt c s specifier. K t u tin phi lun lun l mt ch s thp phn. Cc ch s quy phm php lut v c s specifiers l:

ch s khng i c s

TH ANH NGUYN

58

-----------------------------------nh phn 0 ... 1 B bt phn 0 ... 7 Q hoc O s thp phn 0 ... 9 D hoc khng c hex 0 ... F H

V vy, v d, cc hng s sau l tng ng:

Nh phn 1111111B 177Q bt phn 177o bt phn 127 s thp phn S thp phn 127d Hex 07FH

Hng s nhn vt c th c s dng bt c ni no mt gi tr s c cho php. Mt nhn vt lin tc bao gm mt hoc hai k t in km trong du nhy n hoc i. Cc nhn vt bo chnh n c th c biu din bi hai du ngoc kp sau. V d:

'X' 8 bit khng i: 58H "Mt @" 16 bit khng i: 6140H '''' 8 bit khng i: 27H

Trong bo co DB, cc hng s nhn vt c th c di bt k. Trong trng hp ny, chng ti gi n l mt chui k t. V d:

TH ANH NGUYN

59

"y ch l vn bn!"

III.4 biu ----------------Biu thc s hc gm cc php ton, cc nh khai thc v du ngoc n. Ton hng c th l biu tng ngi dng nh ngha, cc hng s hoc k hiu lp rp c bit. Tt c cc ton hng c coi l unsigned s 16-bit. Biu tng lp rp c bit, c th c s dng nh l ton hng l:

AR0, ... , AR7 a ch trc tip thanh ghi R0 qua R7

$ Quy v tr ca phn khc hin ang hot ng (Bt u a ch ca bo co kt qu lp rp hin hnh)

Cc nh khai thc sau y c thc hin:

Khai thc nguyn phn: + bn sc: + x = x - B sung hai ca:-x = 0-x B sung khng mt ngi: KHNG x = FFFFh-x CAO t byte cao LOW t byte thp

Nh iu hnh nh phn: + Ngoi ra unsigned - Du tr * Unsigned nhn B phn / unsigned

TH ANH NGUYN

60

MOD cn li du S thay i hp l SHL li SHR dch phi logic V hp l v HOC hp l hoc XOR c quyn hoc . iu hnh bit c s dng cho cc v tr bit adressable EQ hoc = bng ----. Bc hoc <> khng bng | kt qu l: Di hn hoc <t hn | LE hoc <= t hn hoc bng hn | 0 nu FALSE GT hoc> ln hn | FFFFh nu TRUE GE hoc> = ln hn hoc bng hn ____ |

Nh khai thc m khng c k t c bit nhng cc t kha nh SHR hoc v phi c tch ra t ton hng ca h t nht mt trng hoc tab. Ni chung biu thc c nh gi t tri sang phi theo th t u tin, c th c ghi bi cc du ngoc n. Ngoc n c th c lng vo nhau cc cp. Biu thc lun lun nh gi unsigned s 16-bit, trong khi trn c b qua. Khi mt kt qu biu hin l c giao cho mt 8-bit s lng, cc byte cao phi l 00 hoc FF.

Th t u tin: -------------------------------------------------- --------------() ^ Cao nht + - KHNG CAO LOW (nguyn phn) |

TH ANH NGUYN

61

.| * / MOD | SHL SHR | + - (Nh phn) | EQ = NE <> LT <LE <= GT> GE> = | V | HOC XOR v thp nht -------------------------------------------------- ---------------

V d:. Cc P1 biu thc ((87 +3) / 10 v -1 SHR 0DH) s nh gi 91H.

III.5 8051 Instruction Set -----------------------------ASEM-51 thc hin tt c 8.051 hng dn ca my bao gm nhy chung v cc cuc gi. Lp rp thc hin hai hng dn

JMP <address> GI <address>

khng i din cho mt m my c th: nhy chung v cuc gi. Nhng hng dn ny s lun lun nh gi mt c nhy hay cuc gi, khng nht thit phi ngn nht, s n c a ch c th. JMP c th lp rp SJMP, AJMP hoc LJMP, trong khi CALL ch c th nh gi ACALL hoc LCALL. Lu rng quyt nh lp rp c th khng c ti u. Cho a ch m c chuyn tip ti liu tham kho, cc nh lp rp lun lun to ra LJMP hoc LCALL tng ng. Tuy nhin, ti liu tham kho lc hu ny l mt

TH ANH NGUYN

62

cng c mnh m gim kch thc m m khng cn thm rc ri.

Vi $ PHILIPS kim sot, ASEM-51 c th c chuyn sang cc hng dn gim thit lp ca Philips 83C75x gia nh ca vi iu khin. iu ny v hiu ha cc LJMP, LCALL, v MOVX hng dn cng nh XDATA v XSEG hng dn gi, v nhy chung v cc cuc gi s lun lun lp rp gii quyt tuyt i.

Phn cn li ca 8051 hng dn gip tr nh c lit k trong Ph lc D. Ph lc I v J c cha bng ca tt c cc lnh ca 8051 vi opcodes ca h, gip tr nh, lp lun, chiu di, c b nh hng v thi gian. Chng trnh v d ton din DEMO.A51 cung cp cho thy tt c 8051 hng dn trong mt bi cnh c php.

bit thng tin chi tit v MCS-51 kin trc v hng dn ca Intel thit lp tham kho ti liu HTML tp tin MCS51MAN.HTM cung cp. (Cn phi c mt trnh duyt web y v truy cp Internet!)

Tt c MCS-51 gip tr nh hng dn c bn quyn (c) do tp on Intel!

III.6 Hng dn Pseudo ------------------------Trong on vn sau , tt c cc lnh gi ASEM-51 c m t. Biu tng t vng c vit bng ch thng, trong khi cc t kha lp rp c vit bng ch hoa. i s hng dn c i din bi <arg>, <arg1> hoc mt ci g nh . Biu thc s c i din bi <expr>, <expr1> v nh vy.

TH ANH NGUYN

63

T v cu trc bn trong du ngoc l ty chn. Du chm lng "..." lun lun c ngha l "mt danh sch vi bt k s lng cc yu t".

DB <arg1> [, <arg2> [, <arg3> ... ]] Xc nh byte

Hng dn DB bo lu v khi to mt s byte vi cc gi tr c xc nh bi cc i s. Cc i s hoc c th biu thc (m phi nh gi cc gi tr 8-bit) hoc k t chui di bt k. DB ch c php trong phn khc M!

V d: DB 19, 'Thng Mt', 98, (3 * 7 +12) / 11

DW <expr1> [, <expr2> [, <expr3> ... ]] Xc nh t

Hng dn DW bo lu v khi to mt s t vi cc gi tr c xc nh bi cc i s. Mi l lun c th l mt biu hin c on v yu cu hai byte ca khng gian. DW ch c php trong phn khc M!

V d: DW 0,0 C800H, 1999,4711

DS <expr> xc nh khng gian

D tr mt s byte cha c khi to trong cc phn on hin nay.

TH ANH NGUYN

64

Gi tr ca <expr> phi c bit n trn qua 1! DS c cho php trong mi phn on, ngoi tr trong phn khc BIT!

V d: DS 200H

DBIT <expr> xc nh bit

D tr mt s bit cha c khi to. Gi tr ca <expr> phi c bit n trn qua 1! DBIT ch c php trong phn khc BIT!

V d: DBIT 16

TN <symbol> xc nh tn m-un

nh ngha mt tn m-un cho cc tp tin OMF-51 i tng. Nu khng c tn m-un c xc nh, cc tn m-un c ngun gc t tn tp tin ngun. Khi to tp tin u ra Intel HEX, hng dn TN khng c c hiu lc. Cc tn module phi l mt biu tng lp rp php l. Ch c mt TN hng dn c cho php trong chng trnh. Biu tng Tuy nhin, c th c nh ngha li trong cc chng trnh tip theo.

V d: Tn My_1st_Program

TH ANH NGUYN

65

ORG <expr> ngun gc ca v tr phn khc

Thit lp truy cp v tr ca phn on hin nay cc <expr> gi tr. Gi tr ca <expr> phi c bit n trn qua 1! N phi ln hn hoc bng a ch c s phn khc. Gi tr mc nh ca tt c cc quy v tr ti chng trnh bt u l 0.

V d: ORG 08000H

S DNG <expr> s dng ngn hng ng k

Thit lp cc ngn hng ng k s dng <expr>, m cn phi c trong phm vi t 0 ... 3. Hng dn S DNG ch nh hng n gi tr ca cc biu tng lp rp c bit AR0, ... , AR7 i din trc tip a ch ng k R0, ... , R7 trong cc ngn hng ng k hin hnh. Gi tr ca <expr> phi c bit n trn qua 1! Gi tr mc nh cho cc ngn hng ng k l 0.

V d: S DNG 1

END kt thc chng trnh

iu ny phi c bo co cui cng trong tp tin ngun. Sau khi kt thc tuyn b ch bnh lun v dng trng c php!

TH ANH NGUYN

66

V d: END; kt thc chng trnh

<symbol> EQU <expr> xc nh hng s <symbol> EQU <reg> xc nh bt bin ng k <symbol> SET <expr> xc nh bin s <symbol> SET <reg> xc nh bin ng k

Hng dn EQU nh ngha mt biu tng cho mt hng s hoc mt ng k. Nu mt biu thc <expr> s c gn cho biu tng, n s l ca s loi. Nu mt <reg> ng k c gn cho biu tng, n s l loi NG K. <reg> c th l mt trong nhng biu tng lp rp c bit A, R0, R1, R2, R3, R3, R4, R5, R6, R7 hay. Mt biu tng nh ngha vi EQU khng bao gi c th c thay i! Hng dn SET ang lm vic kh ging vi EQU. Tuy nhin, biu tng nh ngha vi SET c th c nh ngha li vi hng dn SET tip theo! Cc gi tr ca <expr> v <reg> phi c bit n trn qua 1! Mt biu tng c SET, khng c th c nh ngha li vi EQU! Mt biu tng c EQU'd khng c th c thit lp li! Trn vt qua 2, ti liu tham kho hng n mt biu tng SET lun lun nh gi vi gi tr cui cng, biu tng c SET vo qua 1. ng k biu tng c th c s dng nh l ton hng hng dn trong ton b chng trnh thay v ng k tng ng. Ti liu tham kho v pha trc ng k biu tng khng c php!

V d: MAXMONTH EQU 12 Thng Mi EQU MAXMONTH-2

TH ANH NGUYN

67

COUNTREG EQU R5

Chng SET 1 Chng SET Chng 1 Chng SET Mt

<symbol> M a ch <expr> xc nh ROM <symbol> D LIU <expr> xc nh a ch b nh RAM trc tip <symbol> IDATA <expr> xc nh a ch b nh RAM gin tip <symbol> BIT <expr> a ch xc nh bit a ch b nh RAM <symbol> XDATA <expr> xc nh bn ngoi

Cc hng dn xc nh a ch tng trng cho nm 8051 phn on b nh (khng gian a ch). Cho D LIU, IDATA v BIT loi biu tng, gi tr ca <expr> khng c vt qu 0FFH! Gi tr ca <expr> phi c bit n trn qua 1! Mt khi xc nh vi mt trong nhng hng dn trn, nhng biu tng khng th c nh ngha li.

V d: EPROM M 08000H Sp xp d liu 7 V24BUF IDATA 080H BIT REDLED P1.5 LY MU XDATA 0100h

TH ANH NGUYN

68

CSEG [AT <expr>] chuyn sang phn khc M [a ch] DSEG [AT <expr>] chuyn sang DATA on [a ch] ISEG [AT <expr>] chuyn sang IDATA on [a ch] BSEG [AT <expr>] chuyn sang phn khc BIT [a ch] XSEG [AT <expr>] chuyn sang phn khc XDATA [a ch]

Cc hng dn chuyn sang mt trong nm 8051 khng gian a ch. Nu mt a ch c s phn on c ch nh vi "AT <expr>", mt mi phn khc tuyt i c bt u, v truy cp v tr c thit lp <expr>. Nu "AT <expr>" c b qua, b m v tr gi gi tr trc ca cc phn on c th. Gi tr ca <expr> phi c bit n trn qua 1! Ti chng trnh bt u, cc phn on mc nh l M v a ch c s v b m v tr ca tt c cc phn on c thit lp khng.

V d: DSEG; chuyn sang DATA on trc

CSEG AT 8000h; bt u mt on CODE mi ti a ch 8000h

XSEG ti 0, bt u mt phn khc XDATA mi ti a ch 0

III.7 Loi Segment -----------------Mi biu hin thi gian lp rp c phn cng mt loi phn khc, ty thuc vo ton hng v hot ng ca n. Cc loi phn khc cho cc khng gian a ch, kt qu biu hin c th thuc v, nu n c s dng nh mt a ch.

TH ANH NGUYN

69

C su loi phn khc c th:

M D LIU IDATA XDATA BIT S (typeless)

Hu ht cc kt qu biu hin c cc loi s phn khc. iu c ngha h gi nh l typeless. Tuy nhin, trong mt s trng hp, n c th hu ch gn mt loi phn khc c bit! Su quy tc sau y c p dng khi cc loi phn khc c nh gi:

1. Hng s lun typeless. Do loi phn khc ca h l s.

2. Biu tng c giao mt loi phn khc trong nh ngha. Biu tng c xc nh vi EQU hoc SET khng c loi phn khc. Nhn c c nhng loi phn on ca phn khc hin ang hot ng.

3. Kt qu ca mt hot ng nguyn phn (+, -, khng, cao, thp) s c cc loi phn on ca ton hng ca n.

4. Kt qu ca tt c cc hot ng nh phn (ngoi tr "+", "-", "." V) s khng c loi phn khc.

TH ANH NGUYN

70

5. Nu ch c mt ton hng trong mt s nh phn "+" hoc "-" hot ng c mt phn khc loi, sau kt qu s c kiu phn on, qu. Trong tt c cc khc trng hp, kt qu s khng c loi phn khc.

6. Kt qu ca cc hot ng cht "." s lun lun c phn khc g BIT.

V d: --------- Cc biu tng sau y c xc nh trong chng trnh:

OFFSET EQU 16 BT U 30H M DOIT M 0100h BIT REDLED P1.3 VARIAB4 D LIU 20H PORT D LIU 0C8H Relay EQU 5

1.) Nhng biu hin BT U + 3 OFFSET s c cc loi phn khc M. 2.) START biu + DOIT s typeless. 3.) Nhng biu hin DOIT-REDLED s typeless. 4.) Khi nim 2 * VARIAB4 s typeless. 5.) Cc PORT.RELAY biu s c cc loi phn khc BIT.

Cc loi phn khc c chn, khi biu thc xut hin nh l a ch. Nu kt qu biu hin l khng typeless v khng c cc loi phn on ca phn khc tng ng, cc hng dn c nh du vi mt thng bo li.

TH ANH NGUYN

71

Ngoi l duy nht l cc loi phn khc DATA v IDATA, c gi nh tng thch trong phm vi a ch t 0 n 7FH. K t khi ASEM-51 ch thc hin h tr phn on tuyt i, nhng a ch ang thc s lun lun ch vo v tr a l tng t trong b nh trong.

V d: --------

Dng ti a ch M ngun

1: N 30 DSEG AT 030H, b nh RAM ni b 2: 30 N 01 S: DS 1; bin truy cp 3: 4: CSEG; ROM 5: 0000 C2 30 START: CLR S ^ @ @ @ @ @ Phn khc loi khng ph hp @ @ @ @ @

Hng dn CLR c nh du vi thng ip "phn khc loi khng ph hp" li trong tp tin danh sch lp rp, bi v ch c mt a ch loi BIT c php y. Tuy nhin, COUNT l mt nhn hiu vi cc loi d liu phn khc!

III.8 khin Assembler -----------------------ASEM-51 thc hin mt s iu khin lp rp nh hng n qu trnh lp rp v to danh sch tp tin. C hai nhm

TH ANH NGUYN

72

iu khin: iu khin chnh v chung. iu khin chnh ch c th c s dng u chng trnh v vn c hiu lc trong sut lp rp. H ch c th c trc bi bo co kim sot, trng v dng bnh lun. Nu cng mt chnh kim sot c s dng nhiu ln vi cc thng s khc nhau, sau cng m. iu khin chung c th c s dng khp mi ni trong chng trnh. H thc hin mt hnh ng n l, hoc vn c hiu lc cho n khi h c hy b hoc thay i bi mt tuyn b kim sot tip theo. Mt tuyn b kim sot lun lun bt u vi mt k t '$', theo sau l mt hoc iu khin lp rp hn. iu khin lp rp c th c mt s hoc chui loi ton hng, m phi lun lun c km theo trong ngoc n. Loi ton hng s l biu thc s hc cn phi c bit v thng qua 1. Loi ton hng chui l chui k t c t trong du ngoc thay v du ngoc kp. Tng t vi chui trch dn, khng k t iu khin (Bao gm c cc tab) c php trong cc dy! Chui phn cch ')' c th c i din bi hai nhn vt tip theo). Nu mt tuyn b kim sot thay i ch nim yt, bo co kt qu kim sot bn thn lun lun c lit k trong danh sch cc ch trc ! Bng di y lit k tt c cc iu khin thc hin v ch vit tt ca h:

Kim sot Loi Mc nh Tn vit tt ngha -------------------------------------------------- ----------------------------$ COND G $ COND --- danh sch y IFxx .. Endif cng trnh xy dng $ NOCOND G --- khng lit k cc dng trong cc ngnh sai

TH ANH NGUYN

73

$ CONDONLY G --- danh sch lp rp dng ch -------------------------------------------------- ----------------------------$ NGY (string) P'' $ DA chn ngy chui thnh tiu trang -------------------------------------------------- ----------------------------$ DEBUG P $ NODEBUG $ DB bao gm thng tin g li vo i tng $ NODEBUG P $ NODB khng bao gm cc thng tin g li -------------------------------------------------- ----------------------------$ y G $ EJ bt u mt trang mi trong danh sch tp tin -------------------------------------------------- ----------------------------$ LI (string) G --- lc mt li ngi dng nh ngha $ Ch (string) G --- ra mt thng ip cnh bo an i -------------------------------------------------- ----------------------------$ GEN G $ GEN $ GE cuc gi v m danh sch v ng m rng $ NOGEN G $ NOGE danh sch v m thc hin cuc gi $ GENONLY G $ GO dng m rng danh sch ch -------------------------------------------------- ----------------------------$ BAO GM (tp tin) G $ IC bao gm mt tp tin ngun -------------------------------------------------- ----------------------------DANH SCH $ G $ $ DANH LI danh sch cc dng ngun tip theo $ NOLIST G $ Noli khng lit k cc dng ngun tip theo -------------------------------------------------- ----------------------------$ MACRO (n) P $ v m (50) $ MR d tr n% b nh min ph cho cc macro $ NOMACRO P $ NOMR d phng cho tt c cc bng biu tng -------------------------------------------------- ----------------------------MOD51 $ P $ MOD51 $ MO cho php biu tng nh canh nh c c xc nh trc NOMOD51 $ P $ Nomo v hiu ha cc biu tng nh canh nh c c xc nh trc -------------------------------------------------- -----------------------------

TH ANH NGUYN

74

$ NOBUILTIN P danh sch nh canh nh c --- khng lit k cc biu tng c xc nh trc -------------------------------------------------- ----------------------------$ NOTABS P s dng cc tab --- khng s dng cc tab trong danh sch tp tin -------------------------------------------------- ----------------------------$ P $ phn trang phn trang $ PI cho php danh sch nh dng trang $ NOPAGING P $ NOPI v hiu ha danh sch nh dng trang -------------------------------------------------- ----------------------------$ PAGELENGTH (n) P n = 64 $ PL thit lp ng dy trn trang nim yt -------------------------------------------------- ----------------------------$ PAGEWIDTH (n) P n = 132 $ PW t ct trn mi dng nim yt -------------------------------------------------- ----------------------------$ PHILIPS P MCS-51 --- chuyn i v h tr gia nh 83C75x -------------------------------------------------- ----------------------------TIT KIM $ G $ SA tit kim hin ti $ DANH / $ GEN / $ nh nc COND $ RESTORE G $ RS khi phc c $ DANH / $ GEN / nh nc COND $ -------------------------------------------------- ----------------------------BIU TNG $ P $ BIU TNG $ SB to bng biu tng NOSYMBOLS $ P $ NOSB khng to ra bng biu tng -------------------------------------------------- ----------------------------$ TITLE (string) G bn quyn $ TT tiu chui chn vo tiu trang -------------------------------------------------- ----------------------------$ XREF P $ NOXREF $ XR to tham chiu cho $ NOXREF P $ NOXR khng to tham chiu cho

Cc on tip theo c gii thch chi tit v thc hin iu khin.

TH ANH NGUYN

75

III.8.1 chnh iu khin ------------------------

$ NGY (string) Chn mt chui ngy vo tp tin danh sch tiu trang. Nu $ DATE () c ch nh, ngy thc t c a vo. Chui ngy s c rt ngn vi di ti a 11 k t. Mc nh l: khng c chui ngy. Kim sot khng c hiu lc, khi kim sot $ NOPAGING c c ch nh.

$ DEBUG Bao gm thng tin g li vo cc m-un OMF-51. Khi to ra tp tin u ra Intel HEX, $ DEBUG khng c tc dng.

$ NODEBUG Khng bao gm thng tin g li. (Default!)

$ MACRO (n) Lu nh ngha v m v m rng cc cuc gi v m. (Default!) Ty chn d tr n% b nh min ph cho cc nh ngha v m. (0 <= n <= 100) Mc nh l n = 50. Kim sot c thc hin cho cc mc ch tng thch ch. Trong ASEM-51 khng c tc dng ngoi tr vic n hy b kim sot $ NOMACRO.

$ NOMACRO Khng lu nh ngha v m v khng m rng cuc gi v m.

TH ANH NGUYN

76

Bo lu tt c b nh cho bng k hiu. Kim sot c thc hin cho cc mc ch tng thch ch. Trong ASEM-51, n ch ngn chn vic m rng v m.

$ MOD51 tc trn c xy dng trong 8051 chc nng c bit ng k v gin on nh ngha biu tng. (Default!)

$ NOMOD51 tc tt c xy dng trong 8051 chc nng c bit ng k v gin on nh ngha biu tng. Cc biu tng c xc nh trc ? ASEM_51 v? VERSION khng c th c tt!

$ Paging Thit b chuyn mch trn cc nh dng trang trong danh sch tp tin. (Default!)

$ NOPAGING tc ra cc nh dng trang trong danh sch tp tin.

$ PAGELENGTH (n) Thit lp danh sch tp tin chiu di trang thnh n dng. (12 <= n <= 65535) Mc nh l n = 64. Kim sot khng c hiu lc, khi kim sot $ NOPAGING c c ch nh.

$ PAGEWIDTH (n) Thit lp trang danh sch tp tin chiu rng cc ct n. (72 <= n <= 255) Mc nh l n = 132.

$ PHILIPS tc trn Philips 83C75x ty chn h tr gia nh.

TH ANH NGUYN

77

iu ny v hiu ha cc LJMP, LCALL, v hng dn MOVX nh cng nh XDATA v hng dn gi XSEG. Chung nhy v cc cuc gi s lun lun lp rp gii quyt tuyt i.

$ BIU TNG To bng biu tng cui ca tp tin danh sch. (Default!) Khi $ XREF kim sot c kch hot, $ BIU TNG khng c tc dng!

$ NOSYMBOLS Ngn chn cc bng biu tng cui ca tp tin danh sch. Khi $ XREF kim sot c kch hot, $ NOSYMBOLS khng c tc dng!

$ NOBUILTIN Ngn chn nhng biu tng c xc nh trc (built-in) trong biu tng bng hoc tham chiu cho danh sch cho mt cuc kho st tt hn. Ch nhng biu tng ngi dng nh ngha c lit k.

$ NOTABS m rng tt c cc k t tab trong cc tp tin u ra danh sch khong trng.

$ XREF To ra mt danh sch tham chiu cho thay v mt biu tng bng. Lu rng iu ny hi chm lp rp, v tiu th khng gian b nh hn khong 67%!

$ NOXREF To ra mt bng biu tng thay v mt tham chiu cho danh sch. (Default!)

V d: $ NOMOD51; tt 8.051 nh ngha biu tng SFR

TH ANH NGUYN

78

$ PAGELENGTH (60), thit lp trang di ti 60 dng trn mi trang $ PW (80), thit lp chiu di trang 80 k t trn mi dng $ NOSYMBOLS, khng c bng biu tng cn thit $ NOTABS, my in khng h tr cc k t tab $ DATE (2 8 95..); Ngy phin bn mi nht $ XREF, to ra mt danh sch tham chiu cho $ NOPAGING DEBUG, bao gm thng tin g li vo OMF-51 , M-un, v ngn chn nh dng trang

III.8.2 chung Controls ------------------------

$ COND Danh sch y IFxx .. ELSEIFxx .. Khc .. Endif cng trnh xy dng. (Default!) Kim sot c ghi bi $ NOLIST.

$ NOCOND Khng lit k trong dng IFxx sai .. ELSEIFxx .. Khc .. Endif chi nhnh. Kim sot c ghi bi $ NOLIST.

$ CONDONLY Danh sch cc dng trong IFxx s tht .. ELSEIFxx .. Khc .. Endif ch chi nhnh, m khng c s IFxx, ELSEIFxx, ELSE v endif bo co chnh n. Kim sot c ghi bi $ NOLIST.

$ y Bt u mt trang mi trong danh sch tp tin. Kim sot khng c hiu lc, khi kim sot $ NOPAGING c c ch nh.

TH ANH NGUYN

79

$ LI (string) Lc lng mt li lp rp vi mt thng bo li ngi dng nh ngha. Ny c thit k h tr qun l cu hnh v c th p dng sensefully vi iu kin ch lp rp.

$ Ch (string) Kt qu u ra mt thng ip cnh bo ngi dng nh ngha giao din iu khin, v gia tng s lng cnh bo. iu ny cng nhm gim bt qun l cu hnh.

$ GEN cuc gi Danh sch v m v cc macro m rng. (Default!) Danh sch ny th hin y vic lm t ca cc cuc gi v m. Kim sot c ghi bi $ NOLIST.

$ NOGEN Danh sch v m ch gi. Cc macro m rng khng c lit k. Kim sot c ghi bi $ NOLIST.

$ GENONLY Lit k cc c quan v m m rng ch. Cuc gi v m v EXITM bo co khng c lit k. Kim sot c ghi bi $ NOLIST.

$ INCLUDE (tp tin) Bao gm mt tp tin ngun bn ngoi vo cc chng trnh lp rp ch ng sau cc tuyn b $ BAO GM. Nu cc tp tin bao gm c khng c quy nh vi mt ng dn tuyt i, v n khng th c c tm thy trong th mc mc nh, ng dn ch nh vi / BAO GM (Linux:-i) ty chn dng lnh (nu c) l tm kim t tri sang phi, v nu n khng th c tm thy hoc, ng dn ch nh vi cc bin mi trng ASEM51INC (nu c nh ngha) c tm kim t tri sang phi l tt.

TH ANH NGUYN

80

Bao gm cc tp tin c th c lng vo nhau n su bt k.

$ DANH Danh sch cc dng m ngun. (Default!)

$ NOLIST Khng lit k cc dng m ngun, min l chng khng cha li, cho n khi ti tuyn b $ DANH xy ra.

$ TIT KIM Tit kim $ DANH SCH hin / $ GEN / $ nh nc COND trn $ TIT KIM-stack. $ TIT KIM bo co c th c lng vo nhau n su bt k.

$ RESTORE Phc hi mt $ DANH SCH lu trc / $ GEN / $ nh nc COND.

$ TITLE (string) Chn mt chui tn vo danh sch tp tin tiu trang. Tiu c th c rt ngn theo quy nh (hoc mc nh) chiu rng ca trang. Mc nh: ASEM 51-thng tin bn quyn. Kim sot khng c hiu lc, khi kim sot $ NOPAGING c c ch nh.

V d: $ NOLIST; tt danh sch $ INCLUDE (8052.MCU), bao gm 8.052 SFR tp tin nh ngha biu tng $ DANH; chuyn i v bng lit k $ TITLE (n v tnh t c kim sot i vi xe my) $ EJ; trang mi vi danh hiu mi $ LI (cu hnh khng hp l: kch thc b m> kch thc b nh RAM bn ngoi) $ Ch (int. RAM khng p ng c yu cu kch thc ngn xp ti thiu)

TH ANH NGUYN

81

$ TIT KIM GENONLY CONDONLY; tit kim c $ DANH / $ GEN / $ tnh trng COND, v danh sch , Dng ngun ch c thc s lp rp $ RESTORE; khi phc ch nim yt trc

III.9 biu tng c xc nh trc ----------------------- d dng truy cp vo cc chc nng c bit 8051 ng k v lm gin on a ch, ASEM-51 c mt s c xc nh trc (built-in) d liu, v BIT Biu tng M. Cc biu tng ny c xc nh trc c th c tt vi s kim sot $ NOMOD51. bit thng tin chi tit v biu tng v a ch tham kho Ph lc C. xc nh cc nh lp rp v s phin bn ca n, sau y Biu tng loi s c xc nh trc:

? ASEM_51 = 8051H ASEM-51 ? VERSION = 0130H phin bn 1.3

Hai biu tng khng th c tt!

III.10 iu kin hi --------------------------Lp rp iu kin cho php lp rp hoc b qua phn la chn m. iu ny c th c s dng gi m cho cc bin th khc nhau trong mt chng trnh duy nht ngun, d dng kim sot cu hnh v bo tr. Lp rp c iu kin cng rt hu ch vit macro a thch. TH ANH NGUYN

82

Mi bn hng dn meta sau y c thc hin:

NU <expr> ELSEIF <expr> IFN <expr> ELSEIFN <expr> Ifdef <symbol> ELSEIFDEF <symbol> Ifndef <symbol> ELSEIFNDEF <symbol> IFB <literal> ELSEIFB <literal> IFNB <literal> ELSEIFNB <literal> ENDIF ELSE

Hng dn meta lp ph MCS-51 ngn ng lp rp ca Intel, nhng khng phi l mt phn ca n! Lp trnh C c th so snh chng vi lnh tin x l C. Trong cc vn bn tip theo, IFxx c s dng nh mt tn gi chung cho cc IF / IFN / ifdef / ifndef / IFB / IFNB hng dn. Tng t ELSEIFxx c s dng nh mt tn gi chung cho cc ELSEIF / ELSEIFN / ELSEIFDEF / ELSEIFNDEF / ELSEIFB / ELSEIFNB hng dn (khng bao gm ngi no khc).

III.10.1 chung IFxx Xy dng ---------------------------------n gin IFxx ... Endif cng trnh xy dng c th c s dng lp rp mt s bo co km theo ch, nu mt iu kin particluar c p ng:

IFxx <condition> 1> <statement 2> <statement . , Lp rp nu <condition> l TRUE

TH ANH NGUYN

83

. <statement n> Endif

Cc bo co t 1 n n c lp rp nu <condition> l TRUE, nu khng chng c b qua.

Nu chng ta c th la chn hai bin th ca m ph thuc vo mt iu kin c th, iu ny c th c thc hin vi mt IFxx .. Khc .. Endif xy dng. Nu <condition> trong bo co IFxx l ng, sau bo co 1 n n c lp rp v cc bo co n +1 n n + m c b qua.

IFxx <condition> 1> <statement . , Lp rp nu <condition> l TRUE <statement n> Khc <statement n+1> . , Lp rp nu <condition> l FALSE <statement n+m> Endif

<condition> Nn FALSE, n chnh xc l ngc li! iu c ngha bo co 1 n n c b qua v bo co n +1 n n + m c lp rp. iu ny cng lm vic, nu cc ngnh IFxx hoc ngi no khc khng cha cc bo co tt c.

Bt c khi no hn hai trng hp phi c phn bit, mt s tng ng

TH ANH NGUYN

84

chi nhnh ELSEIFxx c th c chn vo gia cc IFxx v cc chi nhnh ELSE. Trong mt IFxx .. ELSEIFxx .. Khc .. Endif xy dng, ch bo co trong cc chi nhnh vi iu kin TRUE u tin c lp rp. Cc bo co trong tt c cc ngnh khc c b qua. Nu khng c iu kin l ng, ch c cc bo co trong ngnh Khc (Nu c) c lp rp.

IFxx <condition 1> . , Lp rp nu <condition 1> l TRUE . ELSEIFxx <condition 2> . , Lp rp nu <condition 1> l FALSE, . V <condition 2> l TRUE ELSEIFxx <condition 3> . , Lp rp nu 1> <condition v . ; 2> <condition l FALSE, v . ; <condition 3> l TRUE . . ELSEIFxx <condition n> . , Lp rp nu <condition 1> qua . ; <condition N-1> l FALSE v . ; <condition N> l TRUE Khc . , Lp rp nu <condition 1> qua . ; <condition N> l FALSE Endif

TH ANH NGUYN

85

IFxx ... ELSEIFxx ... Khc ... Endif cng trnh xy dng c th c lng vo nhau n su no! Ch danh sch nhng cng trnh xy dng c th c thit lp vi $ COND, $ NOCOND v $ CONDONLY iu khin.

III.10.2 IFxx v ELSEIFxx Hng dn --------------------------------------Hng dn IFxx c bit ang lm vic nh sau:

NU <expr> IF iu kin ng, nu <expr> biu hin khng phi l bng 0. Gi tr ca <expr> phi c bit n trn qua 1!

IFN <expr> iu kin IFN l TRUE, nu <expr> biu thc l bng 0. Gi tr ca <expr> phi c bit n trn qua 1!

Ifdef <symbol> iu kin ifdef l TRUE, nu <symbol> c nh ngha trong chng trnh. Chuyn ti liu tham kho <symbol> khng c php!

Ifndef <symbol> iu kin ifndef l TRUE, nu <symbol> khng c nh ngha trong chng trnh. Chuyn ti liu tham kho <symbol> khng c php!

IFB <literal> Cc IFB (nu trng) iu kin ng, nu l <literal> trng rng. <literal> l mt chui km theo trong du ngoc nhn.

IFNB <literal> Cc IFNB (nu khng trng) iu kin ng, nu l <literal> khng c sn phm no. <literal> l mt chui km theo trong du ngoc nhn.

TH ANH NGUYN

86

Mc d IFB v bo co IFNB c gi tr cng ngoi macro, chng c th c p dng trong sensefully ch c quan v m. Thng thng chng c s dng quyt nh, cho d i s v m c c trng, hoc khng.

Hng dn ELSEIFxx tng ng ang lm vic tng ng.

V d 1: NU .. Khc .. Endif xy dng ---------MC TIU EQU 0; cu hnh: 1 cho hi ng qun tr ng dng ; -------------- nh gi ban 0 NU CH TIU ORG 0; a ch bt u chng trnh ca hi ng qun tr ng dng Khc ORG 8000h; a ch bt u chng trnh ca hi ng qun tr nh gi Endif

Hin nay chng trnh c cu hnh cho hi ng qun tr nh gi phin bn.

V d 2: ifndef .. Khc .. Endif xy dng ---------; EVA_537 EQU 0; biu tng khng xc nh: 80C537 bng ng dng , Biu tng c xc nh: 80C537 bng nh gi

TH ANH NGUYN

87

Ifndef EVA_537 ng h EQU 16; tn s ng h ca hi ng qun tr ng dng CSEG AT 0; a ch bt u chng trnh ca hi ng qun tr ng dng Khc ng h EQU 12; tn s ng h ca hi ng qun tr nh gi CSEG AT 8000h; a ch bt u chng trnh ca hi ng qun tr nh gi Endif

Hin nay chng trnh c cu hnh cho hi ng qun tr ng dng phin bn.

V d 3: IFB .. Khc .. Endif xy dng ---------QUYT NH V M X, Y IFB <X&Y> NOP NOP Khc DB '& X & Y " Endif Endm

Nu v m trn c gi nh sau,

QUYT NH Nonsense

TH ANH NGUYN

88

tham s X s c thay th bng "V vn" v Y tham s ca mt chui di khng. Do , theo ngha en IFB tr thnh <Nonsense>, v v m s c m rng:

DB 'V vn'

Nu v m s c gi khng c i s,

QUYT NH

cc thng s X v Y s c thay th bng s khng di chui c hai, v theo ngha en IFB tr thnh <>. Do , v m s c m rng:

NOP NOP

Macro c gii thch chi tit trong chng "III.11 v m ch bin".

V d 4: ifndef .. ELSEIF .. ELSEIF .. Khc .. Endif xy dng ---------Cc BAUDRATE biu tng phc v xc nh cc UART baudrate:

Ifndef BAUDRATE LJMP Autobaud, pht hin tc baud t ng

TH ANH NGUYN

89

ELSEIF BAUDRATE EQ 9600 MOV TH1, # 0FDH; 9600 baud ELSEIF BAUDRATE EQ 1200 MOV TH1, # 0E8H; 1200 baud Khc $ LI (baudrate khng thc hin) Endif

Nu BAUDRATE biu tng khng c nh ngha tt c, mt bc nhy ti cc Autobaud nhn c thc hin. Nu BAUDRATE biu tng c nh ngha vi mt trong nhng quy phm php lut gi tr 9600 hoc 1200, b m thi gian 1 c khi to cho ph hp. Nu BAUDRATE biu tng c xc nh c gi tr khc, mt thng bo li ngi dng nh ngha tng ng c to ra.

III.11 v m ch bin ----------------------Macro cho php kt hp hng dn lp rp c bn "siu lnh". i vi iu ny, macro c nh ngha l khi m, c th c s dng trong mt chng trnh, bt c ni no n c mong mun. Tuy nhin, mt thit k v m tin tin vi cc thng s, cc k hiu a phng v v m khai thc, kt hp vi lp rp c iu kin, vt xa c bn ny chc nng! Ch c nm t kha (MACRO, REPT, endm, EXITM, A PHNG) v mt s kim sot nhn vt-ASEM 51 b vi x l v m cung cp mt lot cc cng c mnh m. Cc hng dn siu nm l khng mt phn ca Intel MCS-51 lp rp

TH ANH NGUYN

90

ngn ng, nhng che ph n, nh c bit n t lp rp c iu kin. C hai loi macro macro c th c gi v khi lp li.

III.11.1 Macros Callable n gin ------------------------------Macro u tin phi c xc nh, trc khi chng c th c gi l trong mt chng trnh. Mt nh ngha n gin v m bao gm cc tn v m, c th c xc nh vi MACRO t kha, c th v m, v mt endm cui cng (cui v m) hng dn.

<macro name MACRO <body dng 1> <body dng 2> . . <body dng m> Endm

Tn macro phi l mt biu tng c o hp l. N khng th c nh ngha li sau. T kha khng th c s dng nh tn v m. C th v m c th bao gm bt k s lng dng. ng nt c th c th l tt c cc loi hng dn lp rp, hng dn gi, iu khin, hng dn meta, cuc gi v m v nh ngha v m hn na. C th v m v nh ngha hon ton v m c chm dt vi endm hng dn. Macro phi c xc nh, trc khi chng c th c gi l. Chuyn ti liu tham kho

TH ANH NGUYN

91

macro khng c php. Sau khi xc nh, mt v m c th c gi theo tn ca n trong cc chng trnh tip theo nh thng xuyn nh mong mun. Bt c khi no mt v m c gi, v m c th s c "chn" vo chng trnh v sau lp rp nh bnh thng dng ngun. Qu trnh ny c gi l m rng v m.

V d: MY_FIRST v m; nh ngha -------- MOV A, # 42 ADD A, R5 Endm

MY_FIRST; cuc gi

Sau khi cuc gi ca v m MY_FIRST, dng c th

MOV A, # 42 ADD A, R5

c a vo chng trnh v lp rp.

III.11.2 thng s v m ------------------------Macro c th c gi c th c cc thng s, cho php s dng linh hot hn. Tn ca cc thng s chnh thc c quy nh trong nh ngha v m pha sau MACRO t kha, cch nhau bng du phy. Tt c cc tn tham s ca mt v m phi khc nhau, biu tng hp l. T kha khng th c s dng nh tn tham s. Macro c th c bt k s lng cc thng s, min l h

TH ANH NGUYN

92

ph hp trn mt dng. Tn tham s l nhng biu tng ca a phng, c bit n trong v m ch. Ngoi v m h khng c ngha!

<macro name MACRO <parameter 1>, 2> <parameter, ... , <parameter N> <body dng 1> <body dng 2> . . <body dng m> Endm

Khi c gi, i s thc t c th c thng qua vo v m. Cc i s phi c phn cch bng du phy. i s v m hp l l

1. trnh t ty cc k t in c, khng cha khong trng, tab, du phy, du chm phy hoc

2. chui trch dn (trong du nhy n hoc i)

3. k t in duy nht, bt u bng '!' nh mt k t thot

4. chui k t, km theo trong ngoc en <... >, C th c trnh t ty ca i s v lnh hp l (loi 1 -.. 4), khong trng, du phy v du chm phy

5. trnh t ty ca i s v lnh hp l (loi 1 -. 4.)

TH ANH NGUYN

93

6. biu trc bi mt nhn vt '%' Lu : Cc t kha V M, EQU, SET, M, D LIU, IDATA, XDATA, BIT, v cc ':' nhn vt khng th c thng qua nh l i s v m u tin, bi v h lun lun bt u mt nh ngha biu tng! Do h phi c t trong du ngoc en <... >.

Trong khi m rng v m, nhng lp lun thc t thay th cc biu tng ca cc thng s chnh thc tng ng, bt c ni no h c cng nhn trong cc v m c th. i s u tin thay th cc biu tng ca tham s u tin, s th hai thay th cho biu tng ca tham s th hai, v vv. iu ny c gi thay th. Nu khng c s h tr c bit, lp rp s khng nhn mt tham s biu tng nu n

- L mt phn ca biu tng khc

- c cha trong mt chui trch dn

- Xut hin trong bi bnh lun

V d 1: MY_SECOND MACRO CONSTANT, ng k ---------- MOV A, # CONSTANT ADD A, ng k Endm

MY_SECOND 42, R5

TH ANH NGUYN

94

Sau khi gi MY_SECOND v m, dng c th

MOV A, # 42 ADD A, R5

c a vo chng trnh, v lp rp. Tn tham s CONSTANT v NG K thay th bng cc i s v m "42" v "R5".

S lng cc i s, thng qua mt v m, c th t hn (nhng khng ln hn) hn s lng cc thng s chnh thc ca n. Nu mt i s l b qua, tham s chnh thc tng ng c thay th bng mt chui rng. Nu i s khc hn so vi nhng ngi cui cng s c b qua, h c th i din bng du phy.

V d 2: CHN v m c tm thng s chnh thc: ---------CHN MACRO P1, P2, P3, P4, P5, P6, P7, P8 . . <macro body> . . Endm

Nu n c gi nh sau,

TH ANH NGUYN

95

1,2 CHN,,, 5,6

cc thng s chnh thc P1, P2, P5 v P6 c thay th bng i s 1, 2, 5 v 6 trong thi gian thay th. Cc thng s P3, P4, P7 v P8 c thay th bng mt chui di khng.

i vi thit k v m linh hot hn, phi c mt kh nng nhn ra i s v m c sn phm no, v chi nhnh m rng v m ph hp. iu ny c th c thc hin vi iu kin lp rp, s dng IFB v IFNB hng dn meta. (Xem chng "III.10.2 IFxx v ELSEIFxx Hng dn".)

III.11.3 Lp li Macro ---------------------Macro lp li khng c mt ci tn v m, v do khng th c gi l nhiu ln. H lun lun m rng ngay lp tc sau khi nh ngha ca h. Trong qu trnh m rng, c th v m ca h c lp li n ln (0 <= n <= 65535). Macro lp li bt u vi REPT t kha, tip theo l mt biu thc, m phi c bit n trn qua 1. Tng t vi cc macro c th c gi, c mt v m c th, m phi c chm dt vi mt lnh endm:

REPT <expression> <body dng 1> <body dng 2> . .

TH ANH NGUYN

96

<body dng m> Endm

Gi tr biu hin r c bao nhiu ln c th v m l c lp i lp li. T macro lp li bt u vi REPT t kha, h l i khi cn c gi l "khi REPT".

V d: REPT 5 -------- NOP Endm

Khi REPT ny s m rng n nm hng dn NOP ngay lp tc sau khi nh ngha ca n:

NOP NOP NOP NOP NOP

III.11.4 k hiu a phng ---------------------K hiu a phng l nhng biu tng, m ch c bit n trong mt c th v m, nhng khng ngoi v m. Biu tng c nh ngha cho ton b chng trnh, s sau c gi l "biu tng ton cu" cho s hiu bit tt hn. Chng ta quen thuc vi mt trng hp c bit ca cc biu tng a phng: v m chnh thc

TH ANH NGUYN

97

cc thng s. H xut hin trong cc ch nh ngha v m. V chng l thay th trong qu trnh m rng v m, chng ti khng c vn hn na vi h. Nhng nhng g xy ra vi cc biu tng c xc nh trong mt c th v m?

V d 1: v m n gin sau y c thit k c mt k t ---------- T 8051 UART, v tr li n trong mt:

NHN MACRO UARTIN: JNB RI, UARTIN MOV A, SBUF CLR RI Endm

iu ny s lm vic ch mt ln! Nu v m Nhn c gi l nhiu ln, UARTIN nhn s c xc nh nhn.

iu ny c th c gii quyt bng cch n gin tuyn b biu tng UARTIN a phng. i vi iu ny, bo co kt qu A PHNG c gii thiu. Sau t kha A PHNG, mt danh sch cc biu tng a phng c th c ch nh, cch nhau bng du phy. Cc biu tng ny s ch c gi tr trong kinh t v m c cha cc A PHNG tuyn b. Bo co A PHNG ch c th c t trc tip sau khi MACRO hoc tuyn b REPT, trc thn hnh u tin. Chng c th cha bt k s k hiu a phng. C th v m c th c bt u bng mt ty s bo co A PHNG. K hiu a phng phi c biu tng hp l, duy nht trong v m, v khc nhau t cc thng s chnh thc (nu c). T kha khng th c s dng nh l biu tng a phng tn. Nu mt biu tng a phng c cng tn nh mt biu tng ton cu, cc a phng

TH ANH NGUYN

98

phm vi c precedance trong thay th. Khi mt v m c m rng, biu tng a phng ca n lun lun thay: cc cc thng s chnh thc c thay th bng cc i s v m, v cc k hiu a phng c tuyn b trong mt tuyn b A PHNG c thay th bng c o, ton cu tn k hiu, m cc nh lp rp to ra trong mi m rng. Nhng c lun lun nh dng? xxxx, trong xxxx l mt s biu tng c o.

V d 2: Sau khi thit k li ca v m trc ca chng ti NHN s dng ---------- K hiu a phng, n l tm kim nh sau:

NHN MACRO A PHNG UARTIN UARTIN: JNB RI, UARTIN MOV A, SBUF CLR RI Endm

Tng cng nh trnh by trn, cc v m s lm vic mt cch chnh xc, thng xuyn nh mong mun. NHN khi c ku gi u tin thi gian, UARTIN biu tng a phng s c thay th bng? 0000,

? 0000: JNB RI, 0000? MOV A, SBUF CLR RI

khi n c gi ln th hai, UARTIN s ? thay th bng 0001, v nh vy:

TH ANH NGUYN

99

0001: JNB RI, 0001?? MOV A, SBUF CLR RI

Tuy nhin, n c khuyn co khng xc nh biu tng ton cu trong nh dng? Xxxx, trnh xung t vi cc tn thay th cc k hiu a phng t macro m rng.

III.11.5 v m khai thc -----------------------C mt s nhn vt kim sot c bit, l rt hu ch cho v m nh ngha, cuc gi v m rng:

;; Bnh lun v m: Thng thng, cc kin trong dng c th cng c cha trong m rng dng. Nu mt bi bnh lun bt u vi ';; "tuy nhin, n khng c lu tr trong nh ngha v m. Do , n khng tiu th khng gian b nh, v xut hin trong danh sch tp tin trong cc ch nh ngha v m, nhng khng trong cc ng m rng.

! Ngha en iu hnh: Nu cc k t thot '!' i trc mt nhn vt khc c th in c mt i v m, cc nh lp rp buc phi x l nhn vt ngha en. iu ny c ngha l n s c chuyn n v m, ngay c khi n l mt k t iu khin, trong khi cc nh iu hnh ngha en t n b mt.

TH ANH NGUYN

100

<> Ngoc Ngha ch: Nu mt i s v m c thit k cha phn hoc kim sot nhn vt, n phi c t trong du ngoc en <... > vt qua n n v m nh l mt chui lp lun, trong khi cc cp ngoi cng ca ngoc n c ly ra. Khung en c th c lng vo nhau n su bt k.

% nh gi: Nu mt i s v m c i trc bi cc nh iu hnh nh gi '%', n c xem nh l mt biu thc, trong s c nh gi trc khi n c thng qua vi v m. To chui i s thc t s khng phi l t th hin, nhng mt i din ASCII thp phn ca gi tr ca n. Biu thc phi c bit n trn qua 1.

& Thay ngi: Cc '&' nhn vt tch tn tham s (k hiu a phng) t xung quanh vn bn. Bn ngoi chui trch dn v bnh lun n phc v ch l mt nhn vt ly chung. iu ny lun lun c p dng khi mt biu tng a phng trc tip i trc hoc sau ch s khc chui. Trong chui trch dn v bnh lun, mt biu tng a phng phi c bt u bng "v" nu n c thay th . Trong mi m rng v m, lp rp loi b chnh xc mt '&' t mi chui cc '&' k t. iu ny cho php v d, xc nh mt v m lng nhau trong mt c th v m, m cng s dng cc iu hnh thay th '&': ai vit ch n gin l '&&'!

V d 1: Cc bnh lun ch c th thy c trong nh ngha ---------- Ca PHP v m:

TH ANH NGUYN

101

PHP MACRO DB 'Bn quyn';, mi vic php l Endm

Khi gi, m rng c th v m ang tm kim nh th ny trong cc tp tin danh sch:

DB 'Bn quyn'

V d 2: C BIT;! ---------vt qua mt du chm phy v m c bit nh mt ch tranh lun. iu ny cng c th c thc hin vi

C BIT <;>

V d 3: CONST v m nh ngha mt 16-bit khng i trong ROM: ---------MACRO CONST NUMB DW NUMB Endm

Nu n c gi l nh hnh di y,

CONST 0815H 4711-42

TH ANH NGUYN

102

tham s NUMB s c thay th nh sau:

DW 0815H 4711-42

Nu i s v m cng l trc bi mt '%' tuy nhin,

CONST% 0815H 4711-42

thay th s dn n:

DW 6738

V d 4: Trong qu trnh thay th, c hai tham s ca v m CONCAT ---------- S to thnh mt tn biu tng lin mch:

CONCAT MACRO NAM, NUM MOV R3, # 0 NAM & NUM: DJNZ R3, NAM & NUM Endm

Khi concat c gi l nh sau,

CONCAT LABEL, 08

cc thng s NAM v NUM c thay th trong qu trnh v m m rng nh hnh di y:

TH ANH NGUYN

103

MOV R3, # 0 LABEL08: DJNZ R3, LABEL08

III.11.6 sm kt thc mt m rng v m ------------------------------------------i khi n rt hu ch, nu m rng v m c th c chm dt, trc khi kt thc ca c th v m t c. iu ny c th c buc vi EXITM (V m xut cnh) hng dn. Tuy nhin, iu ny c ngha kt hp vi lp rp c iu kin ch.

V d: LINH HOT MACRO S LNG -------- DB 'Text' NU S LNG LE 255 EXITM Endif DW S LNG Endm

V m LINH HOT lun lun phi chn chui 'Text' vo khng gian M. Sau , n s chn mt 16-bit hng s duy nht, nu gi tr s ca tham s S LNG ln hn 255. Nu khng m rng v m phi c chm dt vi EXITM trc. Nu v m c gi l nh sau,

LINH HOT 42

TH ANH NGUYN

104

n s c m rng

DB 'Text'

trong ch danh sch $ GENONLY / $ CONDONLY. Tuy nhin, nu n c gi nh th ny,

LINH HOT 4711

n s c m rng:

DB 'Text' DW 4711

Khi m rng v m c chm dt vi EXITM, tt c cc cng trnh xy dng IFxx m c m ra trong c th v m cho n nay, c ng li. Tt nhin c quan v m cng c th cha cc cu lnh iu khin. Nu mt bao gm tp tin c a vo mt c th v m vi mt iu khin $ BAO GM, v bao gm ny tp tin, hoc mt tp tin bao gm lng nhau, c cha mt hng dn EXITM, bao gm tt c mc tp tin ln n cp v m tip theo c ng ca vo thi im ny, v m rng v m l chm dt ngay lp tc.

III.11.7 lng nhau v quy cc cuc gi v m ----------------------------------------C quan v m cng c th cha cc cuc gi v m, v nh vy c th cc c quan ca nhng

TH ANH NGUYN

105

c gi l macro, v vv. Nu mt cuc gi v m c thy trong sut s pht trin ca mt v m, cc nh lp rp bt u ngay lp tc vi vic m rng c gi l v m. i vi iu ny, n ng nt c th m rng ca n ch n gin l a vo c th v m m rng v m gi in thoi, cho n khi c gi l v m l hon ton m rng. Sau , m rng v m gi c tip tc vi c th dng sau y cuc gi v m lng nhau.

V d 1: TRONG MACRO ---------- Subb A, R3 Endm

NGOI MACRO MOV A, # 42 INSIDE MOV R7, A Endm

Trong c th ca NGOI v m, ISIDE v m c gi. Nu NGOI c gi l (v cc ch danh sch c thit lp $ GENONLY), mt c mt ci g ging nh vic m rng sau y:

Dng ti a ch M ngun

15 + 1 0000 74 2A MOV A, # 42 17 + 2 0002 9B subb A, R3 18 + 1 0003 FF MOV R7, A

TH ANH NGUYN

106

K t khi cc cuc gi v m c th c lng vo nhau n su bt k (trong khi c b nh min ph), mc m rng v m c th hin trong ti ct ca danh sch tp tin. T mc tp tin v m v bao gm c th c lng vo nhau theo th t ty v chiu su, mc lm t c tnh thng qua tt c cc v m v tp tin bao gm mc phn bit. phn bit tt hn, nhn vt sau s dng ton cu ':' cho bao gm mc tp tin, v '+' cho cp v m.

Nu macro c gi mnh, mt ni v cc cuc gi macro quy. Trong trng hp ny, phi c mt s tiu ch dng li, ngn chn v m ca gi bn thn hn v hn cho n khi lp rp c chy ra khi b nh! y mt ln na, c iu kin lp rp l gii php:

V d 2: COUNTDOWN v m l xc nh cc hng s 16-bit ---------- 1 n n trong th t gim dn trong ROM. n c th c thng qua v m nh mt tham s:

COUNTDOWN MACRO SU NU SU GT 0 DW SU COUNTDOWN% SU-1 Endif Endm

Nu COUNTDOWN c gi l nh th ny,

COUNTDOWN 7

TH ANH NGUYN

107

mt ci g nh kt qu m rng sau v m (Trong ch danh sch $ GENONLY / $ CONDONLY):

Dng ti a ch M ngun

16 + 1 0000 00 07 DW 7 19 + 2 0002 00 06 DW 6 22 + 3 0004 00 05 DW 5 25 + 4 0006 00 04 DW 4 28 + 5 0008 00 03 DW 3 31 + 6 000A 00 02 DW 2 34 + 7 000C 00 01 DW 1

Sau thi Trung C, khi bi c gii quyt v mt tri t ph bng ti, khoa hc my tnh pht hin ra phng php lp trnh quy. Khng c nghi ng rng y l gii php! V cc nh khoa hc my tnh bt u gii thch iu ny cho sinh vin. Nhng c v nh cc sinh vin khng nhn c n. H lun lun phn nn m tnh ton quy ca n! l mt v d ng ngn thc s. Tt c cc nh khoa hc cm thy stronly rng vn cn mt ci g mt tch. Sau hn 10 nm lm vic nghin cu kh khn, h cng tm thy VN :

V d 3: Thp H Ni ---------C ba gy thng ng trn bn. Trn thanh 1 c n a vi ng knh khc nhau v mt l trong

TH ANH NGUYN

108

gia, a nh trn u, ln nht trn pha di.

Dnh 1 Stick 2 Stick 3

||| a 1 === | === | | a 2 ===== | ===== | | a n ======= | ======= | | __________ | ________________ | ________________ | __________ ///////////////////////////////////////////////////////

Vn l chuyn thp a t thanh 1 dnh 2 vi ti thiu l di chuyn. Nhng ch trn cng a trn mt ta thp c th c di chuyn cng mt lc, v khng c a c th c layed trn mt a nh hn. Thanh 3 c th c s dng cho u mc ch. y l mt gii php vi ASEM-51 macro:

, Thp H Ni

$ GENONLY CONDONLY

A EQU 3, s lng a

H NI v m n, ngun, ch, CO NU n> 0 H NI% (n-1), Ngun, CO, DESTINATION

TH ANH NGUYN

109

, Di chuyn a trn cng t thanh & NGUN thanh & IM N H NI% (n-1), CO, DESTINATION, NGUN Endif Endm

A H NI, 1, 2, 3

END

quy v m H NI to ra mt hng dn i vi vn , trong cc hng dn xut hin nh bnh lun dng trong tp tin danh sch. Cc A biu tng phi c thit lp s mong mun ca a. Nu H Ni c gi l nh th ny,

H NI 3, 1, 2, 3

cc "hng dn" sau y c to ra:

27 + 3; di chuyn a trn cng t thanh 1 dnh 2 35 + 2, di chuyn a trn cng t thanh 1 dnh 3 44 + 3; di chuyn a trn cng t thanh 2 dnh 3 53 + 1; di chuyn a trn cng t thanh 1 dnh 2 64 + 3; di chuyn a trn cng t thanh 3 dnh 1 72 + 2, di chuyn a trn cng t thanh 3 dnh 2 81 + 3; di chuyn a trn cng t thanh 1 dnh 2

Cc GENONLY v CONDONLY kim sot m bo rng bn

TH ANH NGUYN

110

khng cha tt c cc cuc gi v m v IF cng trnh xy dng.

Bi tp 1: Sa i v m H NI n l to ra mt ng thi bng trong ROM, trc tip c th c s dng nh mt u vo cho 8.051 iu khin cnh tay robot thc s ng tr chi vi 3 gy tht v a thc n. n Bi tp 2: Chng minh rng s lng ti thiu ca di chuyn l 2 - 1. ;-)

III.11.8 nh ngha Macro lng nhau --------------------------------Mt c th v m cng c th cha cc nh ngha v m hn na. Tuy nhin, nhng nh ngha v m lng nhau l khng hp l cho n khi kinh t v m bao quanh c m rng! iu c ngha, cc v m km theo phi c gi l, trc khi cc macro lng nhau c th c gi.

V d 1: Mt v m, c th c s dng xc nh cc macro vi ty ---------- Tn, c th xem xt nh sau:

Xc nh v m MACNAME MACNAME MACRO DB 'Ti l ngi v m & MACNAME.' Endm Endm

khng qu ti v d khi c "b quyt", :-)

TH ANH NGUYN

111

v m lng nhau ch gii thiu bn thn vi lng mt chui k t thch hp trong ROM. Cuc gi

Xc nh Obiwan

s xc nh v m

Obiwan MACRO DB 'Ti l Obiwan v m. " Endm

v cuc gi

Xc nh Skywalker

s xc nh v m sau y:

Skywalker MACRO DB 'Ti l Skywalker v m. " Endm

V d 2: Mt v m l chn mt s bin ca NOPs vo ---------- Chng trnh. i vi iu ny, mt v m vi mt khi REPT lng nhau dng nh l tt nht ph hp:

Lp li NOPs MACRO REPT NOPs

TH ANH NGUYN

112

NOP Endm Endm

Cuc gi v m

Lp li 4

kt qu trong mt ci g nh th:

Dng ti a ch M ngun

9 + 1 N 0004 REPT 4 10 + 1 NOP 11 + 1 endm 12 + 2 0000 00 NOP 13 + 2 0001 00 NOP 14 + 2 0002 00 NOP 15 + 2 0003 00 NOP

III.11.9 i din trong danh sch cc file ---------------------------------------i khi m rng v m c xu hng sn xut cc dng danh sch nhiu hn kt qu m. lit k hay khng lit k - l cu hi! Cc yu cu hoc l c c mt ci nhn tng th tt hn hoc chi tit hn thng tin c th thay i trong giai on pht trin khc nhau hoc cc phn chng trnh.

TH ANH NGUYN

113

lun lun c c kt qu tt nht, mt s iu khin chung c gii thiu, nh hng n cc i din ca m rng v m v IFxx cng trnh xy dng trong tp tin danh sch (xem chng "III.8 khin Assembler"):

Kim sot Loi Mc nh Tn vit tt ngha -------------------------------------------------- ---------------------------$ GEN G $ GEN $ GE cuc gi v m danh sch v ng m rng $ NOGEN G $ NOGE danh sch v m thc hin cuc gi $ GENONLY G $ GO dng m rng danh sch ch -------------------------------------------------- ---------------------------$ COND G $ COND --- danh sch y IFxx .. Endif cng trnh xy dng $ NOCOND G --- khng lit k cc dng trong cc ngnh sai $ CONDONLY G --- danh sch lp rp dng ch -------------------------------------------------- ---------------------------TIT KIM $ G $ SA tit kim hin ti $ DANH / $ GEN / $ nh nc COND $ RESTORE G $ RS khi phc c $ DANH / $ GEN / nh nc COND $

IV. Kh nng tng thch vi Intel Assembler ========================================== Vi lp rp thp gi mnh ASM51, Intel xc nh v thc hin mt ngn ng lp rp ph hp vi gia nh MCS-51, m lun lun l tiu chun ch thc s trong th gii 8051. Tht khng may, Intel cng b "cui i" ca ASM51 (cui cng phin bn 2.3) v tt c cc MCS-51 cng c pht trin khc Intel cho cui nm 1993. ASEM-51 ngn ng lp rp l mt tp hp cc tiu chun Intel

TH ANH NGUYN

114

m bo kh nng tng thch ti a vi 8.051 ngun lp rp hin c. N thc hin tt c 8.051 gip tr nh cng nh hng dn mt phong ph v hu ch tp hp con ca cc hng dn Intel gi v iu khin lp rp.

IV.1 hn ch ----------------K t khi ASEM-51 to ra mt tp tin Intel HEX (hoc tuyt i OMF-51) sn lng thay v cc m-un i tng nh v, m ngun ca ton b mt 8051 chng trnh ng dng phi c tr trong mt tp tin duy nht. Do tt c hng dn gi m i ph vi cc phn on nh v hoc bn ngoi hoc biu tng cng chng, khng c thc hin:

CNG Extrn B PHN RSEG

Macro Intel kiu khng c h tr! (Do , nhn vt '%' c th c s dng trong kin.) Cho n nay ch c iu khin lp rp sau v ch vit tt ca h c c thc hin:

| iu khin chnh abbrev. | Chung kim sot abbrev. --------- + ----------------------------------- + ---- ------------------------| $ DATE (<string>) $ DA | $ $ y EJ | $ DEBUG $ DB | $ GEN $ GE

TH ANH NGUYN

115

| $ NODEBUG $ NODB | $ NOGEN $ NOGE | $ MACRO (<percent>) $ MR | $ GENONLY $ GO | $ NOMACRO $ NOMR | $ BAO GM (<file>) $ IC Intel | $ MOD51 $ MO | $ $ DANH LI | $ NOMOD51 $ Nomo | $ NOLIST $ Noli iu khin | $ $ phn trang PI | TIT KIM $ $ SA | $ NOPAGING $ NOPI | $ RESTORE $ RS | $ BIU TNG $ SB | $ TITLE (<string>) $ TT | $ NOSYMBOLS $ NOSB | | $ PAGELENGTH (<lines>) $ PL | | $ PAGEWIDTH (<columns>) $ PW | --------- + ----------------------------------- + ---- ------------------------| $ NOBUILTIN ----- | $ COND ----ASEM-51 | $ NOTABS ----- | $ NOCOND ----iu khin | $ PHILIPS ----- | $ CONDONLY ----| | $ LI (<string>) ----| | $ Ch (<string>) -----

IV.2 m rng --------------iu khin lp rp cn phi bt u trong ct 1, nhng c th c bt u bng bt k s lng khong trng v cc tab. iu khin chnh cng c th c bt u bng bnh lun dng v $ BAO GM bo co, cung cp cc tp tin bao gm tng ng c ch cha cc bo co kim sot khc v bnh lun. Ngun tp tin c th cha dng trng v bnh lun sau tuyn b END. Chui k t cng c th c t trong du ngoc kp.

TH ANH NGUYN

116

Biu tng d liu cho cc chc nng c bit ng k PCON l c xc nh trc. Cc nh iu hnh bit '.' l hp php trong tt c cc biu thc, khng ch trong nhng phi ph hp vi loi phn khc BIT.

ASEM-51 gii thiu mt b cc hng dn meta, m lp ph Intel MCS-51 hi ng ngn ng, nhng khng phi l mt phn ca n! Hng dn meta IFxx, ELSEIFxx, ELSE, v endif cho php c iu kin lp rp, trong khi cc hng dn siu v m, REPT, endm, EXITM, v A PHNG (V mt s k t iu khin) to thnh mt ngn ng x l v m mnh m. bit thng tin chi tit v hng dn meta xem chng "III.10 iu kin hi" v "III.11 v m ch bin".

IV.3 khc bit hn na ----------------------- lm cho ng ngha c o, c bit l u tin ca cc nh khai thc nguyn phn trong biu thc l hi khc nhau. Hn na, cc biu thc vi mt cht hot ng "." nh gi mt kt qu loi BIT, khng s. Phn khc loi biu tng c nh ngha vi EQU hoc SET nh gi lun lun s. Nu khng n c th l kh khn trong mt s trng hp, buc cc nh ngha ca biu tng typeless. iu ny c m t chi tit trong chng "III.4 biu" v "III.7 Loi Phn on". Ngoi tr trong hng dn DB, chui di khng lin tc'' l bt hp php. Kim sot $ NOMOD51 cng v hiu ha cc a ch c xc nh trc M. Cc biu tng lp rp c bit AR0 ... AR7 c nh ngha trc cho ngn hng 0 trc bo co kt qu S DNG u tin xy ra.

TH ANH NGUYN

117

V. Danh sch nh dng file =================== Cc nh dng tp tin danh sch ASEM-51 c thit k cung cp cho ngi s dng cng nhiu thng tin v cc m c to ra cng tt. Bn cnh cc m ngun c lit k, c nm cu trc b tr c bn trong danh sch:

- Tiu trang - Phn u tp tin - Cc tiu dng - Chn on li - Bng biu tng hoc danh sch tham chiu cho

Thng thng, tt c cc trang ca danh sch bt u vi mt tiu trang nh hnh di y:

ASEM-51 V1.3 Bn quyn (c) 2002 WW Heinz TRANG 1

N xc nh cc nh lp rp, cha cc thng tin bn quyn v hin th s trang thc t l phi. Sau khi tiu trang, dng ngun l u ra trong cc nh dng tp tin danh sch. Khi s lng ti a ca dng trn mi trang t c, mt tiu trang l u ra sau khi mt nhn vt hnh thc n. Nu my in ca bn khng h tr thc n dng, tiu trang c th c c ch vi s kim sot $ NOPAGING. S dng trn mi trang c th iu chnh nh dng giy vi s kim sot $ PAGELENGTH. Chiu rng ca

TH ANH NGUYN

118

tiu trang (v tt c cc dng khc) c th c thit lp vi s kim sot $ PAGEWIDTH.

Phn u tp tin ch xut hin trn trang u tin. N xc nh cc nh lp rp, lit k tt c cc tp tin u vo v u ra v nh du cc ct cho cc tiu dng. Mt tiu tp tin in hnh c tm kim nh hnh di y:

MCS-51 gia nh Macro Assembler ASEM - 5 1 V 1.3 ================================================== ===

Ngun File: demo.a51 i tng File: demo.hex Danh sch File: demo.lst

Dng ti a ch M ngun

Ngay sau khi phn u tp tin bt u danh sch ca cc dng m ngun. Tt c cc dng m ngun l trc bi mt dng tiu . Dng tiu bao gm bn ct: s dng, bao gm cc tp tin hoc cp v m, dng a ch, v m c to ra. Theo mc nh cc tiu dng cha cc k t tab tit kim khng gian a. Nu my in ca bn hoc trnh duyt tp tin khng h tr cc tab, chng c th c m rng

TH ANH NGUYN

119

khong trng vi s kim sot $ NOTABS.

Ct "Line" cha s dng ton cu. N khng nht thit phi s dng a phng trong tp tin ngun c th, nhng mt dng ton cu con s ny c tnh trn cc ngun chnh, tt c cc file, v tt c ng m rng v m. T bao gm cc tp tin v cc macro c th c lng vo nhau ty tin, ng ton cu s c chm dt bi mt ':' nhn vt cho ngun chnh v tt c bao gm mc tp tin, v vi mt '+' nhn vt cho cc cp m rng v m.

Ct "ti" c mc bao gm cc tp tin hoc v m lm t. Trong cc chnh ngun, ct ny l trng. L ngi u tin bao gm cc tp tin c cp 1. Nu y bao gm cc tp tin bao gm mt tp tin bao gm, chng trnh ny c cp 2, v nh vy. y cng l hp l cho cc cuc gi v m lng nhau. Nu mt v m c gi l trong chnh ngun, dng m rng ca n c cp 1. Nu v m ny gi nhau, n c cp 2, vv. Bao gm cc tp tin v cp v m c th c lng vo nhau theo th t bt k v su no!

Ct "a ch" cho thy cc a ch bt u ca dng c lit k trong hin ti on hot ng (8051 khng gian a ch). Tt c cc a ch c biu din nh l hex s. Cc a ch trong M v cc phn on XDATA l nhng con s c bn ch s. a ch trong tt c cc phn khc khc l s c hai ch s. i vi nhng ngnh m c th khng c giao cho mt phn khc c bit, lnh vc "a ch" c trng.

"Quy tc" ct c th cha ti a bn byte ca m c to ra, l cho tt c cc lnh ca 8051. M ny c lit k trong byte hex s lng bt u t l tri ca "M" ct.

TH ANH NGUYN

120

Tuy nhin, cc m c to ra cho DB v hng dn DW c th di hn bn byte. Trong nhng trng hp ny, m ngun dng tip theo l thm tiu dng cho n khi ton b m ca cc dng c lit k. "Quy tc" ct khng cha m m tiu th khng gian trong 8.051 on CODE. Tri ngc vi nhiu nh lp rp khc, ASEM-51 danh sch cc kt qu nh gi ca tt c cc biu hin c th xut hin trong hng dn gi hoc iu khin lp rp. Nhng gi tr ny c lit k trong hex i din ti l phi ca "M" ct. Cc loi phn on ca nhng biu thc l gn c vi mt nhn vt duy nht l tri ca "M" ct:

C M D D LIU Ti idata X XDATA B BIT N s typeless R ng k

"Ngun" ct cui cng cha cc dng m ngun gc. Mt danh sch m ngun in hnh c tm kim nh sau:

Dng ti a ch M ngun

1:; Mt chng trnh Demo danh sch tp tin mu 2:; ------------------------------3: $ NOMOD51, khng c 8051 SFR

TH ANH NGUYN

121

4: N 004F $ PAGEWIDTH (79), 79 ct trn mi dng 5: $ NOTABS; m rng cc tab 6: N 90 P1 D LIU 090H; cng 1 a ch 7: B 93 VO BIT P1.3; xung vo 8: 9: N 8000 ORG 08000H; thit lp v tr truy cp 10: 8000 80 20 SJMP START; nhy bt u a ch 11: 12: 8002 01 07 DB 1,7; xc nh byte 13: 8004 00 02 00 0C DW 2,12,9; xc nh nhm t 8008 00 09 14: 800A 63 6F 66 66 DB 'coffeeright (c) 2002', 0; chui 800E 65 65 72 69 8012 67 68 74 20 8016 28 63 29 20 801A 32 30 30 32 801E 00 15: 801F N 0003 DS 3, xc nh khng gian 16: 17: 8022 75 30 00 START: MOV COUNT, # 0; thit lp li truy cp 18: 8025 30 93 FD LLEVEL: JNB INPUT, LLEVEL; ch cao 19: 8028 20 93 FD HLEVEL: JB INPUT, HLEVEL; ch i thp 20: 802B 05 30 INC S; m xung 21: 802D 80 F6 JMP LLEVEL; xung tip theo 22: 23: N 30 DSEG AT 030H, b nh RAM 24: 30 N 01 S: DS 1; bin truy cp

TH ANH NGUYN

122

25: 26: END

Nu mt li c pht hin trong mt dng m ngun, v tr ca n c nh du vi mt ^ nhn vt tt nht c th, v mt thng bo li ton din c a vo. Ny l tm kim nh hnh di y:

17: 8022 75 30 00 START: MOV COUNT, # 0; thit lp li truy cp 18: 8025 30 93 FD LLEVEL: JNB INPUT, LLEVEL; ch cao 19: 8028 20 93 00 HLEVEL: JB INPUT, HLEUEL; ch i thp ^ @ @ @ @ @ Biu tng khng c xc nh @ @ @ @ @

20: 802B 05 30 INC S; m xung 21: 802D 80 F6 JMP LLEVEL; xung tip theo

Chn on li phn cui ca chng trnh lit k cc ngn hng ng k s dng, v tng s li c pht hin trn ton hi ng:

ngn hng ng k s dng: 0, 1, 3

187 li c pht hin

TH ANH NGUYN

123

Mt ngn hng ng k c tnh l "s dng", nu chng trnh chuyn sang ngn hng vi mt hng dn S DNG, hoc mt trong nhng biu tng lp rp c bit AR0 ... AR7 c s dng, trong khi cc ngn hng hot ng tch cc. Thng ip

ngn hng ng k s dng: ---

phng tin, m khng c ngn hng c s dng mt cch r rng, v cc chng trnh ang c th, nhng khng nht thit, c ngn hng ng k c lp.

Sau khi cc m nim yt ngun v chn on li, bng biu tng hoc danh sch tham chiu cho bt u. Theo mc nh, mt bng biu tng c to ra. Bng k hiu c lit k tt c nhng biu tng ca mt chng trnh trong th t ch ci vi tn biu tng ca h, loi phn khc, gi tr hex v ng nt u tin. Biu tng c xc nh trc c lit k m khng c mt s ng nt. Danh sch bng biu tng c th b dp tt vi s kim sot $ NOSYMBOLS. Mt danh sch bng biu tng in hnh c tm kim nh hnh di y:

L ti S T O F S Y M B O L S =============================

M chng khon LOI GI TR NG -------------------------------------------------- ---------AKKUM ng k Mt 38 M S 30 47

TH ANH NGUYN

124

HLEVEL M 802E 35 VO bit 93 12 LLEVEL M 802B 34 MY_PROGRAM PHN 14 P1 D LIU 90 Quant s 0013 22 NHN MACRO 5 SP D LIU 81 Ngn xp IDATA 80 17 BT U M 8022 31 VOLTDC XDATA D785 50

Nu $ XREF kim sot c quy nh, mt danh sch tham chiu cho c to ra thay v mt bng k hiu. Tng ng vi danh sch tham chiu cho cho bng biu tng trn tm nh sau:

C R O S S - R E F E R E N C E - L ti S T ti N G =============================================

M chng khon LOI xc nh gi tr THAM CHIU -------------------------------------------------- ----------------------------AKKUM ng k A 38 42 43 M S 30 47 32 40 43 44

TH ANH NGUYN

125

HLEVEL M 802E 35 35 VO BIT 93 12 34 35 LLEVEL M 802B 34 34 41 MY_PROGRAM PHN 14 P1 D LIU 90 12 Quant s 0007 22 44 S 0013 37 NHN MACRO 5 SP D LIU 81 31 Ngn xp IDATA 80 17 31 BT U M 8022 31 24 Thng rc undef. ---- 42VOLTDC XDATA D785 50 33

N s lit k tt c cc biu tng ca chng trnh trong th t ch ci, vi h tn biu tng, tt c cc nh ngha bao gm c ng nt, cc loi phn khc, v gi tr s. Hn na, tt c cc ti liu tham kho biu tng c lit k l tt. Ct SYMBOL cha tn biu tng, trong khi cc ct LOI, GI TR, v c xc nh c th cha cc loi phn khc, gi tr s, v nh ngha dng mt, nhiu hn, hoc khng defintions biu tng. ng k biu tng c cc loi biu tng "NG K", tn m-un c biu tng loi "MODULE", tn v m c cc loi biu tng "v m", v biu tng c c tham chiu nhng khng c xc nh, c nh du vi "undef." trong ct LOI. Bt u t ct THAM CHIU ln v bn tri, c mt s ct (ty thuc vo chiu rng trang), c cha tt c cc s dng ca biu tng ti liu tham kho (nu c). Danh sch tham chiu cho khng phn bit, cho d nhiu nh ngha

TH ANH NGUYN

126

ca, hoc tham chiu n mt biu tng c bit l php lut hay khng. i vi iu ny, tham kho cc thng bo li trong danh sch gc.

VI. H tr 8.051 phi sinh =============================== Hm nay mt s lng ln 8.051 c phi sinh c sn mc gn nh hng thng! Tt c u s dng cng mt tp lnh ca MCS-51 li x l, nhng khc nhau v thnh phn ngoi vi, bao gm mt lot cc cc ng dng. S khc bit cho cc lp trnh ngn ng lp rp l ch yu cc thit lp khc nhau ca cc thanh ghi chc nng c bit v cc a ch b gin on. N lun lun l tt thc hnh s dng cc tn SFR cng trong mt vi iu khin chng trnh ng dng m nh sn xut ca o hm s dng c xc nh. i vi iu ny cc tp tin nh ngha x l *. MCU c cung cp. Tt c h u bao gm cc tp tin vi cc nh ngha ng k chc nng c bit ca mt c bit 8051. Tuy nhin, nhng biu tng c xc nh trc ca ASEM-51 cn phi c bt tt trc khi bao gm c cc nh ngha SFR ca phi sinh khc nh di y: $ NOMOD51 $ INCLUDE (80C515.MCU)

iu ny s tt nhng biu tng c xc nh trc ca 8051 v bao gm cc ng k nh ngha ca 80C515 hay 80C535 tng ng. Do n rt d dng cho ngi s dng thch nghi ASEM-51 ti mt nh mi 8051! Tt c nhng g ng lm l vit mt tp tin tng ng bao gm vi SFR nh ngha xut pht t bng d liu ca nh sn xut. Tn ca tt c cc tp tin nh ngha vi x l tng ng vi ROM

TH ANH NGUYN

127

phin bn ca mt phi sinh c th. Tt nhin n cng p dng cho EPROM, EEPROM, n flash, v ROM-t hn phin bn (nu c) ca phi sinh. Bng cch ny, cc 8051.MCU tp tin cung cp c chnh xc c xc nh trc biu tng ca ASEM-51, bi v bng k hiu bn trong ca n c to ra t n! chuyn ASEM-51 hng dn gim thit lp ca Philips 83C75x gia nh ca vi iu khin, cc $ PHILIPS kim sot c th c s dng.

Hin nay cc tp tin nh ngha x l sau y c cung cp ASEM-51:

Tn phin bn sn xut -------------------------------------------------- ------------------8051.MCU Intel 8051, 8031, 8751BH (V nhng ngi khc) 8051AH, 8031AH, 8751H, 8051AHP, 8751H-8 80C51BH, 80C31BH, 87C51, 80C51BHP Atmel 89C51, 89LV51, 87LV51, 80F51, 87F51 8052.MCU Intel 8052AH, 8032AH, 8752BH SIEMENS 80.513, 8352-5 80C52.MCU Intel 80C52, 80C32, 87C52, 80C54, 87C54, 80C58, 87C58 83C51FX.MCU Intel 83C51FA, 80C51FA, 87C51FA 83C51FB, 87C51FB, 83C51FC, 87C51FC 83C51R.MCU Intel 83C51RA, 80C51RA, 87C51RA, 83C51RB, 87C51RB, 83C51RC, 87C51RC 83C51KB.MCU Intel 83C51KB 83C51GB.MCU Intel 83C51GB, 80C51GB, 87C51GB

TH ANH NGUYN

128

83C151.MCU Intel 83C151SB, 87C151SB, 80C151SB 83C151SA, 87C151SA 83C152.MCU Intel 80C152JA, 83C152JA, 80C152JB 80C152JC, 83C152JC, 80C152JD 83C452.MCU Intel 83C452, 80C452 8044.MCU Intel 8044AH, 8344AH, 8744AH 83931HA.MCU Intel 83931HA, 80931HA 83931AA.MCU Intel 83931AA, 80931AA 80512.MCU SIEMENS 80.512, 80.532 80515.MCU SIEMENS 80.515, 80.535, 80515K, 83.515-4 80C515.MCU SIEMENS 80C515, 80C535, 83C515H 83C515A.MCU SIEMENS 83C515A-5, 80C515A 80C517.MCU SIEMENS 80C517, 80C537 C501.MCU Infineon 501-1R, 501-L C502.MCU Infineon C502-2R, C502-L C503.MCU Infineon C503-1R, C503-L C504.MCU Infineon C504-2R, C504-L C505.MCU Infineon C505-2R, C505-L C505C.MCU Infineon C505C-2R, C505C-L C505A.MCU Infineon C505A-4E, C505A-L C505CA.MCU Infineon C505CA-4E, C505CA-L C505L.MCU Infineon C505L C508.MCU Infineon C508-4R, C508-4E C509.MCU Infineon C509-L C511.MCU Infineon C511, C511A C513.MCU Infineon C513, C513A, C513A-H C513AO.MCU Infineon C513AO

TH ANH NGUYN

129

C515.MCU Infineon C515-L, C515-1R C515A.MCU Infineon C515A-L, C515A-4R C515C.MCU Infineon C515C-8R C517A.MCU Infineon C517A-L, C517A-4R, 83C517A-5, 80C517A C540U.MCU Infineon C540U C541U.MCU Infineon C541U C868.MCU Infineon C868-1R, C868-1S 83C451.MCU Philips 83C451, 80C451, 87C451 83C528.MCU Philips 83C528, 80C528, 87C528, 83C524, 87C524 83CE528, 80CE528, 89CE528 83C550.MCU Philips 83C550, 80C550, 87C550 83C552.MCU Philips 83C552, 80C552, 87C552 83C562.MCU Philips 83C562, 80C562 83C652.MCU Philips 83C652, 80C652, 87C652 83C654, 87C654, 83CE654, 80CE654 83C750.MCU Philips 83C750, 87C750 83C751.MCU Philips 83C751, 87C751 83C752.MCU Philips 83C752, 87C752 83C754.MCU Philips 83C754, 87C754 83C851.MCU Philips 83C851, 80C851 83C852.MCU Philips 83C852 87LPC762.MCU Philips 87LPC762 87LPC768.MCU Philips 87LPC768 80C32X2.MCU Philips 80C31X2, 80C32X2, 80C51X2, 80C52X2, 80C54X2, 80C58X2, 87C51X2, 87C52X2, 87C54X2, 87C58X2, 89C51X2, 89C52X2, 89C54X2, 89C58X2

TH ANH NGUYN

130

80C521.MCU AMD 80C521, 80C541, 87C521, 87C541, 80C321 80C324.MCU AMD 80C324 83C154.MCU OKI 83C154, 80C154, 85C154VS 83C154S.MCU 83C154S OKI, 80C154S, 85C154HVS 80C310.MCU DALLAS 80C310 80C320.MCU DALLAS 80C320, 87C320, 80C323, 87C323 80C390.MCU DALLAS 80C390 87C520.MCU DALLAS 87C520, 83C520 87C530.MCU DALLAS 87C530, 83C530 87C550.MCU DALLAS 87C550 89C420.MCU DALLAS 89C420 DS5000.MCU DALLAS 5000FP, 5000, 5000T, 2250, 2250T DS5001.MCU DALLAS 5001FP, 5002FP, 5002FPM, 2251T, 2252T MAX7651.MCU Maxim MAX7651, MAX7652 COM20051.MCU SMC COM20051 89C52.MCU Atmel 89C52, 89C55, 89LV52, 89LV55, 87LV52, 80F52, 87F52 87F51RC.MCU Atmel 87F51RC, 87F55, 87LV55 89C1051.MCU Atmel 89C1051 89C2051.MCU Atmel 89C2051, 89C4051, 89C1051U 89S8252.MCU Atmel 89S8252, 89LS8252 89S51.MCU Atmel 89s51 89S52.MCU Atmel 89S52, 89LS52 89S53.MCU Atmel 89S53, 89LS53 89S4D12.MCU Atmel 89S4D12 73M2910.MCU TDK 73M2910, 73M2910A AN2131.MCU Cypress AN2121, AN2122, AN2125, AN2126,

TH ANH NGUYN

131

AN2131, AN2135, AN2136

Ph lc A ==========

ASEM-51 Thng bo li ----------------------

A.1 li hi: -------------------Li lp rp p dng n s thng nht ca ngn ng lp rp chng trnh trong c php v ng ngha. Nu mt trong cc li c pht hin, n c gn c trong danh sch tp tin, v thc hin chng trnh tip tc. Khi lp rp xong, ASEM chm dt vi m thot 1:

Bo li ngha -------------------------------------------------- --------------------------a ch di y phn khc c s C gng thit lp truy cp v tr ca cc phn on hin nay di a ch c s phn khc.

gii quyt ra khi phm vi a ch ca mt c nhy hay gi hng dn khng th t c vi phng thc gii quyt c la chn.

TH ANH NGUYN

132

l mt tham s v m Trong mt nh ngha v m, mt biu tng a phng bng mt nh ngha trc tn tham s.

tranh lun vt qu cui dng Mt i s v m c cha nhiu m hn ng du ngoc nhn.

c gng chia cho s khng Trong qu trnh nh gi mt thi gian lp rp biu, cc nh lp rp phi chia cho khng.

ngoc v tr ny ca mt biu thc, ch iu hnh nh phn c php.

du phy d kin c phi l mt ',' nhn vt trong v tr nh du.

lnh sau khi tuyn b END Tuyn b END c tip theo bo co lp rp thm.

ra lin tc trong phm vi Mt hng s ln hn 65.535.

bn sao biu tng a phng Trong mt nh ngha v m, mt biu tng a phng c xc nh nhiu ln hoc bng mt tn tham s c xc nh trc .

TH ANH NGUYN

133

trng lp tn tham s Tn tham s ca mt v m khng phi tt c khc nhau.

Endif tuyn b d kin s c cc cng trnh cp pht IFxx, m khng chm dt vi mt Hng dn meta endif.

Endm tuyn b d kin s c nh ngha v m, trong khng chm dt vi mt endm hng dn.

biu hin ra khi phm vi Kt qu ca mt biu thc l qu ln hay qu nh cho mc ch .

tn tp tin d kin c phi l mt tn tp tin hp l v tr ny.

tip tham chiu n v m Mt v m c gi l, trc khi n c xc nh.

v pha trc tham kho ng k mt loi biu tng ng k c s dng, trc khi n c EQU'd hoc SET.

nhn vt bt hp php Mt tuyn b cha cc k t, trong khng c php vo MCS-51 lp rp ngn ng.

TH ANH NGUYN

134

bt hp php lin tc c li c php trong mt hng s.

bo co kim sot bt hp php Mt tuyn b c bt u vi mt khng bit t kha bt u vi mt $.

ton hng bt hp php v tr ny ca mt biu thc, mt ton hng hp l c d kin.

c php tuyn b bt hp php Mt tuyn b c cha mt yu t c php, m khng c php trong bi cnh ny.

khng hp l a ch c s Mt a ch d liu khng phi l bit a ch c s dng trn cc pha bn tri ca mt '.' iu hnh.

khng hp l s bit Mt s ln hn 7 c c s dng trn bn phi ca mt '.' iu hnh.

hng dn khng hp l Cc hng dn c trc v hiu ha vi $ PHILIPS kim sot.

v m loi ton hng Mt biu tng loi v m c s dng nh mt ton hng trong mt biu thc s.

chiu di dng ti a vt qu Trong v m m rng, thay th

TH ANH NGUYN

135

cc thng s v / hoc cc k hiu a phng tng chiu di ng dn n hn 255 k t.

tht lc hng dn a phng trong mt nh ngha v m, mt trong A PHNGdng c trc bi thn hnh.

hng dn v m t khng ng ch Mt hng dn v m c s dng bn ngoi mt nh ngha v m, hoc nu khng tht lc trong cu trc chng trnh.

tht lc hnh v m Mt nh iu hnh v m (<,>,!,%, &) c c s dng mt v tr sai.

tn m-un c xc nh c nhiu hn mt TN bo co trong chng trnh.

phi c bit n trn u tin vt qua Kt qu ca mt biu thc phi y nh gi trn vt qua 1 lp rp.

phi c bt u bng $ TIT KIM A $ RESTORE kim sot xy ra m khng mt trc $ TIT KIM kim sot.

phi c i trc bi IFxx Mt ELSEIFxx, ELSE hoc endif meta hng dn xy ra m khng c mt trc hng dn meta IFxx.

TH ANH NGUYN

136

khng c tuyn b END tm thy chng trnh ny kt thc m khng c mt END tuyn b.

khng c php vo BIT phn khc Ch l khng c php trong mt Phn khc BIT.

ch c php trong BIT phn khc Hng dn ch c php trong mt Phn khc BIT.

ch c php trong phn khc M Hng dn ch c php trong mt on CODE.

i ton hng Mt lnh kt thc, trc khi n c c php hon thnh.

li giai on Mt biu tng c nh gi khc nhau gi tr trn 1 ng chuyn v vt qua 2, hoc v m c nh ngha khc nhau v vt qua 1 v vt qua 2.

Lu : y l mt, lp rp ni b nghim trng ----- Li, v cn phi c bo co cho tc gi ngay lp tc!

trc bi ng khng kim sot Mt kim sot chnh xy ra sau khi bo co l khng c lp rp iu khin.

TH ANH NGUYN

137

ng k kiu ton hng Mt loi biu tng ng k c s dng nh mt ton hng trong mt biu thc s.

gii hn phn khc vt qu Cc truy cp v tr vt qu ranh gii ca cc phn on hin nay.

phn khc loi khng ph hp Cc loi phn on ca mt ton hng khng khng ph hp vi loi ca cc hng dn.

chui vt qu cui dng Mt chui k t khng phi l ng chm dt vi mt bo gi.

biu tng c xc nh C gng xc nh li mt k hiu, m c xc nh.

tn biu tng d kin c phi l mt tn biu tng hp l v tr ny.

biu tng khng c nh ngha mt biu tng c tham chiu, trong c khng bao gi c xc nh.

qu nhiu du ngoc ng ca Mt biu thc cha ng ca hn hn m ngoc n.

qu nhiu du ngoc n m Mt biu thc c cha m hn hn ng ngoc n.

TH ANH NGUYN

138

qu nhiu ton hng Mt lnh c ton hng hn hn d kin.

ton t n hng d kin v tr ny ca mt biu thc, ch nh khai thc nguyn phn c php.

ngi dng xc nh li Mt thng bo li ngi dng nh ngha c buc vi s kim sot LI $.

A.2 li Thi gian chy: ------------------Thi gian chy li l li hot ng, hoc I / O li. Nu mt trong cc li c pht hin, n c gn c trn bn iu khin, v ASEM c hy b vi m s xut cnh 2:

Thng bo li ngha -------------------------------------------------- --------------------------truy cp b t chi Khng c c quyn i vi hot ng th. tn ty chn khng r rng Khng k t quy nh. lp lun thiu La chn i hi mt cuc tranh ci. thit b hoc ngun ti nguyn C gng bn rn vit th cho mt thit b bn rn. (Linux) a cng Khng min ph khng gian a. a C gng vit c bo v ghi vo mt a ghi-bo v. li xe khng a sn sng tt, hoc khng c phng tin truyn thng gn kt. sao chp tn tp tin C gng ghi ln mt tp tin u vo hay u ra.

TH ANH NGUYN

139

gy t vong I / O li chung (khng r) I / O li a hoc thit b. np khng tm thy ngun hoc bao gm cc tp tin khng c tm thy. (DOS / Windows) la chn bt hp php c php La chn khng c xc nh mt cch chnh xc. La chn tham s khng hp l c mt cuc tranh ci bt hp php. khng c tp tin u vo khng c tn tp tin trong dng lnh. khng c tp tin hoc th mc ngun hoc tp tin bao gm khng c tm thy. (Linux) khng phi l mt ng dn th mc c cha mt tn khng c th mc. (Linux) ra khi b nh Heap trn! a con ng khng tm thy hoc th mc khng c tm thy. (DOS / Windows) k hiu l xc nh trc mt / Xc nh ty chn xc nh mt k hiu c xc nh trc. qu nhiu tp tin m Khng c nhiu tp tin min ph x l. qu nhiu thng s hn ba tn tp tin c quy nh. cha bit la chn La chn khng c thc hin.

Ch c h iu hnh DOS ty chn dng lnh c cp trn n gin ha. Trong Linux, h phi c thay th bng cc ty chn Linux tng ng.

Ph lc B ==========

HEXBIN Thng bo li ---------------------

B.1 li chuyn i: ----------------------

TH ANH NGUYN

140

Li chuyn i p dng n s thng nht ca tp tin Intel HEX v ty chn chng trnh. Nu mt trong cc li c pht hin, n c gn c trn giao din iu khin, v HEXBIN c hy b vi m thot 1:

Thng bo li ngha -------------------------------------------------- --------------------------kim tra li Kim tra l khng chnh xc. d liu sau khi kt thc tp tin Loi k lc 0 h s sau khi loi 1 k lc. np di ra khi phm vi / ty chn di lm cho tp tin qu ln. in-byte ra khi phm vi / ty chn FILL xc nh gi tr byte> 255. hex tp tin li nh dng Chc chn khng c tp tin Intel HEX. bt hp php hex k t ch s khng c ch s hex hp l. bt hp php k lc loi loi ghi l khng ai trong s 0 hoc 1. khng hp l chiu di chiu di k lc ghi khng trng bn ghi. kt thc tp tin ghi nhiu hn mt loi 1 k lc. khng c h s d liu tm thy tp tin khng cha bt k 0 h s loi. khng c h s kt thc tp tin tm thy tp tin kt thc m khng c mt bn ghi loi 1. b p ra khi phm vi / ty chn OFFSET lm cho tp tin qu ln. k lc vt qu khng gian a ch FFFFh bc xung quanh trong h s. k lc vt qu chiu di tp tin / Chiu di ty chn thc hin tp tin qu ngn.

Ch c h iu hnh DOS ty chn dng lnh c cp trn n gin ha. Trong Linux, h phi c thay th bng cc ty chn Linux tng ng.

B.2 li Thi gian chy: -------------------

TH ANH NGUYN

141

Thi gian chy li l li hot ng, hoc I / O li. Nu mt trong cc li c pht hin, n c gn c trn bn iu khin, v HEXBIN c hy b vi m s xut cnh 2:

Thng bo li ngha -------------------------------------------------- --------------------------truy cp b t chi Khng c c quyn i vi hot ng th. tn ty chn khng r rng Khng k t quy nh. lp lun thiu La chn i hi mt cuc tranh ci. thit b hoc ngun ti nguyn C gng bn rn vit th cho mt thit b bn rn. (Linux) a cng Khng min ph khng gian a. a C gng vit c bo v ghi vo mt a ghi-bo v. li xe khng a sn sng tt, hoc khng c phng tin truyn thng gn kt. sao chp tn tp tin C gng ghi ln mt tp tin u vo hay u ra. gy t vong I / O li chung (khng r) I / O li a hoc thit b. khng tm thy tp tin khng tm thy tp tin Intel HEX. (DOS / Windows) la chn bt hp php c php La chn khng c xc nh mt cch chnh xc. La chn tham s khng hp l c mt cuc tranh ci bt hp php. khng c tp tin u vo khng c tn tp tin trong dng lnh. khng c tp tin hoc th mc tp tin Intel hex khng c tm thy. (Linux) khng phi l mt ng dn th mc c cha mt tn khng c th mc. (Linux) a con ng khng tm thy hoc th mc khng c tm thy. (DOS / Windows) qu nhiu tp tin m Khng c nhiu tp tin min ph x l. qu nhiu thng s hn hai tn tp tin c quy nh. cha bit la chn La chn khng c thc hin.

TH ANH NGUYN

142

Ph lc C ==========

Biu tng c xc nh trc ------------------

a ch d liu: --------------P0 P1 080H 090H SP 081H SCON 098H DPL 082H SBUF 099H DPH 083H P2 0a0h PCON 087H IE 0A8H TCON 088H 0B0H P3 TMOD 089H 0B8H IP TL0 08AH PSW 0D0H TL1 08BH ACC 0E0H TH0 08CH B 0F0H TH1 08DH

a ch BIT: -------------IT0 088H EA 0AFH IE0 089H RXD 0B0H IT1 08AH TXD 0B1H

TH ANH NGUYN

143

IE1 08BH INT0 0B2H TR0 08CH INT1 0B3H TF0 08DH T0 0B4H TR1 08EH T1 0B5H TF1 08FH WR 0B6H RI 098H RD 0B7H TI 099H PX0 0B8H RB8 09AH PT0 0B9H TB8 09BH PX1 0BAH REN 09CH PT1 0BBH SM2 09DH PS 0BCH SM1 09EH P 0D0H SM0 09FH OV 0D2H EX0 0A8H RS0 0D3H ET0 0A9H RS1 0D4H EX1 0AAH F0 0D5H ET1 0ABH AC 0D6H ES 0ACH CY 0D7H

a ch M: --------------t li 0000H EXTI1 0013H EXTI0 0003H Timer1 001BH TIMER0 000BH 0023H Sint

TH ANH NGUYN

144

S ng bng: -------------? ASEM_51 8051H? VERSION 0130H?

Ph lc D ==========

T kha d phng -----------------

Biu tng Assembler c bit: -------------------------$ V tr truy cp Mt c quy AB A / B cp ng k AR0, AR1, AR2, AR3, AR4, AR5, AR6, AR7 ng k trc tip a ch C mang c DPTR d liu con tr Chng trnh my tnh truy cp R0, R1, R2, R3, R4, R5, R6, R7 ng k

Gip tr nh hng dn --------------------ACALL DA JNB Mul RR

TH ANH NGUYN

145

ADD DEC JNC NOP RRC ADDC DIV JNZ ORL SETB AJMP DJNZ JZ POP SJMP ANL INC LCALL PUSH subb GI JB LJMP RET SWAP CJNE JBC MOV RETI XCH CLR JC MOVC RL XCHD CPL JMP MOVX RLC XRL

Hng dn gi ------------------AT D LIU DSEG IDATA SET BIT DB DW ISEG S DNG BSEG DBIT END TN XDATA M DS EQU ORG XSEG CSEG

Nh khai thc --------V GT LOW Bc SHL EQ cao di hn khng SHR GE LE MOD HOC XOR

iu khin lp rp ------------------

TH ANH NGUYN

146

$ $ COND GO $ $ NODEBUG NOSYMBOLS $ RS $ CONDONLY $ IC $ NOGE $ NOTABS $ SA $ $ DA BAO GM $ NOGEN $ NOXR $ TIT KIM $ $ NGY LI $ Noli $ NOXREF $ SB DB $ $ $ DANH NOLIST $ PAGELENGTH $ BIU TNG $ $ DEBUG MACRO $ NOMACRO $ PAGEWIDTH $ TITLE $ EJ $ MO $ $ Nomo phn trang $ TT $ y $ MOD51 $ NOMOD51 $ PHILIPS $ CNH BO $ LI $ MR $ $ NOMR PI $ XR $ $ GE NOBUILTIN $ NOPAGING $ PL $ XREF $ $ GEN NOCOND $ NOPI $ PW $ $ GENONLY NODB $ NOSB $ RESTORE

Hng dn meta ----------------Khc ELSEIFN endm ifdef A PHNG ELSEIF ELSEIFNB EXITM IFN MACRO ELSEIFB ELSEIFNDEF NU IFNB REPT ELSEIFDEF endif IFB ifndef

Ph lc E ==========

c im k thut ca nh dng Intel HEX

TH ANH NGUYN

147

------------------------------------i tng nh dng tp tin ny c h tr bi nhiu nh lp rp cho, tin ch, v hu ht cc lp trnh EPROM. Mt tp tin Intel hex l mt tp tin vn bn ASCII 7-bit, c cha mt chui cc bn ghi d liu v ghi li mt kt thc. Mi h s l mt dng vn bn bt u sau du hai chm v kt thc vi CR v LF. Ghi d liu cha ln n 16 byte d liu, a ch ti 16-bit, mt k lc loi byte v mt tng kim tra 8-bit. Tt c cc s c i din bi cc trng hp trn K t ASCII hex.

Ghi d liu:

Byte 1 du hai chm (:) 2 v 3 s nh phn byte d liu cho h s ny 4 v 5 a ch ti cho h s ny, byte cao 6 v 7 a ch ti "" "byte thp 8 v 9 loi k lc: 00 (bn ghi d liu) 10 x byte d liu, hai k t x 1 x 2 kim tra (hai k t) x 3 x 4 CR v LF

Mt bn ghi d liu in hnh nh

: 10E0000002E003E4F588758910F58DF58BD28E302A

K lc cui cng l dng cui cng ca tp tin. V nguyn tc n c cu trc nh mt bn ghi d liu, nhng s lng d liu

TH ANH NGUYN

148

byte l 00, cc loi h s l 01 v lnh vc ti a ch l 0000.

END RECORD:

Byte 1 du hai chm (:) 2 v 3 00 (s byte d liu) 4 v 5 00 (a ch ti, byte cao) 6 v 7 00 (a ch ti, byte thp) 8 v 9 loi k lc: 01 (k lc cui) 10 v 11 kim tra (hai k t) 12 v 13 CR v LF

K lc END in hnh nh

: 00000001FF

Kim tra l ca hai b sung s tin 8-bit, m khng thc hin, ca s lng byte, hai byte a ch ti, cc loi h s v tt c cc byte d liu byte.

Ph lc F ==========

ASCII Character Set

TH ANH NGUYN

149

-----------------------

hex | 00 10 20 30 40 50 60 70 ----- + -----------------------------------------0 | NUL DLE 0 @ P `p 1 | SOH DC1! 1 A Q q 2 | STX DC2 "2 B R b r 3 | ETX DC3 # 3 C S c s 4 | EOT DC4 4 $ D T d t 5 | ENQ NAK% 5 E U e u 6 | ACK SYN 6 & F V f v 7 | BEL ETB '7 G W g w 8 | BS CAN (8 H X h x 9 | HT EM) 9 ti Yi y A | SUB LF *: J Z j z B | VT ESC +; K [k { C | FF FS, <L \ l | D | CR GS - = M] m} E | SO RS. > N ^ n ~ F | SI M /? O _ o DEL

Ph lc G ==========

TH ANH NGUYN

150

Vn chng ---------S th t

Intel: MCS (R) Hng dn s dng 51 vi iu khin gia nh ca ngi s dng Hng dn MCS-51 Macro Assembler ca ngi s dng B iu khin 8-Bit nhng 1990 8XC51RA/RB/RC CHMOS Single-Chip vi iu khin 8-Bit 272.659-002 8XC51RA/RB/RC m t phn cng, thng Hai nm 1995 272.668-001 83C51KB Hiu sut cao Bn phm vi iu khin 272.800-001 83C51KB m t phn cng 272.801-001 Hng dn s dng MCS 51 Vi iu khin gia nh ca ngi s dng, thng 2 nm 1994 272.383-002 8XC151SA v 8XC151SB m t phn cng, thng 6 nm 1996 272.832-001 Nhng vi iu khin, 1997 270646-009 8x931AA, hng dn s dng Thng Chn 97 8x931HA USB ngoi vi iu khin ca ngi s dng

SIEMENS: SAB 80512/80532 ngi s dng bng tay B2-B3808-XX-7600 SAB 80515/80535 ngi s dng hng dn s dng B2-B3976-XX-7600 SAB 80C515/80C535 Bng d liu SAB 80C515A/83C515A-5 B sung B158-H6613-XX-7600 SAB 80C515A/83C515A-5 Bng d liu B158-H6605-XX-7600 Hng dn s dng B258-B6075-XX-7600 SAB 80C517/80C537 ca ngi s dng SAB 80C517A/83C517A-5 B sung B158-H6612-XX-7600 SAB 80C517A/83C517A-5 Bng d liu B158-H6581-XX-7600 SIEMENS VI d liu Danh mc B158-H6569-XX-7600 SAB 80513/8352-5 Bng d liu B158-B6245-XX-7600

TH ANH NGUYN

151

Hng dn s dng B158-H6723-G1-X-7600 SAB-501 ca ngi s dng Hng dn s dng B158-H6722-G1-X-7600 SAB-C502 ca ngi s dng Hng dn s dng B158-H6650-G1-X-7600 SAB-C503 ca ngi s dng Ghi ch ng dng v Hng Dn S Dng, CD-ROM B193-H6900-XX-7400 Hng dn s dng B158-H6958-XX-7600 C504 8-Bit CMOS vi iu khin ca ngi s dng Hng dn s dng B158-H6973-XX-7600 C509-L t 8-Bit CMOS vi iu khin ca ngi s dng Hng dn s dng B158-H6981-XX-7600 C515C 8-Bit CMOS vi iu khin ca ngi s dng

Infineon: Tay 04,98 C515 8-Bit CMOS vi iu khin ca ngi s dng Hng dn s dng 08,97 C515A 8-Bit CMOS vi iu khin ca ngi s dng Hng dn s dng 01,99 C517A 8-Bit CMOS vi iu khin ca ngi s dng C540U/C541U 8-Bit CMOS vi iu khin Bng d liu 10.97 Hng dn s dng 05,99 C513AO 8-bit CMOS vi iu khin ca ngi s dng Hng dn s dng 08,97 C505/C505C 8-Bit CMOS vi iu khin ca ngi s dng C505A/C505CA CMOS Vi iu khin 8-Bit, Ph lc 09,97 C505L Vi iu khin CMOS 8-bit, d liu Bng 06,99 Hng dn s dng thng 5 nm 2001 C508 8-Bit CMOS vi iu khin ca ngi s dng Hng dn s dng C868 8-Bit CMOS vi iu khin ca ngi s dng, V 0.5.1 Thng 1 2002

Philips: Tay PCB83C552 ca ngi s dng PCB83C552, PCB80C552 d liu pht trin 8051 da trn vi iu khin 8-Bit - S tay d liu 1994 83C754/87C754 Thng s k thut s b nm 1998 ngy 23 thng 4 87LPC762 Liu, 26 Thng 10 2001 87LPC768 Liu, 12 Thng Ba 2002 P80C3xX2, P80C5xX2, P87C5xX2 Bng d liu nm 2002 12 thng 6 P89C51X2/52X2/54X2/58X2 Bng d liu nm 2002 05 thng 6

TH ANH NGUYN

152

AMD: Tm-Bit 80C51 x l nhng - Sch 1990

OKI: MSM80C154, tay MSM83C154 ca ngi s dng Vi iu khin Sch, 5th Edition 1990

TDK: TSC 73M2910/2910A vi iu khin, 10/22/96 - rev.

DALLAS: Hng dn tc cao Micro ca ngi s dng, V1.3 thng 1 nm 1994, 011.994 Hng dn an ton vi iu khin ca ngi s dng, 062.001 DS80C310 tc cao Micro, 090.198 DS80C320/DS80C323 High-Speed/Low-Power Micro, 070.196 DS80C390 kp CAN tc cao vi x l, 090.799 DS87C520/DS83C520 EPROM / ROM tc cao Micro, 110.195 DS87C530/DS83C530 EPROM / ROM Micro vi thi gian thc ng h, 112.299 DS87C550 EPROM tc cao Micro vi A / D v PWM, 091.698 Hng dn DS89C420 Ultra High-Speed Vi iu khin ca ngi s dng, 020.602

Cu chm ngn: Reference Manual MAX7651/MAX7652 Lp trnh MAX7651/MAX7652 Liu, 19-2119; Rev 0; 01/08

Atmel: AT89C51, 8-Bit Vi iu khin vi 4 Kbytes flash 0265E AT89C52, 8-Bit Vi iu khin vi 8 Kbytes flash 0313E AT89C55, vi iu khin 8-bit vi 20K byte flash AT89LV51, 8-Bit Vi iu khin vi 4 Kbytes flash 0303C AT89LV52, 8-Bit Vi iu khin vi 8 Kbytes flash AT89C1051, 8-Bit Vi iu khin vi 1 Kbyte flash 0366C

TH ANH NGUYN

153

AT89C2051, 8-Bit Vi iu khin vi 2 Kbytes flash 0368C AT89C4051, 8-Bit Vi iu khin vi Bytes 4K flash s b AT89C1051U, 8-Bit Vi iu khin vi Bytes 1K flash s b AT89S8252, 8 Bit vi iu khin vi 8K byte flash s b AT89LS8252, 8-Bit Vi iu khin vi 8K Bytes flash 0850B-B-12/97 AT89S51, vi iu khin 8-bit vi 4K Bytes ISP flash 2487A-10/01 AT89S52, Vi iu khin 8-bit vi 8K Bytes ISP flash 1919A-07/01 AT89LS52, 8-bit LV Vi iu khin vi 8K Bytes ISP flash 2601A-12/01 AT89S53, 8-Bit Vi iu khin vi Bytes 12K flash s b AT89LS53, 8-Bit Vi iu khin vi Bytes 12K flash 0851B-B-12/97 AT89LV55, 8-Bit Vi iu khin vi 20K byte flash 0811A-A-7/97 AT80F51, 8-Bit Vi iu khin vi 4K Bytes QuickFlash 0979A-A-12/97 AT87F51, 8-Bit Vi iu khin vi 4K Bytes QuickFlash 1012A-02/98 AT80F52, 8-Bit Vi iu khin vi 8K Bytes QuickFlash 0980A-A-12/97 AT87F52, 8-Bit Vi iu khin vi 8K Bytes QuickFlash 1011A-02/98 AT89S4D12, 8-Bit Vi iu khin vi 132K Bytes flash 0921A-A-12/97 AT87F51RC, 8-Bit Vi iu khin vi 32K Bytes QuickFlash 1106B-12/98 AT87F55, 8-Bit Vi iu khin vi 20K Bytes QuickFlash 1147A-05/99 AT87LV51, vi iu khin 8-bit vi 4K Bytes QuickFlash 1602A-04/00 AT87LV52, 8-Bit Vi iu khin vi 8K Bytes QuickFlash 1437A-07/99 AT87LV55, 8-bit vi iu khin vi 20K Bytes QuickFlash 1609A-04/00 Cy bch: EZ-USB tch hp vi mch, k thut Reference Manual Phin bn 1.9

Vn hc c: ------------------

TH ANH NGUYN

154

Andreas Roth: Das Vi iu khin Kochbuch MCS51, 6. Aufl. 2002, mitp-Verlag, ISBN 3-8266-0722-8

Ph lc H ==========

Nhn hiu hng ha ----------

ASEM-51 l mt thng hiu ca W.W. Heinz. MCS-51 v ASM51 l thng hiu ca Tp on Intel. Turbo Pascal v Borland-Pascal l thng hiu ca Borland International, Inc Delphi l mt thng hiu ca Borland International, Inc Turbo C + + v Borland C + + l thng hiu ca Borland International, Inc Turbo-ng l mt thng hiu ca Borland International, Inc IBM-PC, IBM-XT, IBM-AT v OS / 2 l thng hiu ca Tp on IBM. MS-DOS v Windows l thng hiu ca Tp on Microsoft. Novell DOS l mt thng hiu ca Novell, Inc TM l thng hiu ca SDC i tc II L.P. 4DOS l thng hiu ng k ca JP Software Inc Linux l mt thng hiu ca Linus Torvalds. FreePascal l thng hiu ca Florian Klaempfl. Tt c cc m thit b ca 8.051 c phi sinh l thng hiu ca nh sn xut. Thng hiu v tn sn phm l thng hiu ca hng s hu chng.

TH ANH NGUYN

155

Ph lc I ==========

8051 Hng dn trong s th t ------------------------------------

Ch vit tt: trc tip = a ch d liu 8-bit trong b nh const8 = 8-bit lin tc trong b nh M const16 = 16-bit lin tc trong b nh M addr16 = 16-bit a ch M di addr11 = 11-bit a ch M tuyt i rel = k 8-bit a ch M tng i bit = 8-bit a ch BIT trong b nh

Opcode Mnemonic Php ton Bytes Flags chu k -------------------------------------------------- -------------00 NOP 1 1 01 AJMP addr11 2 2 02 LJMP addr16 3 2 03 RR A 1 1 04 INC A 1 P 1 05 INC trc tip 2 1 06 INC @ R0 1 1 07 INC @ R1 1 1

TH ANH NGUYN

156

08 INC R0 1 1 09 INC R1 1 1 0A INC R2 1 1 0B INC R3 1 1 0C INC R4 1 1 0D INC R5 1 1 0E INC R6 1 1 0F INC R7 1 1 10 bit JBC, rel 3 2 11 ACALL addr11 2 2 12 LCALL addr16 3 2 13 RRC A 1 CY P 1 14 thng 12 A 1 P 1 15 Thng 12 trc tip 2 1 Ngy 16 thng 12 @ R0 1 1 Ngy 17 thng 12 @ R1 1 1 18 thng 12 R0 1 1 Ngy 19 thng 12 R1 1 1 1A Thng Mi Hai R2 1 1 Thng Mi Hai 1B R3 1 1 1C Thng Mi Hai R4 1 1 1D Thng Mi Hai R5 1 1 1E Thng Mi Hai R6 1 1 1F Thng Mi Hai R7 1 1 20 JB bit, rel 3 2 21 AJMP addr11 2 2 22 RET 1 2

TH ANH NGUYN

157

23 RL A 1 1 24 ADD A, # const8 2 CY AC OV P 1 25 ADD A, trc tip 2 CY AC OV P 1 26 ADD A, @ R0 1 CY AC OV P 1 27 ADD A, @ R1 1 CY AC OV P 1

Opcode Mnemonic Php ton Bytes Flags chu k -------------------------------------------------- -------------28 ADD A, R0 1 CY AC OV P 1 29 ADD A, R1 1 CY AC OV P 1 2A ADD A, R2 1 CY AC OV P 1 2B ADD A, R3 1 CY AC OV P 1 2C ADD A, R4 1 CY AC OV P 1 2D ADD A, R5 1 CY AC OV P 1 2E ADD A, R6 1 CY AC OV P 1 2F ADD A, R7 1 CY AC OV P 1 30 bit JNB, rel 3 2 31 ACALL addr11 2 2 32 RETI 1 2 33 RLC A 1 CY P 1 34 ADDC A, # const8 2 CY AC OV P 1 35 ADDC A, trc tip 2 CY AC OV P 1 36 ADDC A, @ R0 1 CY AC OV P 1 37 ADDC A, @ R1 1 CY AC OV P 1 38 ADDC A, R0 1 CY AC OV P 1 39 ADDC A, R1 1 CY AC OV P 1

TH ANH NGUYN

158

3A ADDC A, R2 1 CY AC OV P 1 3B ADDC A, R3 1 CY AC OV P 1 3C ADDC A, R4 1 CY AC OV P 1 3D ADDC A, R5 1 CY AC OV P 1 3E ADDC A, R6 1 CY AC OV P 1 3F ADDC A, R7 1 CY AC OV P 1 40 JC rel 2 2 41 AJMP addr11 2 2 42 ORL trc tip, A 2 1 43 ORL trc tip, # const8 3 2 44 ORL A, # const8 2 P 1 45 ORL A, trc tip 2 P 1 46 ORL A, @ R0 1 P 1 47 ORL A, @ R1 1 P 1 48 ORL A, R0 1 P 1 49 ORL A, R1 1 P 1 4A ORL A, 2 R 1 P 1 4B ORL A, R3 1 P 1 4C ORL A, R4 1 P 1 4D ORL A, R5 1 P 1 4E ORL A, R6 1 P 1 4F ORL A, R7 1 P 1 50 JNC rel 2 2 51 ACALL addr11 2 2 52 ANL trc tip, A 2 1 53 ANL trc tip, # const8 3 2 54 ANL A, # const8 2 P 1

TH ANH NGUYN

159

55 ANL A, trc tip 2 P 1 56 ANL A, @ R0 1 P 1 57 ANL A, @ R1 1 P 1 58 ANL A, R0 1 P 1 59 ANL A, R1 1 P 1 5A ANL A, R2 1 P 1 5B ANL A, R3 1 P 1 5C ANL A, R4 1 P 1 5D ANL A, R5 1 P 1 5E ANL A, R6 1 P 1 5F ANL A, R7 1 P 1

Opcode Mnemonic Php ton Bytes Flags chu k -------------------------------------------------- -------------60 JZ rel 2 2 61 AJMP addr11 2 2 62 XRL trc tip, A 2 1 63 XRL trc tip, # const8 3 2 64 XRL A, # const8 2 P 1 65 XRL A, trc tip 2 P 1 66 XRL A, @ R0 1 P 1 67 XRL A, @ R1 1 P 1 68 XRL A, R0 1 P 1 69 XRL A, R1 1 P 1 6A XRL A, 2 R 1 P 1 6B XRL A, R3 1 P 1

TH ANH NGUYN

160

6C XRL A, R4 1 P 1 6D XRL A, R5 1 P 1 6E XRL A, R6 1 P 1 6F XRL A, R7 1 P 1 70 JNZ rel 2 2 71 ACALL addr11 2 2 72 ORL C, bit 2 CY 2 73 JMP @ A + DPTR 1 2 74 MOV A, # const8 2 P 1 75 MOV trc tip, # const8 3 2 76 MOV @ R0, # const8 2 1 77 MOV @ R1, # const8 2 1 78 MOV R0, # const8 2 1 79 MOV R1, # const8 2 1 7A MOV R2, # const8 2 1 7B MOV R3, # const8 2 1 7C MOV R4, # const8 2 1 7D MOV R5, # const8 2 1 7E MOV R6, # const8 2 1 7F MOV R7, # const8 2 1 80 SJMP rel 2 2 81 AJMP addr11 2 2 82 ANL C, bit 2 CY 2 83 MOVC A, @ A + PC 1 P 2 84 DIV AB 1 CY OV P 4 85 MOV trc tip, trc tip 3 2 86 MOV trc tip, @ R0 2 2

TH ANH NGUYN

161

87 MOV trc tip, @ R1 2 2 88 MOV trc tip, R0 2 2 89 MOV trc tip, R1 2 2 8A MOV trc tip, R2 2 2 8B MOV trc tip, R3 2 2 8C MOV trc tip, R4 2 2 8D MOV trc tip, R5 2 2 8E MOV trc tip, R6 2 2 8F MOV trc tip, R7 2 2 90 MOV DPTR, # const16 3 2 91 ACALL addr11 2 2 92 MOV bit, C 2 2 93 MOVC A, @ A + DPTR 1 P 2 94 subb A, # const8 2 CY AC OV P 1 95 subb A, trc tip 2 CY AC OV P 1 96 subb A, @ R0 1 CY AC OV P 1 97 subb A, @ R1 1 CY AC OV P 1

Opcode Mnemonic Php ton Bytes Flags chu k -------------------------------------------------- -------------98 subb A, R0 1 CY AC OV P 1 99 subb A, R1 1 CY AC OV P 1 9A subb A, R2 1 CY AC OV P 1 9B subb A, R3 1 CY AC OV P 1 9C subb A, R4 1 CY AC OV P 1 9D subb A, R5 1 CY AC OV P 1

TH ANH NGUYN

162

9E subb A, R6 1 CY AC OV P 1 9F subb A, R7 1 CY AC OV P 1 A0 ORL C, / bit 2 CY 2 A1 AJMP addr11 2 2 A2 MOV C, bit 2 CY 1 A3 INC DPTR 1 2 A4 MUL AB 1 CY OV P 4 A5 opcode bt hp php A6 MOV @ R0, trc tip 2 2 A7 MOV @ R1, trc tip 2 2 A8 MOV R0, trc tip 2 2 A9 MOV R1, trc tip 2 2 AA MOV R2, trc tip 2 2 AB MOV R3, trc tip 2 2 AC MOV R4, trc tip 2 2 AD MOV R5, trc tip 2 2 AE MOV R6, trc tip 2 2 AF MOV R7, trc tip 2 2 B0 ANL C, / bit 2 CY 2 B1 ACALL addr11 2 2 B2 CPL bit 2 1 B3 CPL C 1 CY 1 B4 CJNE A, # const8, rel 3 CY 2 B5 CJNE A, trc tip, rel 3 CY 2 B6 CJNE @ R0, # const8, rel 3 CY 2 B7 CJNE @ R1, # const8, rel 3 CY 2 B8 CJNE R0, # const8, rel 3 CY 2

TH ANH NGUYN

163

B9 CJNE R1, # const8, rel 3 CY 2 BA CJNE R2, # const8, rel 3 CY 2 BB CJNE R3, # const8, rel 3 CY 2 BC CJNE R4, # const8, rel 3 CY 2 BD CJNE R5, # const8, rel 3 CY 2 BE CJNE R6, # const8, rel 3 CY 2 BF CJNE R7, # const8, rel 3 CY 2 C0 PUSH trc tip 2 2 C1 AJMP addr11 2 2 C2 CLR cn 2 1 C3 CLR C 1 CY 1 C4 SWAP A 1 1 C5 XCH A, trc tip 2 P 1 C6 XCH A, @ R0 1 P 1 C7 XCH A, @ R1 1 P 1 C8 XCH A, R0 1 P 1 C9 XCH A, R1 1 P 1 CA XCH A, 2 R 1 P 1 CB XCH A, R3 1 P 1 CC XCH A, R4 1 P 1 CD XCH A, R5 1 P 1 CE XCH A, R6 1 P 1 CF XCH A, R7 1 P 1

Opcode Mnemonic Php ton Bytes Flags chu k -------------------------------------------------- --------------

TH ANH NGUYN

164

D0 POP trc tip 2 2 D1 ACALL addr11 2 2 D2 SETB bit 2 1 D3 SETB C 1 CY 1 D4 DA A 1 CY P 1 D5 DJNZ trc tip, rel 3 2 D6 XCHD A, @ R0 1 P 1 D7 XCHD A, @ R1 1 P 1 D8 DJNZ R0, rel 2 2 D9 DJNZ R1, rel 2 2 DA DJNZ R2, rel 2 2 DB DJNZ R3, rel 2 2 DC DJNZ R4, rel 2 2 DD DJNZ R5, rel 2 2 DE DJNZ R6, rel 2 2 DF DJNZ R7, rel 2 2 E0 MOVX A, @ DPTR 1 P 2 E1 AJMP addr11 2 2 E2 MOVX A, @ R0 1 P 2 E3 MOVX A, @ R1 1 P 2 E4 CLR A 1 P 1 E5 MOV A, trc tip 2 P 1 E6 MOV A, @ R0 1 P 1 E7 MOV A, @ R1 1 P 1 E8 MOV A, R0 1 P 1 E9 MOV A, R1 1 P 1 EA MOV A, R2 1 P 1

TH ANH NGUYN

165

EB MOV A, R3 1 P 1 EC MOV A, R4 1 P 1 ED MOV A, R5 1 P 1 EE MOV A, R6 1 P 1 EF MOV A, R7 1 P 1 F0 MOVX @ DPTR, A 1 2 F1 ACALL addr11 2 2 F2 MOVX @ R0, A 1 2 F3 MOVX @ R1, A 1 2 F4 CPL A 1 P 1 F5 MOV trc tip, A 2 1 F6 MOV @ R0, A 1 1 F7 MOV @ R1, A 1 1 F8 MOV R0, A 1 1 F9 MOV R1, A 1 1 FA MOV R2, A 1 1 FB MOV R3, A 1 1 FC MOV R4, A 1 1 FD MOV R5, A 1 1 FE MOV R6, A 1 1 FF MOV R7, A 1 1

Ph lc J ==========

TH ANH NGUYN

166

8051 Hng dn theo th t t vng ----------------------------------

Ch vit tt: trc tip = a ch d liu 8-bit trong b nh const8 = 8-bit lin tc trong b nh M const16 = 16-bit lin tc trong b nh M addr16 = 16-bit a ch M di addr11 = 11-bit a ch M tuyt i rel = k 8-bit a ch M tng i bit = 8-bit a ch BIT trong b nh

i = ng k s 0 hoc 1 n = s ng k 0-7 a = 32 m * m = 3 bit quan trng nht ca mt a ch tuyt i

Opcode Mnemonic Php ton Bytes Flags chu k -------------------------------------------------- -------------11 + mt ACALL addr11 2 2 24 ADD A, # const8 2 CY AC OV P 1 26 + i ADD A, @ Ri 1 CY AC OV P 1 25 ADD A, trc tip 2 CY AC OV P 1 28 + n ADD A, Rn 1 CY AC OV P 1 34 ADDC A, # const8 2 CY AC OV P 1 36 + i ADDC A, @ Ri 1 CY AC OV P 1 35 ADDC A, trc tip 2 CY AC OV P 1

TH ANH NGUYN

167

38 + n ADDC A, Rn 1 CY AC OV P 1 01 + mt AJMP addr11 2 2 54 ANL A, # const8 2 P 1 56 + i ANL A, @ Ri 1 P 1 55 ANL A, trc tip 2 P 1 58 + n ANL A, Rn 1 P 1 B0 ANL C, / bit 2 CY 2 82 ANL C, bit 2 CY 2 53 ANL trc tip, # const8 3 2 52 ANL trc tip, A 2 1 B6 + i CJNE @ Ri, # const8, rel 3 CY 2 B4 CJNE A, # const8, rel 3 CY 2 B5 CJNE A, trc tip, rel 3 CY 2 B8 + n CJNE Rn, # const8, rel 3 CY 2 E4 CLR A 1 P 1 C2 CLR cn 2 1 C3 CLR C 1 CY 1 F4 CPL A 1 P 1 B2 CPL bit 2 1 B3 CPL C 1 CY 1 D4 DA A 1 CY P 1 16 + i thng mi hai @ Ri 1 1 14 thng 12 A 1 P 1 15 Thng 12 trc tip 2 1 18 + n Thng Mi Hai Rn 1 1 84 DIV AB 1 CY OV P 4 D5 DJNZ trc tip, rel 3 2

TH ANH NGUYN

168

Opcode Mnemonic Php ton Bytes Flags chu k -------------------------------------------------- -------------D8 + n DJNZ Rn, rel 2 2 06 + i INC @ Ri 1 1 04 INC A 1 P 1 05 INC trc tip 2 1 A3 INC DPTR 1 2 08 + n INC Rn 1 1 20 JB bit, rel 3 2 10 bit JBC, rel 3 2 40 JC rel 2 2 73 JMP @ A + DPTR 1 2 30 bit JNB, rel 3 2 50 JNC rel 2 2 70 JNZ rel 2 2 60 JZ rel 2 2 12 LCALL addr16 3 2 02 LJMP addr16 3 2 76 + i MOV @ Ri, # const8 2 1 F6 + i MOV @ Ri, A 1 1 A6 + i MOV @ Ri, trc tip 2 2 74 MOV A, # const8 2 P 1 E6 + i MOV A, @ Ri 1 P 1 E5 MOV A, trc tip 2 P 1 E8 + n MOV A, Rn 1 P 1

TH ANH NGUYN

169

92 MOV bit, C 2 2 A2 MOV C, bit 2 CY 1 75 MOV trc tip, # const8 3 2 86 + i MOV trc tip, @ Ri 2 2 F5 MOV trc tip, A 2 1 85 MOV trc tip, trc tip 3 2 88 + n MOV trc tip, R 2 2 90 MOV DPTR, # const16 3 2 78 + n MOV Rn, # const8 2 1 F8 + n MOV Rn, A 1 1 A8 + n MOV Rn, trc tip 2 2 93 MOVC A, @ A + DPTR 1 P 2 83 MOVC A, @ A + PC 1 P 2 F0 MOVX @ DPTR, A 1 2 F2 + i MOVX @ Ri, A 1 2 E0 MOVX A, @ DPTR 1 P 2 E2 + i MOVX A, @ Ri 1 P 2 A4 MUL AB 1 CY OV P 4 00 NOP 1 1 44 ORL A, # const8 2 P 1 46 + i ORL A, @ Ri 1 P 1 45 ORL A, trc tip 2 P 1 48 + n ORL A, Rn 1 P 1 A0 ORL C, / bit 2 CY 2 72 ORL C, bit 2 CY 2 43 ORL trc tip, # const8 3 2 42 ORL trc tip, A 2 1

TH ANH NGUYN

170

D0 POP trc tip 2 2 C0 PUSH trc tip 2 2 22 RET 1 2 32 RETI 1 2 23 RL A 1 1 33 RLC A 1 CY P 1

Opcode Mnemonic Php ton Bytes Flags chu k -------------------------------------------------- -------------03 RR A 1 1 13 RRC A 1 CY P 1 D2 SETB bit 2 1 D3 SETB C 1 CY 1 80 SJMP rel 2 2 94 subb A, # const8 2 CY AC OV P 1 96 + i subb A, @ Ri 1 CY AC OV P 1 95 subb A, trc tip 2 CY AC OV P 1 98 + n subb A, Rn 1 CY AC OV P 1 C4 SWAP A 1 1 C6 + i XCH A, @ Ri 1 P 1 C5 XCH A, trc tip 2 P 1 C8 + n XCH A, Rn 1 P 1 D6 + i XCHD A, @ Ri 1 P 1 64 XRL A, # const8 2 P 1 66 + i XRL A, @ Ri 1 P 1 65 XRL A, trc tip 2 P 1

TH ANH NGUYN

171

68 + n XRL A, Rn 1 P 1 63 XRL trc tip, # const8 3 2 62 XRL trc tip, A 2 1

TH ANH NGUYN

172

Vous aimerez peut-être aussi