home *** CD-ROM | disk | FTP | other *** search
/ Flop Magazin 31 / Flop_Magazin_31_1994_05_Raster_cs_Side_A.atr / assem.cap < prev    next >
Text File  |  2023-02-26  |  3KB  |  1 lines

  1. Assembler - z*klady pr*ce  Radek ③t%rba¢¢    I kdy( jist% existuje mnoho p@)ru'ek r+zn[ kvality o tom, jak programovat na po')ta'i Atari ve assembleru, cht%l bych pomoci t%m, kte@) se k tomu je&t% st*le neodhodlali. Proto jsem se rozhodl napsat tento 'l*nek. Upozoruji p@edem, (e mi nejde o vytvo@en) n%jak[ u'ebnice, ale o rady za'*te'n)k+m, kte@) u( o assembleru n%co tu&) a chyb) jim podrobn%j&) vysv%tlen).¢    Mysl)m si, (e nejefektivn%j&)m zp+sobem bude, kdy( v(dy p@edlo()m n%jak` jednoduch` progr*mek a d+kladn% ho okomentuji.¢    Pro n*zvy instrukc) budu pou()vat MNEMO K♪DY ╱=symbolick[ n*zvy instrukc)$ shodn[ s MAC65, nebo④ je to nejpou()van%j&) ╱a jist% nejv`konn%j&)$ p@eklada' assembleru.¢    ⑤vod:  Nejpodstatn%j&) je zvyknout si na to, (e ve&ker[ operace se prov*d%j) pomoc) n%krer[ho ze t@) registr+.  A .. akumul*tor  X .. indexov` registr X  Y .. indexov` registr Y  Ka(d` z t%chto registr+ m* 8 bit+ a m+(eme je tedy naplovat hodnotami 0 a( 255.  Krom% t%chto registr+ m*te k dispozici je&t% 256 m)st nult[ str*nky pam%ti ╱adresa ◆0000 a( ◆00FF$, kter[ umo(uj) prov*d%t velice u(ite'n[ v%ci.¢    Analogie s BASICem:¢    1. P@)kaz POKE  Zapamatujte si, (e 99⑦ v&ech v%c) ve strojov[m kdu se prov*d) pomoc) p@)kazu, kter` je obdobn` BASICovsk[mu p@)kazu POKE. Je tedy bezpodm)ne'n% nutn[ m)t po ruce knihy adres pam%ti. ╱Z vlastn) zku&enosti doporu'uji knihu od Pavla Do'ekala: Adresy pam%ti RAM po')ta'+ Atari 800XE/XL - 1. a 2. d)l$¢    2. Pou()v*n) prom%nn`ch  Pokud pot@ebujete n%jakou prom%nnou, lze pou()t libovoln` z registr+ procesoru ╱A,X,Y$. Pokud v*m tyto neposta'uj), je nutn[ zvolit si n%jak[ m)sto v pam%ti RAM a to pou()vat pro ulo(en) hodnoty. Podle rozsahu ')sla, kter[ chceme do prom%nn[ ukl*dat, se vol) po'et byte ╱bajt+$ pro tuto prom%nnou.¢    1 byte .. hodnoty 0 a( 255¢    2 byte .. hodnoty 0 a( 65535  V%t&inou se pou()vaj) dva byte hned za sebou, kde 1. vyjad@uje tzv. ni(&) byte a 2. vy&&) byte.¢    n byte .. hodnoty 0 a( 256^n-1  Situace podobn* jako u 2 byte.¢    Pozn.  Pouze vy sami si ur'ujete velikost rozsahu t[ 'i on[ prom%nn[. Podle toho byste s touto prom%nnou m%li zach*zet.¢    P@.:  Pot@ebujete 3 prom. v rozsahu 0 a( 99, d*le pak 2 prom%nn[ 0 a( 1000.¢    ②e&en):  Pro 1.,2. a 3. prom%nnou je nutno vyhradit 3 byte ╱1 byte pro ka(dou z nich$. Skute'n` rozsah bude sice 0 a( 255, ale to je nejmen&) mo(n` rozsah, kter` je v%t&) ne( po(adovan`.  Pro 4. a 5. prom%nnou je nutn[ vyhradit 4 byte ╱2 byte pro ka(dou z nich$. Skute'n` rozsah bude sice 0 a( 65635, ale to je rovn%( nejmen&) mo(n` rozsah, kter` je v%t&) ne( po(adovan`.¢    U 2-bytov`ch prom%nn`ch zjist)me hodnotu n*sleduj)c)m zp+sobem:  HODNOTA=Obsah1Byte⇩Obsah2byte✓256¢    Upozorn%n):  Pro volbu m)sta prom%nn`ch pou()vejte z*sadn% jen takov*, kter* jsou voln* a nepou()v* je (*dn` jin` program, kter` je ╱a nebo m* b`t$ p@)tomen v pam%ti b%hem spu&t%n) va&eho programu ╱T)m mysl)m DOS a pod.$. Um)st%n) a vyu()van* pam%④ jednotliv`ch program+ b`v* v%t&inou obsa(ena v jejich popisech, manu*lech atd.¢