código maquina para principiantes

Upload: juan-pedro-reyes-sandoval

Post on 17-Jul-2015

95 views

Category:

Documents


1 download

DESCRIPTION

Codigo Maquina Para Principiantes

TRANSCRIPT

  • 5/14/2018 C digo Maquina Para Principiantes

    1/52

    . . . - - - - L D I ~ E ! , c E " D n E ~e i: 'r lf ln h ::::a -- ....CODIGODE MAQU INA, - - - - R A P R I N C I P I A N T E S

    . . . . . . . . _ . . . . . . . . . . . .~,!._........ . . . . . . . . . . . . . . . '. . . . . . . . . ." '~~,!.Ii-,,

  • 5/14/2018 C digo Maquina Para Principiantes

    2/52

  • 5/14/2018 C digo Maquina Para Principiantes

    3/52

    L D I E ! C E , ' f l n E~E lL t rDn i r : aCODIGODE MAQU INAPARA PR INCI'P IANiTES1:.(

    ,~~- _ , ,-

  • 5/14/2018 C digo Maquina Para Principiantes

    4/52

    Contenido4 lQU8 lS el codigo de maquina.?6 Empezar a conocer t 1 1 eomputadora8 La memoria de l a o corrtputadoraII Numeros hexadecimales12 PEEK y POKE14 Dentro del CPU16 Dar instruccionesal CPU18 TraduciIlUl proqramaa hexads cimal20 Eneomrar Ram vacio23 Car-gar y ejecutar lID programa21 Ailadir bytes de la memoria.28 Trabajar con numeros altos.29' La bandera. de acarreo30 Prcqramas para numeros altos3.2, Visuafizacion de un msnsaj e enIa pantalla35 Saltos y rernificeciones38 Proqrama de efectos intermitentesen Lapantalla40 Profundiaando41 Tahlas de conversion deoimal/hexade cimal42 Nemenicos y c6digos hexadecimales de

    Z8045 Nemcnicos y c6digos hexadecimales de

    6 6 Q 246 Palabras del cod.igo de maquina48 Indies:

    1983 L l l1bo~n e P l il lb l is h i n i! :j !..t~," "' 1 B 86 i ?u bl ic a oi cn Q 5 'f E~ricigne

  • 5/14/2018 C digo Maquina Para Principiantes

    5/52

    S abre! este Ilib raEste .Iihm es una sencilla quia queensena paso, a paso < 3 J . pmgrarnar enc6digo de ma q um a , El 06mgo dem~inOl. 'es elc:6digQ en el ql!li lacomiPtlt.adora remi2;a todas Sl]$ fum::~onesy 105 progIam~escritoiS' ell c6digo dem~qui:na se ejectlltan mucho m aslI"olpidamemey oCU!pan menos memoria,que ]QcsProgr.mLa:5 escritos en BJIillIG.Noobs:ta .nrte" U!D prOgl"ama en o6dJigo demaquina es mueho mas diflcil de e.scribiIy de eIlltend.e.r que uno i g nua ] en BJUlIG,

    Este libro ~e poco acpoco ~ u ' : : , l j v e sde les principiosbHicos del c6digQ dem a q r u r n . a , ore.ensena e e r n e escrtbirprogrnmas senclllcs en.c6digo demaqWIila; per e:jemplo, eerne ,SWI1a;! ! " dosn'limeros 0 hacer qule' lIII mensaj eapare'zca iniernl1i.te:nte en Ia pantalla 0eemo cargar y ejeclJJtar lID pmgrrama encOWglO de maqll:llLa en to cemeutadora,

    EI 'c6digo de. maquifia es dillcil 'Yrequi~I~m.udJlo trahajo, ya que poseemochas reg-las que hay qIlle segnir y grancantidad de detilles que hay qu:ereeordar - Note asustea s: i al principia teresulta impesible de entender, Sue']edesmoralizu, ya quen.o t~ es posilble'leer y ent:ender un prQgl'"anla e 'n . aooigode ~i:I -esta. ecrnpuestomucOimente de aucesiones de letras ytLUmeros-.. Ademois, los eum:es son mu:yd;inciles de ]ocaJ . i2 .u y s1!.lelen.t e n eTconsecuencia:sf:ata]es ! i i . 1e las ~ < l ! ! l : ~ : u .

    II Debes rener >especialme~OOicoy " , , , , , , , , , , , , , , , , . , , , , " , , . . , , < " I < " j , , ,

    vooes : ,

    A menos que estes muy l ~ f , It""'iF""'~!~.ril,."te Moe falta saber escribir 1arg,QSprogtamas ell cOdigo de m~ -c:asitecto puede hacerse i g r u . r u de bien enlBASIG-_ Sin rn1b~tgo, In edgun~ tareascomo hacermas rapidos, los: juegos yCrew: e(eC1:Ossorprendentes en ]01pantalla te sara neossarieel cooigo demaquina. Emelilim te Elnsena cOm.ehaeer tus prog~a~ mbi:n'~r~~tes yexcitantes induyendo pequefiassubndinaJs e:n c6digo de maquirna a tuspm g rram a s e n Bi l .S IG .

    es.IPe~::WiIm.~l i : :n ' ll e d i1 r ig jdoa 'blSU.mOS que pO~e!JII cOmpli.l.t~dOia:5 conun rnicroprocesador z e o 6 6~03,~ Elmicroprooesador e c s el cmp ,que oenti.e:nela Wl:i.dad OeI l ik 'aJ ! deprocesado de laooomputadiOIeI, pOI 10 que lasco rn pm a dO l'a s co n d ife :re Il!te smiereprocesaderee entlenden dJjfe'l'ert'~e:s;06dlg,os de maquina, Par tame, todas lasoomputadores. con un rnioroprecesadorid . em: i . co 1ll!S

  • 5/14/2018 C digo Maquina Para Principiantes

    6/52

    E I c 6d ig o de m aqum Oi. e s e ] ood~ go~ L!. ,~ 1q ;I1@ "la o@mpu l: adQ~a re< ! .l li la " ~ o o d a l O sus funcienes,G u a n G O das a 1a~10lles,elemric:as . s ie l i l .do ]a. puasae~6:111.l 1 '!j ] 1 1 . no-pul l5

  • 5/14/2018 C digo Maquina Para Principiantes

    7/52

    Pfogl ra ! l11l a r en 'ood'igo de !'I'!aquinaExi: s ten vanas f o m I .a : 3 de e5CIIDIT ~-:n. cOO! i go d Q . m~lad~r (OOl'! m.w f; tC~Le5, de. recorda!q1 Il e Ie s J f JJu rn e . r oo )ue se ra n tra ducidos a .f l~J ! ade 'C im.a] a nte s de se r i n t l\OO /uc ioos e . n ] i 3 Joomputadolra, Algunas computadcras 1lCeptanm i rn . e ro s h e : {a i de c im a i ,e 5 , e n o ~ r os te.ndt;is quiussr un pequ;eno programa llamadocBI!r'glacior be.!l'adec~", que tf,ad!llCe 105n'lilmel\05 ~exadecilinale5" E n lapaginot 24elilOODltr.iH.as 11 m ctHgaoor f l@ ' Jl ad e t;: jm a , l q u epillede'''' USaf par.t Cargal ]05 progra:mi'l5 enc r id ig ,o de rn.. iq) l l i l l " ' - d@ @$~e ] i i b ro_

  • 5/14/2018 C digo Maquina Para Principiantes

    8/52

    . .Cuando proqraruas una computadora enc6dlgQ de maquina debss deerrle ]0 quedebe hacar en cada etape: dende buscary almacenar los datos, como escribir enIa paniaMa. etc (cuando trabaias enBASIC, unO'S pmgramru> especialessrtuadcs en el interior de Ja computadozase encargan de haoer ton e 'E lmo POI tl).Para saber darle a la computadcra lasms t r u c c i one s correctas en c ada momentae s con ve rn e n te sa be r que es t asuoedisndo dentro de tu eo rnpu t ado r a .LOiS dibujos de es tes dos paginas temuestran las partes principalss dentro deuna computadora personal y susfunciones, En las paginas siguienlSencontraras m a s cosas sobre ellas,F u . l l ' i e i o ' ! I I ! de 10

  • 5/14/2018 C digo Maquina Para Principiantes

    9/52

    El nombre de U!Jl chrp es "circuitointeqrado", ya qLl@ demro de eada chipexrstsn circuitos el.ectfioos microso6'pLCOS,'Fodo el trabaio de ]a computadora 10realuan eherres de pulsac~oi1e!>ql.ler-epresem,an les instruociones en codiqo

    binario y flll,/@'fl a 10 largO e ~irCUilOSde los chips, Enslen dlJ,E;!rentes chips para!l'ea!~r funClones diversas. E1trabaior,edlizado por los diferentes tipos deebipsse muesna e'tl el dibujo inferior.

    R'el~ojE lste e sun re io j de CIilal'ZO ,q ue e m i:te m il lO Olle s depulsacionea par seg;undQ, reglli1l!I1:dioel fl'Ujodepulsacicnes eIl el interior de la eompatadora. El mroroprocesador d. tucornputadOnt iE l a s t e n va t iO s tipos dlferentes deChips IlIicroproCesad amtqUetodas las cotnputadoras ~esutllizan un reducido numero. Losmode l os m a s usa dos son e 1 ZSO ,que enc:ontIamos en computadorasSinclair (Timex) y el 650~, usadoper el Oric, el BBC el Vic : K I ymuchas otras. Otroomioroprocesadares pueden ser el6809, tIsado en la oomputadoraDragOn, y el 9900, usado en laTl99t4.Cada modelo diferente dernicl"oproce'Sador usa diferemesi n s t : r n c c i a oo s de 06digo demaquina, pero todas lascomputadoras que poseen elrrusmo microprocesador enti.endenel mismo cOdigo da maquina.Tamblen existen varias versionasdHerentes de carla. chip, Per$mpl.o, el ZBOAes una versionmas rapida de] Z80, y el 660aA y el6510 (usado an e J Commodore 64)son versionea del s s o a . Usan lasrmsmas i n s t r u c c i one s : de c6d iQo dem.iquina que las que , usa el chipdel qn.e fu$1;Ia ~ Batelibra esbi ~~p.eciallnente~:c(Itripuradotas non

    I ~'i:pW e n t i e n d e n.etQMWdIi ~ e lm 2'$0 y del6!IQ$.

    EI microprocesa dorEl chip microproeesador posee Ja unidad osntralde procesado de 111computadora, es declr, el CPU"Este es el Jugar donde Sf': realiza todo e! trabajo dela. computadora, El CPU re,ajiza, caJculos, comparada,tos, klima deeisiooes Y coordina tcdas las dernasacti.vi.dlldes dentro de la computadora, LainlormaCLO,ll.que dice a1 CPU 10 que debe haceresta almacenada en el ROM" 7

  • 5/14/2018 C digo Maquina Para Principiantes

    10/52

    La memo~ia de I l ia computadora.

    fnputlauput

    La maiI1e:~am a s E acil de ima gID a!W La IT l . e IDOl l a J d~ la computadora es romo W'!I. QiIl"i1Innilineio de ; pequeiias. oa : i~ d( lnr ro de cada una de las euales h1JJYn byte, es deen,una irunruod6n 0 in[ormaci:6n en c6dlg'O de maqu i n a , Gada ceia dela memoris sed~nom.ina ''Ubicaci6n'' y C C I . O O ubicaci6n vien: de'!:armm~d~ per un ]]IUmem llamado' 'cl ireoci611'' queperm!ite que la OO!TIputadOfa. eneuentre cwlqu!er caja en la memonaL asd jJ~ re fi l~ z on as de la m em o ria se u sa n pa ra a lm a c e n e r mfo rma . c i 6 n ' PMadl fe~:n t l? . "3tm cion e s. ,~ de oom ioo ' 'ma ipa . de memor ia " a l a t ab l a C [ l J . ' te i r f id ica lasdlreocion.e.s dtmde OlJ ,wr ie! l 'JZa eada zona,Cuando progra:mas n cOOiiqo de maq;uina debes dec i r le a ]a comp1J! tadOHl" d6nde8 I lGO] ]J t r. 8 !! I: 0 almaCru:ll' cada instrucci.6n 0 i ruo r rnac ron , d~mdQle la direccion de unsubieaeien de memo.rt~, ]ncll.ISDhenes ,que decirlF? oonde almacenar el prograIna.eno6d]go de maqu i na , per le que te sera necesario conooer el mapa de memoriaE ll mapa de me'!liI>Ol1iaI ~'O de .t 1 de re c ha . m u e slIa e l :~ d ie m < em o n ade Iml. 'COmp llJ ta dl:Jrn . ~ ~ . til.:rurn: t lW.eJi loQl l I ra : r i is I~lrm! ,pa d@ W i e Qm p1ll la do ra E n . ca dama r co d e com pu ta :d :o r,a .s 00 G~a l . ia memor i a . defomta dil'ereme, pm 10 . q I l e : rurnap.a.ptl.ede :retl~tedi:stintoa este"1:1.m a p a d .e .memo :r ia puede rep reseDta i r :secomoWl!l ~a, CQ.n!O ' ! 1 ! : J I I me C< ! ! SO , uhorl iwll!!tal l rnente_L o a . : 5 . dJ iroe oci'O n es ,e n i!a s q ue Ooml.eIWOIn.las. di l ' emrn. te5ZWiI. l ' i: d~ memoria. se dan a lIillado del m.apa, ya seaeen lm mlma] lQ decim~ como IJ,flQ ~~ 0 CQIIalJ!' i I lms"como a q ; W i .En eS!e ! : ibm, la s fimnetOshe : x adeama l e s 00 dI5Im.gL:I~ pm JMva r e~sigr,Lo & :de ia n te de l m l!m e ro , T iL l!r n an ua J. P1!l8dellSlU d l i fmenmss:mo.tos, ej-:$, % 0 fl..

    L!lldirf:ccion mas alit:;!1del RAM delYSU ar io SE! de :nomu r na " IRAMTOP"hope de I HAM) '0. en algllni3ls.oo:rnput

  • 5/14/2018 C digo Maquina Para Principiantes

    11/52

    Difecoiones de memo rialDentro de ' la oo:mp,ll la d o r< l . la s d !i re c c iO l l!e s dememoria @ ~ a n r e p r e s emad< i s POl" dos bytes die,c6d:igo de maqu i n r a . es decir, ]6 P~Qne:s y no;pulsai@kmes 0'b:i t :s~" E :I i i ' i1 I. i ix im o, de m em oria qIIIepuede tener WlIC i . mi.cf,ocomp1l!~adoraque use' e!lm icl: "Q Plooe sa dor Z81 l 0 e J 65O O,es de MK (ROM yRAM ,combinadas) . Esto es debi.do a.que ,e J maymm: ime 'w qu.e . p uedes [bmlOU' can ]6 d .i gu os . ~ s e s68005, pOl ' le que ema e s la (fu e cc :i6 'n - ma s < lila ~ 'E lude ~ e n e r . E s ta da 6SS3S 1 !I b l; lI .cwnes , nmn e rada sdel {I a J 6~53S.Cada ilbicaci6II. cO'.ntienelin byt~. [024b y 1 t , e : s , f o rman , 'l!In kiltibyre (1:) "Im536 e qu i a le n a 64K( 66636 + ]( I24 " " 64).

    En el ZX81 Hime)!1 1 , C n : l I : U el lim it,eentreIi a memoria dep

    '__ >21. e rn e l R AM del

    Input/outputEstas ubicac ioD.es de memoria tienBDrelact6n con las conuiones de i npa&t output(antradaI&alida) de ]a computadora.

    &2EOO

    RAMde~usuaneEsto es 1 8 0 . zoIla donde se al'ac:e'nanlesprog.ramas que inrroduees. 1M; d.atos pti!!J&l ! i ! S vi l l ' i ab les y la s m a tr ic es !Ie a Jm a ce n a n e n

    910000

    Reservado para usa,del sistema operativoEstas ub i c a c i o . n e s RAM las u sa lacomputadora para segWr la . pista de tcdo 10que sucede mientras @jecuta un p~ograma.Pol' ejemplo, la infonnaci6n sabre Ia posiciOndel eursor, el color en eada memente de IapantalJa, que tecla e.sta siendo apretada yque nUmel:O de linea esta siendo ejec.utada.E s t ' dividido en pequefuls zonas para la sdiferentes fwl.dones- Algunas computadorastienen un segundo mapa de e s t < ! zona . En lapag; ina . siguiente enoontraras rruis casasscbre esta zona

    S i a t ' i I . l H l i i 1 l " S r n em or l a e ;l{trO ! atu com~utadQra. la sdirfICcion es de algynaslonas Sluedefl camlbiar_ Entu manuall e nOOf1tr , l I r ;a$.j n f o rmac i o J i l sob ra a s'lR

    .D4GO 1024o

  • 5/14/2018 C digo Maquina Para Principiantes

    12/52

    .Esle dibujo es uaarepresentacion de la zona de Lamemcna de la c:omrpma.ciorares.ervada parauso de] s is te :ma operatWo. PQswleme:nooe~collt~~;is QU10 mapa de~aJ ! I aoode e s t . . 2itma en ttlmanl!ffil, 0 bien unalista de varias d i r e e c i e n e s y sUS Ulsos.:EtI algtmas ccmlpmaa:oras (ej:Sim:laRf'['ume:x), las ubicOitionesU:5a.das pGI ,e l si: stem a ,oP e r. !,tiv o noest,a agrupadas smo (f i lee f fi :a n mSot ri b1 l!i das pertcda la memoria.

    GrMicas definidas par eI usuarioSi ereas tus propios c.ara.cteIlls grMicos sa a b n a c a n a r i naquLBuffers.Es tos son a1m . a . c 1mes tempOl'aies pam comener]os datos, que lleguL del l e c l ado 0 que se ma n d a n a u na . impresora 0

    ~~~~~;:;! casse t t e .Pila para l&nguafe dE l mtliqulnaTambien l l amada piJa del procesador. El CPU ut i l iza estasuhteaciones para alm.acenar direcdones, mientras esliltra:bajando con un programa en c6di.go de m&quina.P ita BA S ICTa r n b i e n I l amad .a pila OOSU1t Se U l i . l i z a . pam a Im a o e n a r lo sn Um e ros de l i n ea usados con las irIatIucciones OOSUB yGOTO de l BA S IC .P i l a de calculadoraEllla eJ el a.lmacen temporal del CPU para los nUmeros quew uulizan en operaciones.Sistema de variablesSon una sene de uhicaciones de memoria donde el C PUalmaoana informacion soble 10 que esta IiU.Cediendo dentrode la computadora. Per ejemplo. exmen ubicaciones paracontener la po.si .ci6n actual del cursor en l E I . pantalla, q u . etecla esta sietldo apretada y la direcci6n de las zonasdonde e sta n a Jm a o en ada s las var i ab l e 'S -

    La oomputadora usa ]aspilas para a]mii!oon~dilit()5 te m p ora l.e s d e lUl!lfo[m8J. rmlypal l1icW:1Il! l" . Elllitirno d.a:to que se introduce e.s:sieropre el primew OIlque seaccsde, Esto S l8de>n omma . alirnaoenamiel1ll0 LIfO (last in, flml

  • 5/14/2018 C digo Maquina Para Principiantes

    13/52

    Numer,os hexadecimalesE n los proqramas en C6digo de maquina, los rnirneros y Lasdiracciones se escribensiempre en hexadecimal. A continuacion te explicamos como converm rnimerosdecimales a hexadecimalas y viceversaDecimal I D 1 3 3 4 , 5 6 1 a 19 ! 10 J l l ~2 13 1 4 15Hexadecimal I a 1 2 3 4 5 6 1 8 I s I A I B C D E F,ESIa tabla muestra les dP.gltos .h8xadoclma1es(,09 'IA-f') y su s Vaklf'N decimales, Pa ra !.osf!\w lsr (lS S 'I 1pe no r;e ;s a 1 6 (F ) 8 m:il iz iID dos 0(0mas) dlgitos. i~ e,en e1sistema decimal

    DecimaJ

    se liItilizim des dLgitos ('0 mas) pm-a. I1.mnemSswperiores a . 9. EJvaJ'or de cadia dtigilodepende de su posiciOn ell! ~l r t i lm .e : f oO"

    Hexadecimal2.56s ISs Is4 C A

    IIJOOl!: lOOs 105 151 :2 2 {I

    El l ! el sistama decimal, e l, prtrn8[digitQ 1 1 . ]aderecha del mimero indica euanras unidadesh ay " e l 5e 9'J l ID do,~dica. el n am e ro de decenas(lOs), el leroero, las c en te na s.,, U O s:, 103S), etc,onvertir hexadecima 8Sa -malesPan convertir W'l l 'lUmero hexadecimal como4CA a decimal, mira el valor decimal quecon-esponde a cada uno de 1 0 & cligitos delnUmero. MuI I ip1 i c a . c a . d . a digito pol" el 'Valorde su posici6n en el nUmero y SIUDa losresultados.

    Decimal O J hexadeehnalPara convernr 1.llI numero decimal come el1226 a hexadecimal hay que dividir en primer.lngar ~mlr@256 para averiquar cuantos 2.56hay. Despues, divide el resto enite 16 [email protected]!mtos 16 hay, siendo el restc dessta operacion e 1 numero de unidades,Convierte todos 105 r esultados en un digitohsxadacirnal,"

    E~ un mJrrne:ro haxadeeimal, e] primer dig ! i . to aL a dereeJT!.aindica. el numaro de unidades,pero el :segmtdo. el m'unero de 16s y e1.te:rcsro el mimero de 25& ([6 ' 2 , ) ,

    1~ l l~ l~J4 1212.26 -:- 256 = 4 """",4 es 4 en hexadecimalresto 202002 -i- 16 = 12 __ 12 es C en hexadecimalresro to""""" 10 es P i. eft hexadecimal1226 es4CA en hexadecimal

    Conve r t i i r d i l r ' e~JC> ione$hekadecrm alesE m . UII direoci6it n .e :x :adec ima l Como ! lC64, los des digito5, a la izquierda indican @1Ique pagma(ver p a g l . amerier) se bal!la J : a ublcaci6n. mientras el segundo par m.dica ]a posi.cjan etla pagma,Hexadecimal a decimalDi recc : iOn &5C64NUmero de pQqina =&5C - 92 decimalPos ic iOn en Ia p;igina = &Be = 100decimal92 x 256 = a3552 + 100

    = 236S.2Direcci6n beDiecimal 50)4 es 23652dec imaJ .

    Para converttr W'I .a direccion hexa.d~cirna.i. adeci.m.oal, has de convernr cada pareja dedigital; el'( nfulleros decimales siglliendo lospa so s in dic ado s .arriba. A OOl ' Io t i nuac ionmultiplica. e .1 mimsro de pagina per 2.00 (hay286: ll.bicacione.s, en Una pagina) y suma elmimsre de posiciOn en .Iapagma .

    Decimal a hexadecimalDireoci6n decimal 23SS2J3652 + ass =93(mlmero de pagina de memo : . : i a )Resto 100 (posici6n en la pagina)92 -e- 16=5 Resto 12 - & 5C100 - 16 - 6 Resto 4 = &84DUaoci6n deciltliU 23882 ell ! IC6f . enbexadecimal.Para oonvertiI una direccion deeimal dehexadecimal tendras que' dividir entre ZOOpara encontrar el m lm e IO de piigina dememoria, El resto cia la posicion en :Ia pag;ina-A co:ntimlacwn convierte el re.s,uJtado a dig'i~oshex:adecima1es oemc se indica arriba.

    11

  • 5/14/2018 C digo Maquina Para Principiantes

    14/52

    Peek y [Pokelas dos p a hID Jr as .BAs te , PEEK y POKE 'wte pernutn ~ to s bytesaJ;m.IQ!oenadosen las I]bcaciOfi~ 00 memoria y( , lQm!b] ado8 . P E E K y POKE : s ' u sa n c o nd ir e o cID f I. e s d e ubicadons d ie m emor iaescrllas I~ nU:me:~ decimates aunquee rn a ]g u n a s compntadmas t amb i e n seusaa tie:xdecil'nales, Recuerdla que' pammtBJducir e n la computadora ] ]Wne . roohe]{adooimrues debes:escribir un .signaq~ pu e die ser & .! '# ( lla m a dJJ. a 1 m o ~ a . r n u . a J 0 : $ oo]oot~ del m l l ! ! i J . H O ,C' .bmpIUeOOID en M manual, v a que variae n o o e:r en te s rnmputadola..$,Uldumalgunas 0 0 1 0 aceptan mimeros decimales.

    Pa ra 'Mci!rleala ,oo~doira qu . e le!il.111Ml ID lca m6D . de m~ se usa PE E K : (puedtl~i Q!I1l!~aiCm e n 1 l I J oompUl tadom) , o o m lad i reoc i6 :n de e sa ubicacicn, p~ r e I elw&u: l t ado e n La pam a Ila u sa P R Im ' PEEK , 0iO O la oe na . e] re su lla do e n 1l:Ila .:~~o LET para, a . oontinuci6n,8'scn1blr l l t i .Wiriable como se i ind ica a D o . i z qWe rda .

    hlt~a e~rib]r trn. .progra,ma,cono ~o W I.b u c 1 e fOR/NED' c om o el qg , e by . a n l b a . e nW ~ ~ pa l fa . e s c rl bi J ' l O l l . b y t e s de ' W 1 ! O ! . ~ried e u bi oamOJ lle s "Ob se n ' a IU m a - ll(!.d em e :m o n ade tn oomputaaiora y experimeJMa. cond i i r eoc iones . d: e d i f e r emes pattet;. d~ ]am. emo t i a .

    P O K E 1 6 1 6 3 ! A lP R I N T P E E K t1m6 0

    EldIDujn su .pe t i ' o r teeueJltac6m.ousar PO.KE~Jluooes lrImarlb en cmJakpt ie : r p.u1:e d~litlU(,pe~o :si~es JMJ)e~ va1o:res en una zonar e se : n r ada . pa r a ,e] s i s t ema . operativopuedes;im:arfem cOD. e l hme i . o ~ .mD de ]8 1comp1l. tadOl' ,a. . h ed .e s v oliv e:r la a :&Ue',stado.~ . a .p a gruulo Ve lJJ .oe ll ld ie n do d.e ooe \l 'c.[TI!teli!!taeS'Cribir un pr~. cotto eemoel

    -su pe tim p .a c.a in I IOOl! lci ! r ~ s n l1 Im 8fO $ent i b i c ac io .ne s del RAM: ,del W O ! . la r io .[.os msmeros que~Ga i S debn, ' e 'S l a i fQrr~ el 0 y 2 S \ S , si.emib ,ese at nilmew~ qu e pu e e le o b teD .e rse c o n . oc}lo

    digi10s bwarios (l!!!r l. by te ~ c6iligQ demaqu. i im;a) ..~. 'OImlP!I1iador

  • 5/14/2018 C digo Maquina Para Principiantes

    15/52

    Siglnmcado de lias milmerosC tJ ia i n do le d lic e s a l a o ompu t l l d ! o : r a queesoribae1 conteni.ido ,dE) , mil ubicaciim dememoria, 'ell la ~ el r,esu1iadll esl!iempre rut .nimero d)ec~ e:fi1re al 01I' el2 5 5. E s to se debe, a que' cada uhi.caciim demem.m: i a puede OOJl I , !e I i l e run byle. " I e1va lo rm a s ,al to 'qiHipuede ,o bt,e n e r.S le con ocoodigitos b:IDi ' i r ios es, _ 56lo 'exmen 200 (001,, 2SS ) b y te s pOSi t I les de c6di.go de m liq ;i!l ln il" Y ',cada byte puedete~ diiferent'esS~rnl.d!QSparah,wmputadw.Pm ~~b. e l n m n e : r o b in aIio 00 ~ W OO D(48@ill decimal), pcdria SteT el oOOigo de~amstn : icc i6 l1! ; de ! ! ! lgIn i la i le t ra del t ec lado 0parte dela rurecCion ,de otrBl ub.icaci6n dem e : m o r i a (cadla dlitecci6n se ,oompone de dosbytes). ' '

    :B u sc a 'e n !.U :~ L a di re0c i6n erI! ,e ) i !OMde~ s,istema 'operativo deN oomp.utadora 'ipmeba e$i.e program.'BJ. Lo s nmneros. que,apa!\ecel'l en 1 0 1 , pantalla son los. equivaleDtes~es d,e bytes de ,oodfgo de maquina deWlLO ' de 10 0 pLOgirarmasdel sistema '~v'O.

    PJtora bm;ca Ia m~ de pantal!a de tuOCIlitIp-U!~o:ra e ilittenla, mttoducir mlme , r o s cenPOKE e n m UbiQIJclOfieS, de La memoria depantalla, N o n e oe sita s: US8f PIUN'l' , P EEK , ya :que lbs bytes, almacenadQ5 en L a memoria dep!i1it.tda se ' ~ a 1 l. tomM icame n te e n lapamaHa:. E s ta i, . ~ ]a . compUl.adcra mt~;rpretae] uiimem alJno el c6di.go de IIIiI Car.ictef.

    1 I I L E T J , d i r t e d t i c 1de pB"tllla2 1 1 l E T C = 3 3J O r o n - J , C4 0 L E T J = J+ l1 iO l E T C =C + 16 0 I F C < = 1 2 5 T I I N O O T O 3 07 0 S TO P

    Prueba algim p~ como el qu~ sem1! lest t , i l i lqW. para ab t e n e : r Ia list,il deca:n.de.1'8S de tu ,computadora. EI proq:ramil usac6cl i .gos A S C U . CIOme:JilZando (i0l!!. 131 33, e .lcOdig:o ! ', y 'e rm :inm do e o n e l '90. 1 r e st o del \os h . 1 i Ime r os en~e e l ,II,V el 200 son para l eo lasespec~. como la . balTa w:;pac:iadora 'IDEL!E;.~. 0pam esaibir el aJfa ibe to e~l inversao in te nm t e m e" ,a si c om o para e a r a e t e r e s degtaficos.

    Mnchas computadaralO USiUl el OOdigo m ; c . npairOl decidlr q;uelilllmem rep:rese:nta a 'cadaca : r ac t e : r "P ' e ro 0i! I~: c o m o ,e] ZX IU ( 'fi m ; ex1 (0 ) 1 !I S lI D. m i im e t 05 d ife r eD t e s. E l : ; nea l ) 'posee MOll! nUm@ra l ! ; especiales IJanitad.os06d igQ d~flarual1a para . v i s u a : l i z a i r car~ertlse n la p ;m t a iUa . En e l m a nu a l de ruoO ll l 'lpu ta dm8J. de be h abe r un a liG Ia d .e loscOOigos y los caraererss que :represeman.

    \ " .;, ,0 ;00 mo.Primer" ubic3ciotl en ta memoriade p

  • 5/14/2018 C digo Maquina Para Principiantes

    16/52

    '!'odo el trabaio de la computadora serealiza ooqiendo de la memoria bytes dein..trueciones y de datos y tlevando acabo las instrueciones en el CPU,E:{lsten (res zonas principalas en elCPU: los re gis ttos e n los que seco n tie n en los bytes de da tos m ie n tra sasian sisndo ptocesedos e t ALU 0u n id ad 1 6g ic o /r u -i tm e tic a , en l .a que lo sbytes se suman, restart 0comparan y 1aunidad de control, que es la que organizatcd as e sta s a e n vid ad ea

    I . i I . disrribucicn de los recistros en loschips Z80 y 6002 es diterents c omopodras observer en lo s diburos inferioresEstoo dibuios muestran eltipe deinstrucciones q1lle puede ejecuta:r ,el CPU,muy se:ncillas. Puede .foeCe>gecr~es d.e101.m e m o n a manda rJos a Los re g isttos. move \[byres de un :registro 0 1 . otro, prooesarlos en ,e l,ALU y a lmace l ' l . a i ' los resultados elf! lam em or ia , In e ln so Ja Labo r m a s seJ 'Lc . i l Jacomo

    Los r eg is tno ,s del Z:SOp l l oo e !lief sumar doS:fl~.rOO y visualillal" e]La. princi.pal diferencia entre ]0,5 ehiips z a o y 6802 ell que el primero posee mas registros. Es:tosignifica. que se pued.en almacenar bytes temporalmente en el CPU. m l.e n l r a s queen el 6002tiene~ quese:r mandados de vueha a la memena,A. significa u,i lCUmJwador".E S 'le ss e lle gisu-o m :iJJsimpartant,e del CPU"Almaoenaby:t~ en sucamino de ida 0de vuelta a] O l ! W1ida . . d IOg io t ;Hmi :m~ t i c< l .( i !1.11). S6.la p l looe ool ' l lenerW . 1 i by1e cads vez,

    F' E lS ,,,,1"registro de bandera", Oon t i eneocho b.iW de loo ques610 se usan seis.Cada bit ,8.Ctiia como W l . ii J . s> ena l POI'e je rn p lQ , J a ba n de ra de aC'a ' lTElO WfI1 !a e ,1val.or I cuando I I i I . resouesta es .mayor'que ~ ; e s de ctr " ,cuowdo n o ca be - 'e nun by1::'I la bandera de signo mueetra51 un n l1m e ro e ll; p osU :i!f (l 0 nf lga1 i ' i l 'O.

    :IX Y IY se denomln an"regigtros indiee",Puaden centener 16b i l : ! o 'I S l i ! I usan anc ie rta s in st. r u.c G .io n e spara calcular ladiirecci6n de un byteen !a memoria,

    B, C, D, E, H Y L, son r@gistros deuso gene:r.al donde los bytes s . ea lm a c e n a n e n 511 c am i n o de ida 0de vuelta a la memoria, Gada unopuede COl1i te :neruJI I . solo byl'l, psropueden ii.~.'le en ;parejas paracontener dos bytes;ej ,: ! B e , DE 0At.

    SPoon las iniciales destack poi.nte'r~en esp.ai'Loli n -meado r de pita. E s IliI1.eg~s,:t[Ode ]6 bit dondes e a Jm a ce i!l la J a d ite cC 'l6nd @ l i'rltimo date d l 1 8 J pila-el1uga.r donde el CPUab ; Ii l. a c e n a da t o .s

    CP es el "contador depmgTa:ma~. E : s un reqistro debit donde 5e en,Cl lent ra Ladirecc.i6:1lI.d.,d ~gutlru,e bit queva a ser r,eco;gid.o, de ] 0 1 1memoria ..E 1 numero deleentador d t pmgr.aJ:na aumantaen IlJID cads Ve:2 que se elecuts

  • 5/14/2018 C digo Maquina Para Principiantes

    17/52

    Saito a lainstruccion 6.

    lE'esuJiladoen IBlpantalla. eng)oha mas de un .'C13l : l ta t laJde p eq u.e iios p ase s 'como es tos , ElCPU pu ede Jr,o za liz a r m a s de medto millen POl"segund~ -Para. cada operacion, la UElida.dd.e control

    reC'OgeUlil byte de j,m.tl11066n. del ROM 0 delRAM. carg,[j un byte d@ datos en los re;g:n~[o.s

    y a continuaci6n realiza LaoperacKiIlespecificada por la instrueclon. En aooigo demaqlllina puedas decirle a ll CPU 1 . 0 qu.e debebacer con las bytes en los registms mientras .qi!l.e el 11.1[1 '1 hi tmidad e r e oontro1llevan acalxJ su ]ab()r alll:omii!Jti.ca:meJliJte' no puedesdeclrles r o " ' 1 1 1 ' 8 ' dEi'ben Do8'I".

    Los ~E!gistl'lOs del 6502L05 pdncipaies regisl:ros e r e 6500,soniquales que los dei :l80, aunque [email protected] es el "acwnulador" dondese almaeenan los bVlesen sucamino de ida 0de we]laal,AtU. I::s igua1q;ue elacumlwador de l ZE IOy solopuede contener lID byte.

    .X . e Y son "registros Indice".oSeu:san en ciertasinstruociones para calcuiar ladireociO.il de un byite d@datos. Tamhiim p1H!denusersa como regjBtros de 1150g'en,erai.para contener bytestemporalmente.

    P es el j'registro de status delprocesadcr" y tiene la mismafuncion que eJ registro debandera de ZOO.C(mtiene ochobits de los qID5 S~ USOhfi si,e1:e.Cada M:lOma el valor I paragrabaJ: de t e . rmmada . condician,como puede ser que WII l J. 'Im e :ro , se a po iid liv o 0neqatlvo.

    C P @ 1 O e l"oOOl li ta tdo r deprograma ". quebtciona de igualmiIDem que elregislro CP d,e!Z80.

    : i i i es el "indicador de pila", Comiene la direecion del wtimo dalio de la pila~ 20naespecial del RAM donde el CPU almaoena datos- ..En el 650:2,el indicador de p'iiaes W'fI, registro de' ocho hils. Pma pcdar eontanerdlrecicnss exl5te W1. nuevo bit C1:i'i ' i3J posicion plrrn.a:nenl~ es 1. unido alregiStro. Esterepresenta e] numero da pag , l na de la direcc[On, pOI: 10qu,e en el 65021a pi la ~.sta sre:mpre en ] 0 1 . pa . . gma uno de IIIm~morta..Elm'imero del indicador de pila da la posicr6n Inla pag-ina. 15

  • 5/14/2018 C digo Maquina Para Principiantes

    18/52

    Un pmgrnm1li. en. c6digo de rnaquiaaeensista en una lista de mstrucclones Q:llele dioen a! CPU 10 que debe haeer con105 bytes en losr;egistms. ,s610puedesusa r i Il sr ruoc ion e s (,]Ue entienda ,e,1CPUI,: POl 1b qlJ~ para la s compU!ladoras conmi c rop roo e s a c i o r Z80 (IZOO;" debes u s a rinstru.ccio:ne.s ~C1alS para z a onnenb:as quePQila c ompu l a d o r a s conmicrop~ooesadore8 If}SOZ,65021\ 6 6510debes usaeinstrueeienes especiales paxao o a a . . E n la parte de atras de es t ! Wlwha y un a l is ta de instrueeienes d ie ZOO yd ie 6002 ,

    ~gpe~'OnIs p!Ileden esetiliill:se ej). fOfi1l1ade nem6l! l lcoo5, esdecir:. ab:re iViatw:as qJI( lesiIDbo~ I : i ! J fmciim. cp.e~ ... " e ll f oc n :l'tadeeqWva.lemes hexade~s de oaJia!~6n. FOi[eje:mpIo, tn' A en el Z&I yLOA eD . e [ ~ son n e :l l lIDmo!l5 de "load a .~into, 'l lite O ! . c rn : ID l I ! u la d m ' " ( ~ 0..yte en e.l~o:r)" ~ rnismos ope:r

    :sig !n o ~ i i r u i l i c a ! ,que 'eG W' l l ' IWnem.he\ ' i l iadecim.aJI) . En e]cQd!igo ,de, maqWniil, losnU rn.e[Jo,s.siemp:re se escriben en fOImlla,he~ecimall. . E : n el 6002. el omeI'C'!iaprecedido dE & sigRo . N . pam in dlic air .~ @sdato,

  • 5/14/2018 C digo Maquina Para Principiantes

    19/52

    Un ':1\09 r

  • 5/14/2018 C digo Maquina Para Principiantes

    20/52

    Traducir un I p r og : r ama a hexadecirnalJLaunica manera de traducir nemonicos a sus cOdlg"'OShexadecirnales as huson: cadsnemonieo en una tabla. .AI final de este Iibro encontrares una tabla de nemonices yrndigos hexadscimalea No obstante debe'S tener cuidado y.aque existen diferenttescooigos hexadecimales para cada instrucion seq-un et tipo de operando, va que e.s~epuede ssr un dato, una direccion 0 el nombre de un reqistro. For eiemplo, aqui haydiferentes versionas de los operadores Pilla carqar en ei acumulador y sus c6digoshexadecimeles,280 , 6502Nemonic:os ~ C6dlgos J Nemonicos COdigosi hex.adecimales hexadeeimalesLO A . da to 3E, data LOA data A9dato~LD A, direccion 3A, direcci6n LDA direccion AD d ireccio n

    'ClIudo e] o p e umdo es W\ dato se denomina."d i r eoo io l1 l amien to mm~to", 'Ci . : l i iRdo e s iafu c c iim en la 'C f I l e,00 e n c u e n tra e l da lo " sedel'lomma "d l l ' ,eccio :na.miento ablrolulon LaI i s t a t de nemimicos y c6digos :hexadeaima1~de 1 1 0 1 parte fwa l d.ei libro, inclll)' todas las

    !nst_Olccicmesque se U'a:~ en eg te l r i b ro . 61qW_.ereses~i!: pr,Oogi l ,1mI.aSt & r s cornp1e: josnece~,8Js illla lista cornpJet:a de los , e od i go sde Zl30 '0 de 6S00;pan ]0 [email protected] M g 'W ' I O S lihms en I : a pag. 4 0 ' .

    Programa para sumar de Z80 Programa pa..a sumar de 6502NemOntcos ~ C6digos Nem6nicOlS I C6digoshexadecimales hexadeci malesLO A, dato 3E, dato LDA data A9datoADD A . nato C6. date AOC data 69 datoLD (direocion). A 32, direcci6n STA direcci6n 8D direcciiin

    Estes son los: c6digos h ex : ad . e cOOaJ l e spwa los:program.as para SWl ' I

  • 5/14/2018 C digo Maquina Para Principiantes

    21/52

    M a r S : SObl!"!!' . r :odl igo l hE!')Iade!i:~mal sLos p~ len 06d!ig'O' de maquina! se e s c r ' " I D e H . con rrume:1'05 b.exade.c : im.afes e . t1 l ngcB !< d enBm.~w~ decima1es: d.ebid\o , l l J . que los: niim.tws: hinalri.os q ue e ir ll ie n de Ia Carqp .u l ad io : ra !>Of!m'l lWl ! lo m a s fa cile 's d e 1 r. IJ :iU ci l: a hexadec in l ! a l q rue a dea i l : n a i .r f ; : p : C ; : = - - p - . - -r:~

    For e1':mpio, la dlIecci6n mas a iM. q1IIepuooesQbt ieneroo l ' l d i ' E l ( . l i s E i s wiji to ,S bmat ios es 553Se n deo~ y!FflFF e I D l ux:adecm8Ll y el

    rnlmemmas alto que se p IX ooe O D 'b :l f im " O OO l!.unbyte (oclm digitas binmos) iS .2!3Sen decmail.'lITen liIexadedm.al,,"

    M : u c - h Q ! O de lQl;;oplf.aaore:s: diel grupo deiDsImcciones de la c :o :mpmadma mlden 1mbyte d.elargol pol 10 ~ en h~ll:iacrecim8ilcarla opeladiors()[1 des dgll.os" Sin embargo,las direc~:n.es 1 ! I S a i 1 ' I dos Iti~es poo; 10quenecesii:an des pares d.e d i g i i tr O S l 1 . e . x :a d e c . i m . a . le s .

    La p:rimera ~a de d ig M r o s hexade.;;im:J~es e]mine:[o dep;&gfua de ]a m e m .o .ria en laql(W S'e ' bal ! l a la di r : oomn (v:rpagmll 10). .L aSe.gi \mda pareja de d1gi iOOI> es la poslci6'n C f f , fJ , Jap a : g m a . dela ubicaci6:n de memoria ( lmE Ip lg m .a "" 256 u b i . c a a i O O l L E s de memoria.),

    Debido a Ia [O[]ll])OI. om que e-J CPU rn O'me j,a l asd ir e ac io n e s sie J ll1 (p [> E l'e - b E l ' S dade ell pr imer~lJgar lo t posieien m Ia pagma (el :!OegmlMbyte), seguWo delnUrnerro de pa.gina(el primer hyte).

    Observar un prognma en c:Odigo de maquinaLos progr.nnas en c6digo de rrQquina que ves en las revistas su .e l en resultar muy complejoshasta qne descubres cOmo esIBn pnIIS8lI.tadas. A continoad.6n vadts dos ejemplos de listadoen c6digo de miquina de ludos maneras en que sueJen presentarse. (Nmguno de estesprogramas esti oompleto. par 10 que no fuJI.cjonar;tn en una compuladora.)Forma ca&r. .- dB di~ e._hexadecimal ~ dUo 0palM de una Este se hal1a en lonna hexadecimal Los~ dmMrJdnerll~ primaros cuatro di.gitos de cada linea son una(_~ .J . direccj6n Y el resto de los pares de digitos son" J l ) ( J C O l ID 0 1 1 C It 00 In (B IF los cOOigus hexadec:imales de insI:moci.ones,JAJ8 C ! ! I IF ,IJ G 7 I; 1 I l O J mJMII Cf " 1 1 :y 1 1 "If :IS '1 1 1 8 datos y diJeociones. El primer c6di .go de cadaJMI III ~ c e D ! : ! i II: 11 71 linea ge almacena en la direcciOn del prind.proJiM IA F E 51 : ! l I : l I l C D G lA de llnea. E I restQ de 10$ c6digos Be aIrnacena:w s r n Jij] 3 A D 3 1 1 1 .t f G I l l 7 &3 A f D f{ O G FA 8 8 3 1 . f5 C O III en las ubl.caciones siguientes Iidicha direcci.6n.3 A I ' a D B F E 6 4 r. A III 3l I Ft 1 1listado an languaJ.e ensamblador~ Este listado mcluye cOdlgos hexadedmales y~ ~ ]rIwJ+iwa

    " ' 1 I 3 C A 2 SO lD X -1101 nem6ni.cos. El primel' mUuero de ada Hne;a esI3rI2 . . 4 E II.l U lA MM.X 1 0 1 direcd.6n de memoria en la qne SIB aknaoenaI 3 4 S 10 III t) Sf. ' . aslU Bl primBr byte de carla l lDea . La siguieDtelI3fI E I 11OM E I O S a > X ,. oo Imnna CODI i e ne c6digos he.&adecimales panOM III F S S H E A F 5 el programa MqUIdos de nem6ni.cos..fJH) 00 B.. .m

  • 5/14/2018 C digo Maquina Para Principiantes

    22/52

    20

    Encontrar RAM vacioArl te 'S de poder usar el p r o g r ama para surnar de la pagina 18hay varias casas quedebas nacer, Primero lienes que escooer una zona de la memoria en }aque puedasalmacenar el proqrama, Cuando introduces un proqrarna en BASIC, el i.nb~rpIsteBAS IC automaticarnents almacena tu programa ell el RAM del usuario, Cuando 10queintroduces IS un prog:rama en o6digo de maquina, [10 uses el interprete, por 10 quenenes que decide a la computadora donds debe alrnacenar el proqrama,Debes elegir una zona del RAM en lo que tn codico de maquina se interfiera conotra infonnaeion almaesnada en la memoria. Por ejemplo, no debes alrnacenar codiqode maquma en zonas reservadas para use del sistema operative, como pueden ser lossistemas de variables olas pilas, Si 10 h a c e e , el sistema deiara de f u nc i c na r , 'fa que tuc6digo de msquina habra sustituido inJonnaciDn vital para que la computadoraoroanice su trabaio, TambiEm debes tener cuidado de mantener tu ccdiqo de m a q - w n a

    separado de cualqUle:r proqrama en BASIC que hayas introduc:i.do. Si el sistema dejade nmeionar. la uniea manera de poner Lacornputadora bien es apagimdola 'Ivolviendola a eneender, sunque en ese caso habras perdido til proqrama,

    Es rnuy famI cal.cul.ar ] 0 1 longitnd de unp:mgrama. en c.6digo de m . a q u m a -d@besoolUar el nlimero de paees de dltoshexadecimailes (carla. par cw:upa un byte}-.Pot ejemplo" el progr,ama para SwtLail' 'lienesiete bytes.

    Casi todes losPrQgrarrt8.S en rodig.o demaqujna son brev,e-s, per 10 qu.e en principlecon cien bytles de eS}iaaio de memoriate.~ SI . I f i .~~ par,a tw o PW9fam.as enoOOigo de maqaina,

    Enoontrar RAM desocupadoEl silio mas habitual para almacener eno6diqo de maqu i n a . es en la parte superiorQ.!!llRAM delusuaric el Ingar donde s@almaeenan los prograrn.a;s en B .A S IC . S inernbar'glo" esto implica que dsbes tenerC1tidado para no raezclarios con prog;ramasen BA S I C . Para evitar esto puedas batar ellimite de 1 B . zona. RAM del usuano. Esto ereaW'Latierra de nadie- S l J m e ei RMr1 delusuano que la cemputadora no puede ussrhasta que ill : : Ie 10 crdenes al oarqar tuprograma en c6dhgo de maquina,

    La . parte SUperior del RAM del usuario sed e:n om in a R AM 'FO P 0 lllMEM, 0 S~ ~~ ,~:~~ : t, eJ I :: ': :: :- ;Jl l iniI :e de 101memoria . E n la p!igina sigl!li.en1e1;;--.....gprend .e r . i i s como b a j!a r e o )RAMTOP. , . ~~ lJ t

  • 5/14/2018 C digo Maquina Para Principiantes

    23/52

    Bajar ell tope del RAM de~u5uariioLa cam.pmadora g f .aba til direc:ci.6n del RAM'l'OP en el sistema de ~les, que tillpuerle:sca nm : i a rV ' a J1 ' l ' a n do la r n r e o c i o o B lnm c:e u.da e n @ ] s is te .ma : de v a r t a J l : d . e . s . La m an e I'a de n 8 JC @ I ' !;IS]Ov.ma. &n .~ dHW'entes: Co :m .pu la do: ra s, p e :r o ao:ontmuaC'ioo. toedames las principia$, que oasi ~ooassiguen. S in e nWa l ' gO , deb.es oompj\obar en tu maneal como hace IDCQmputadOrO!! paifol ~e]RAM'I'OP, ya (f i le p ue d !~ USi! i r irutrncd.cm ..es d iwa : en le

  • 5/14/2018 C digo Maquina Para Principiantes

    24/52

    2 2

    Truceper a VIC 20E l V IC ZQ n o ti e ne n i nl J1 l,lJ '!. a!n s tn !C ciOnespecial para cambiar la direoci6nalmacenada en el sistema de variables.AqUi tienes lo que debes hacer para baj'afel tope del RAM del usuario en el VIC.

    La direeoion esta conrenida en los 8~5temi'i.;de variables SSy 56. Recuerda la segundalocalieacicn de mantaner el mimero depagl!ILa.( P O K E 5 6 . P E E K . (5 6 ) - 1Para bajaril tope del RJ! iM del usuarie 256ub ica .c iooe s, e s e le e le un a pagjna, ut i l iaa lasinetrucciones directas qUe se muestranarriba, Estas hacen que ]a computadora lea] , 3 . ubicacion 56 (la que contiens el numerode pa,gina}.Resta, 1del valor contenido endicha ubioOlCL6l i e mtrodu.oe el nuevo valoren la ubicaclon 00. En otras paiabra5,raduee en 1 la parte de la direccion quecorresponde al numero de p.itgma, Para, verla n u e - V a dtreccien do d tope del RAM: delU:SUMLO usa estes instrucciones. PRINTP E E K . (8 5) + (56) 256 .

    Truce Ipara ZX81t:n B1ZXSl, el m,ejoI lilgar para. akna,oenarp~OU' I ' I Ia5 en c6d igo de m ;;\quma e s alpiincipio del RAM de]usuario.Parn. hacer~lO, escr'ibe' un paso REM come primerpaso del programa oargadot' he.lffideci:malque enccntraras en la piigina .a4'Icomp1ttalo 0=anros d i Q l H O S oomo b " Y ' ! 'Sh a y a en tu p~, en ' comg'O demaqillna.

    Otros lugares para almacenarc6digo de maquinaExls!:en otros lugares de la memoria en losque puedes alrnaoanar o6digo d@maquina,siempre qUe no los estes usando, Porejemplo, si no tienes im:enciim de grahir tilprograma PUWE!S ahnaeenarlo en el bufferde cassette I 0si no estas creando gr.il'icosdefuridos pO T !J uauario puede.saBmacenarlo en la wna re~rvada para oestef in . Busca en tu manual las direcciones deesta zona dal R AM .

    Quiza.. tu manual sugiera lugare.sad:cuados de Ia memoria de illcomputadora en los que puedas almaceaarc6digos de maquina, Busca tamblen enrevistas y tibros:, ya que exlsten muchost ruces ,

    5 R E M 1 2 3 4 5 6 7

    -Crula uno de los digltos del paso REMocupa una, uhioacion en Ia m!lliOna,. AID.oraya puedes introducir lus,bytes dec6digode miquina en las 1lili:i:cadones reservadaspol los digiJtos del paso !REM.], a cer esto nocesItas saber la du-eeci6nenla qu . e e,$~:aalmaeanado 8J primer

    digito. ElRAM, del usuario oomie1"lZa en L aubicOIc i6n 16009 via O Of l1 !;m ta dora n e ee sitados bytes para alrnacenar el nl\mefodel pOI.$O REM; UILa para NEWIJNE y otroparOl grabill[' ia longitud del paso, por 10qw.eel primer digito esta en Jl I ublcaeion H:i!5i4.

  • 5/14/2018 C digo Maquina Para Principiantes

    25/52

    Cargar y ejecutar un pr10gramaLas proxirnas pag i l J i a s te muestren como carqar y ejecutm los progJramas para s uma rde la pagi : [JaJ l8. Para introducir en ]a J oompetadora un proqrama en c6digo de maquinadebesinkoduciI cada byte en la l'~a el sistema notardaria m : li tc l l L o , ende~arde f m I c i0 1 I l . 8 I . , ~

  • 5/14/2018 C digo Maquina Para Principiantes

    26/52

    : 2 4

    Cargador hexadecimalEste es e 1 P1OQTII.1't I iI. paIiI. cargar o6di.qo de ma,qurna en Is menrona de la compUiadOIa- Pimlusark.! pan los Cl6digos heudecimales de tu programa en c6digc de maquina @nel paso 1&1,seqn ido :s ' de Ia ~ END. como signo para indicar a ] 0 1 . compUladora qUe no hay mas c ' l a t 0 ! i ! .En el ~ 40. lacompntad.ma]ee 1l[Ipai' de d.igitos hexadedrnille:s, los convierte en numemsd.ectmals entre los pasos 'lO y 1 0 0 Y a cennmiaeion introduce 1 0 1 3 mlmeros en 1 0 1memow en ~ lpaso 130.

    , , , P R I N T ~ E S C O O E R U N A D IR E C C I O N

    ____________ ---18primers V~, C [), por 10 qua IIIlrrod!iJre X en 'I a, jJj P O K E I I +C,): ub;Cl! .CiOI l d e 1D~ lQCin a A.

    Slm1a una a C, 10 que n a r a que al ",akitJ decimal Gel1411LE TC C + ' - - - - - - - - - :nlJl. l ient~ cOdigo tlexadecima! I!n!I@ !!ttl l a u b ic ac i.O nde memoria A ~l

    150 GaTO ~O155 R EM M T G S , D E E J EMPLO L___ Vue lve II ' lee!" e l ~ en !e cOdJgo hexad, l !c imid_1 6 0 D A T A F F ,F f i . ;E 2 .J \ 9 , E N D ' Pon rua cO;hgos ,hexa~ aqui, ~051 d o ela palabra END_1 7 0 P F l lN T " D A T a E R R O N E O ~ Escrlbil astas palabrll:l st erwuenUil datQs eIl6nBO~1 B O S T O P en los pasos 6 0 ( ) 1 W 'f iii C C I l lb m w : :i f l n oorta e l

    p!ogIama.Como funciona el cargadorHex. u 3 4, 5 6 7 8 9 B C I D l E fASCII 48 5 1 ' I 52 53 54 5 5 56 67 68 69 70

    ::::z.~1 AS" iI". f),ecrmQf 48J .. 51-48 ;;:]: e x 16a4B 14 t-, L _ _ , E _ ' _ F _ _ 6~9_' -~S_~~~:_'_14_--~_~~ __6.~Z~'."~~~~~~~~~

    En I'll paso 70, Ia computadore conviel1e 131primer digilo de ~ II. SUcOdigo ASC1 Iutilizande la paJabra BA S iC A BC - Aconlinuacion con~e el t::OWgoASCII 01Wlvalor decimaJ restando1e 48 : par.!. los c6di.gossuperiores a S 1 . restando 55 , tal y como sem1Ht8 l: Il i. e n I .. labia super i tJ l ' , A oonbJ I \1ac ionmulbplica par 1 6 , '!fa que @ l primer cligitohexadecimal reptesenta el nUnu~:rode iSs ypcme la solociOn en X.

    En el paso 00 usa @I:m is rno metodo paracOl lver t i l ' el d1gito de la derecha e n su COO lgOA S C I I y almacenario en Y . En los pasos 100 'i 110convierte Yen l:III mimero decimal restandn 48 y55 como ya. ~xplicamos antaMrmente "I swna.ndoa x _ (E&to ! vez; no muhiplica pol" l E I , lfA que as eldigito que representa los Is en el rllimeronexadec : ima I_ ) EI valor a L tn a oe n .a do e o X e s e lequivalente decimal del pa. :r de digIlosllexadecimales.

    Para 9. l Spec!ttum (Time:J:: ;.100) ca rnb : l a 1ai.n.s ' lIrn;Oim ASC por CODE Y pon ( :ad.a. pal" di! cOdigO> ' !~ emre eomillas, Ver p a Q , .w para IQEcammos neeesarios para el ZX8 j (TiII'IIlJI lOOO1y l o I < s :oompul!KIo~ AI a n _

  • 5/14/2018 C digo Maquina Para Principiantes

    27/52

    Uso del ea...gadolrYa p:uedes usaf (11oa r n adO l para proba.r ei programa de smnaIf .E s t @ pr~. no es mu,inttlr@sante,(lellQ ,~ seIllcillo y sirve pata otimprender oomo funCLoM ,~l c6digo de maqW l \ i a .Oopia e] listadiJ, del ' e

  • 5/14/2018 C digo Maquina Para Principiantes

    28/52

    1 _ [ _m _IN J_P E _EK _11_00-D -11--- - - ~ ] .. . . . : [ ~ 'N T ""1160011La . cOl'll,[l'mado:ra Ila 'i ',a a . c a bo lasmstrucd.oTII3en ood.igo de maqWn< i . ". I almacena la .soll1cionen la ub:ica,cion que le indicasle, Para vel el

    V'er ei resultado ]r e.s .w t a do t en d ri .: 5 que u sa r P R IN T nEE: c o n Iamreocion de ]a soluc iOtI " La sQlucr6n es ta : r a enlonna de

  • 5/14/2018 C digo Maquina Para Principiantes

    29/52

    En el proqrarna, los datos se incluian en el prooio proqrama, Esto se denorninadirsccionamiento inmed iatc, En ocasiones ouerras indicar a 0. computacore que haqaaJga mil datos almacenados en SLl memoria. E n ste caso, el operando de lamstruecion sera una direccion que 1e diga a la computedora donde encontrar los datos.Esto se denornina direccionanusnto absolute (0 directo),

    Eliitas son dos de las mlIeh!lS fo~ en ,que.Duede:s decirte a ll a oomputarlora d6nd@eaeontrar los datos COIl los que ttabajas. I .a:sdiierentes f o rm . a s se denominan ~modalidadesde d i r e cmon ami fm , t o ~ . Exisl'e W't diferentso&digo hexadecimal pam cada instmcci6ndependiendo de la, modaUdad dedireocionami.emo que t 1S@'S_

    PlrlOQ'ramaIpara sumar numeros d,e18memoriaiEs t e es WI progI'arna para Sumlii dos m'imeros ahaacenados en Ill.m~moria. COln.para. 1-00 c6d:LgO::;,hexadecimales de la s irlslIUcciones de est'!: pr09fama que utiliza d i r ecc i onaJ i f i i en~o ,absolu.lio,'con10,9,usados en el programa de SUJt i . .a l : ' arlil.erimqUe usaba direcclonerniento lnmedlaro.Program II pa ra .z80Nem i' l nicos C6digos Signiffcadoh 8xadecima l e e sLO A, (direccion 1) 3A, direcci6n 1 POrt al nurnero de Ill.dtreccl6n I en el acumulador.-LI) B, A 47 fun el numero dw acumalador en el n;o9lS1rOB.LD A [diracr.inn 2J ~~A,d irecci 0 n 2 ron el iLUl-n9!O de la direccion 2 en el acullluJador.-- ---ADD A. B 80 S~milael mimero del .rcqi~tw.B al d~l acumulador,- ---- ---lD [direccion 3). A ;)2, di reccion :3 AJ:maccma ei coruanido d~l acumulador Em d in~ o : :: 16 111 2.RET C9 I Retorno

    Para sumar dos mimeros ds la me'roo,ria, enprimer 1uga:r debes cargjj:r]os en los reqistros ..PlU'a ssto puedas USa!" el aeemulader (A.) y e]re-gistro B,.No puedes cargar el registro B

    directamente desde tsmemene, p o o r 10'que,en primer lugar, debes intrcdueir ~] mimaroen A 'I a continuac:i.6n tra.l'l:S~erlrloa It

    Programa para 6S02Namo.nicos Codiges hexadedmalei SignificadoLDA direcclon 1 A D direcclon 1 Pon el numero de la direod6n 1en elacumlllador,ADC direcci6n 2 60 dlraccion 2 Suma eI niimero de la direceion 2 al del acurnulador,STA direcci6n 3 80 dlrecclcn 3 -Almaoena el oontenido del acumulador tIIJI direeclOn 3,RTS 60 RetOl' l ' lo_

    IEjecurtar el programaPara ejecutar este p tog r a :m i l l , sigue los pasos dados ell la lista de la p a g i n a . anterior. Sinembargo, ell primer luqar, debas irltrod'ucir ell la memoria los dos nWneros que quieres sumar,5 OImll'eniente eleqtrubic:acione.s de mem.otia al principia de la ZOM qlll2' has l'eS1!lrvadopara 'eleodigo de ~a, par.!. , a . & i malllt'ener e c s l O S bytes da,to separados de Las instmcernn@s, Ac o nti lm a c i6 n o o nv ie rte las direccion.e-s a hexadecimal e introdUOEilaS@Il 'el p ro91 'a : rn a .Neoe 'S i t a rAsuna t,emlST8.direeeien para Ia solueten. Para v'er la soluc[6n escribe PRINT PEEK (direedOn 3: ) , 31

  • 5/14/2018 C digo Maquina Para Principiantes

    30/52

    Trabajar eD,nnumeres atlasLos prog~ de las paqinas anteriores juncionan 0010COnnameros cuya suma nosupelaba2.'S!)" Este es el mimero mas grande Qu.epuedes represantar eon echo bits enun reqdJffi 0. ubicaclon de rnemona, Paro traba JOI.1COnmimeres mas a nOE tendras q1I l !eonecer mgo mils sobre el sistema de mimeros bH'Iaries y como usar la b13Jnde.radeacanoo, E n la.pilgina siguiente hay un proorame en c6digQ de maquina para SlJIIiJ:J.atn.~eIOs mayor,es,Nume'Rts , i l iRar ios,E J . sistema deniim.el.'os: b~.os ,NnCiO[lOi. de' forma. SeID&ja!rttB a ~ fI'l.'imems deeimales "lb.e.xadecimales, savo 'qille selo 11.5an des digi!tOOl, ei 0 y el 1. Para forma!l'mimems:mayores 'qj!le 1u~V'arios: dl ig i tQS.. aliyo valor depend.e de :>11pos~.ci6n ea ei llUimeM.

    1 1 1 1 1 1 1 1

    El'I 1 . 1 . ' 1 \ JI.urnel"O binari~, cada d.igi!o Hen.e el cuarto, de ochos, y asi suce5lvamellte. tal ydoble de v&o:[ qlIB ,~1mgilo d~ su derecha, como se muestra arriba, P,a!l"EI.onvertirunEI primer di'gito (el pnrn.eto d.e La der~cha) numsre binario a daeimal tle:l'lSS quemuestra C'I:IAriI.OS unos hay en el numero, E J . rnuh:iplical" cad:;!, dlgitQpor e, l valbr de suseg;undo digito [email protected] numero d~ posrcion en el mimero, para finaJrnemedoses; el tereero, el J1iJUmerode cuetros; el 5UIIlaJ" los resullad.os, ~ ' - ~ = - - - - - - - - - ~ ~[ a 01 01"0 '_~_O~OD11l

    .. < 4 < .2t 4 t2 ,.. 1.-T 255

    1 1 1 1 110101

    y1'3 '!>4 ,3~ x 16 AS 4 .~ 1 ,1 ..1I -& 4 'J:> 1~; .~ ,~ .2 1j) , 0 . u - u -8 -4 "2 '0 17~ ~ o Q 0 .~ .;;: ,1~s ,35

    0 0 0 1 1A.qu1hay algwtos tjernplas mas que muestran Como cenvertirmlm.ems bimrios a d.ec ima l 'es-

    Dar 1 1 I ' L 1 meros gra rides a la camp utadoeaD e 1 1 i I l : " C de , ]a. oomp"Utaoora, llosniim:rns ma!lfOre.s qJre 255 seelmacenan en dosbytes , c -onooe . idooco.m.o.byte de ordell, aJlo" y ~:b"ylede onl'!ft;n baijo~_El byre d)", om@] } alte .md!i.ca~tos 256:suy en ,el nfulll.e:roy ei by;te de orden b~o as e] r-es~o.])eigual forma qiile con las ueoc ion . e . s ; , la !cQmput.ador

  • 5/14/2018 C digo Maquina Para Principiantes

    31/52

    La bandera de acerreoLa bandera de aearreo es un simple b]tdel regmtm de banderas (tarnbienIlsmado regiist:rode stems delprocesador) se uW:iza euando la soluciende W1E1 . operaeion es mayo:r que 2.68, pO I10aue no calzarla en un byte (oeho bits).Siernpre que sucede esto, Lacornputadorapone automstieamente un Ien la banderade acarreo, Es,to sa dsnomina "dar valora ' l _ a oom: ieTa deacaITeo~, mientras queh aoe I ']!,!! 0 sa a e nomW auooI'. i ll I' ], a bande r s

    Pu.ed . es pa'lSa1" e n l o t ba :n de ra d .e a ca a e o oomoe'] DClife:fLO bit que lliLdica que Ilifi I b:inarloha s i i d i c l Ileado do: Ja octa.rva colWlllili! de 1m.n i l m em . Por~ ,emp l i l . e n l O l l . !ll iIm.Ol.iM+2.(W lOOWOO+ l lHO ( l( lQ en h il la tio ) o bte m h:ia m os::

    ImaM

    164+240

    I. : i ! .S { l: i uci iOn a esta. SW' I1 ' I ae&404, @8 r e : qme reI l u e v e bits: eJll b m a n o . E I. n o v e n o bit i nd i c aoo8r!ms 2S6s h a "1 ell . el RUimeIO'. En laA.CBIi"Ili'eO en elZ80i E : : I z e o tiene d O l O Wferemes:funciones: pan~; .m.D 'I f . r u x : : . ADD le dice a ]aC'Omputadol:a que sume des llUmeI10S peroque l.gn.orecw1q14ler' .poslble . aca : r r eo deciJ).oillos .8lflte:rio:r 'e. r u . en la SUIDiBl se produceWI acaneo , . la oo :m:pu t . ada ra dari. vak l r 1 1 . la.bandera deac3D'eO" : m ie . l 1 . tt a s q1Ilesi no hayBlCB!IT:O ba . r i . que ]8. .h l l l f lde: f .EI .va i lga O .

    E :1 6 902 :110110M ~ne u na in sn :n wc i6n p8tl l ".1I . S1lm8l!r:ADC; poI 10 q ue si'e m 1f~ e m cl1 . !lY ~ ,e -n lo scMcu!los ei oo:n~em.dode Ja bandera. deaC!ln8@c outdlo a es to : @s i rr Ip oo: r t8 !r lt e bonaJr ]a

    o om p u.ta & ra ,e sta T la r e:p : ese li IJ ta do p or e] bitdQ la bandera d&a.cmr@o,

    ADC: ElS la suma amII.acarreo "f Ie indica ata OQIllPutadGra. qJ!l@ ~ dbs nim1~smasla bandera. deacerrec, pera frnahrteme dar aes tOi l . Y " a i l- , ~ r l 6 0, s e >g il im e l r@ ~mh 5 1 es t as[eallilando una selie de calcu1'os. es :mejorusar l l a . mstrucckm ADD' p8!l"a.Fa.primeriil S1milii. p

  • 5/14/2018 C digo Maquina Para Principiantes

    32/52

    Pirograma para l n l U lm 1 e : r o s ahosAntes de poderereeuiar Ies progra:l1 ' la. '3 de es tas dos paqmes l e oo r as que caleular los by tesde alto 'I ooj:o ordsn para cada uno de 100f l lJ rueros que qmeres sumar y , a continuscion,tntroducirlos en ia memona Por S']emplo, dlgamos que q]l..ne~es i l l_mail" 301 y 764.

    ~ dE ! ha loPrtnu! r ru : inr teM .30ij ! '3Q].;-25i6 = '11~D 51S~o~:"1'64i&H ..Z55-2. restQ 252

    ..AM:~,a,t l EmeS qIil.e .mttoducir estos byte',s. lm la sUbicacio~esd!em~o:ria de] principia d,e ]azonaque rese:nastepara 06digo dem~.P.

  • 5/14/2018 C digo Maquina Para Principiantes

    33/52

    La s Im.eas f i - '1 d @ ' l progi[",8!!rn

  • 5/14/2018 C digo Maquina Para Principiantes

    34/52

    ,I M~~a~

    Visual izaci '6n de, un me'nsaje en la pa,n ta llaEll :siguient:e pmgram1!l muestra oomoll5i3iI el c6digo de maquma Paira vg~Jizar unmenssie en la pan l a ] ! a .E1 l . p:rogrnma para Z8(I e:sta en la pagma opuesta, mwmb'M qus,el.de e60Z e s : t i i en lapagina 34.. l ' I :mibos programas slguen los misrnos prineipiosbi!isioos. aW1que el m~todo de ambos mieroprocesadores es ligeramente d ir:e re n te "' _

    E li programa C < W I < l ! ,cada byte del m.e~l t j e ; ,~e~n~~~~ifu;:;~elllte en k! p~. A~ ] . a temm.w. ador y 10 comp~ COO l 200 . S i. el byte. contrnUiaciOO, la comp1,uadQr.aJ.V1Il.&Lve aldel IIilinsaj:e'])[0 es i g ;n aJ a. 2 . : S i S , ]o~cena en principio de l p rO Qita m a :pal'a I:nwcar e lto ! memor ia de 101.lla 1 1i~ a lIa , s e li Ils ua liz a siguiente by t@ de l. m ef lSa .je de ] [ ' 1 m.ema r i a .

    33

    En ,~] z a o lI.SlI. e l op:m d.o :r CP 'Ie n ,e il l 60 02 elC~ para de()~a ]!!l oomputado:ra ~oompare un byte eon el qUe naya en elacmnuiadm. :[a ( loI l1l.P1!I la:Clora; los 'comjpi iTi lJ.~ar!.dQ W\Q del OU"O (es!(i' e!: :solo unacompmha.ci6E, los bytes no su: l ' Ien m g u n < lalter:;ll~6n)_ S .i el re .s rn tado e

  • 5/14/2018 C digo Maquina Para Principiantes

    35/52

    E$~O !Ooon tos n emorucos '! / oOd i g o s h e x a d e c Lman e s pOLra z s o . J!.DIJeSde e joou ta r e i p,roqr,8,ma, i n l roc lm: : ern. mensaie ell eJ RAM Iibre .. A. OOJi loo1i lClO'~-Las in$1rI!!1.ocion@$de las l!ine

    :W A , (D E ) ie d : i ice a . la compu l : ada ra CFle ledIi'!direecien 'en DE y lueqo busque el byte deega.dll:e~i6n y la partya en el aC1mllllador.Esto es direocionamie:nto .incfu~cto. Aoontmuaci6n OO]l! l] : laTa el byte del acumui lador

    con & FF {e~hexadecimal de 355)_ RET Z ledice a la romp!.JJtador.a. qu~f!~o:me a B A s r c ! O iL a bandera eero ",. rue 1 {as decir, ! O i eI b'{tE esigual < I . 255). Sila. bandera eerovale 0,ooulirLuara con L a 5igmente instruccinn.

    w {HL.), A~a:r;riliien Ul i l i za direceionamientomd ir ff: t. o_ L ! d !.C I ! - Ia oOl l i _pu t ado r a que ~eO!], adli!recc1ifut en . F . I 1 'I .almaotne e l rumen[do delaeumalader (elbyte del mensaJe} en laubicamOOl de esa direecien, INC eselnemOOrioo de ~iacremento 'If :significa

    ;!!lll!mento ,en 1l l11.0. En ]as line sie~.ey ocho, 1aooltnplltadotill 51iUJ1a 1IiIlO a las direecionesconlenjdas e!'tDE: y HL para que C l l . . a : : f i d o\Il!leJvaa ] 0 1 . coastruceion de la tercere liineareco] 11 el byl.e de m e n s : a i e de la. sig;ute:!TI:wubtcacien de rn.erni;lria_

  • 5/14/2018 C digo Maquina Para Principiantes

    36/52

    Pli"ogramal de mensaies para 6502ES lOS : sen los n e me n icos y COOig:OBh :exadec . im .a " l es para, e1 6003 . An tes : de ei:ewta.r el pTograma.tendll'as ,que mtrodJucir losc6dtgo:s d~ los e a za e te re s de tu m.ensa j e enIa zona de RAM : Iilne,:seguilioosde un 25:5, es decir. de la o o ' n a 1 de fm de mensaje. . 1 \ . roIllllnll!lIci6n pen en lasequndaImea. del ,P lQ9 ' f ama la dirscd.6:n, en he :xad!ec i n t a i l . de ] 0 1 p:rime:ra u l l1 i caC '~ enla q:u:e ~$~almacenedc el me f iSa ] e , : f \ o : I l l un a dir!ocion e n 1 l1 .m e mor ia d e p an ta 1la d :e ~ Uie ()m pu. ta do ra e n taC[ lJ !i n ta l l il ea .'F !l1 Ii l i ie :n M e n e s q 1ie C()mple~ 101i n e : a s :@p t h r !,a c o n la d ire e c ie n e n ] 1 l J . qUe va < I. a Jim a oe n arse 10 1segunda i iJ i lslmcciem d~ pmgram.

  • 5/14/2018 C digo Maquina Para Principiantes

    37/52

    Saltos y ramlmlcacionesSe denomina ramiflcar a haeer que la computadora vava C I una instruccion en 0 lra partedel pmgtrama.. E : x isten ties tipos difererues de rami ricacloliles; saltos, subrutmas yrarmficaeiones condictonales, En la ramificacion condictonal, la computadora ileva a cabouna comprobacion 'I f e l i connnuacion 0 bien 88 ramuica o bien conunna con ta ~lgUienteinstruccion dependiendo del resultado de la oornprobacion. En la pj.gma stquiente nallarasmas casas sabre la rarrnlicacion condicionada Los saltos simplemente le dicen a Iecornputadora que vaya a una delermmada diraceion.E I ' co ' n r tad i i lu ' de'l pro,g 1'0m aEl contador de prograrna iS l ! i1I n!qislrO especiaJ. de 1,6bit que contiene la di!!'eccLon de la ,siguien.,eiirLstrncci.6n que 'va ,BI ejecutar la oo.mputadora_ La oomputado . ra lee el mimero de] contador deproqramapara, a oontwuacion, dirighseill laubicacion con esa direccion para recoqer SI1siguienteffislnlC'ci.6n, Tras esl:e proceso, el contador aumenta en 1!WO, !)or to que diriae 1 1 . la computadora a la!iiigui,enteubicad6n dememorfa,

    CUando, le dices a la ccmputadora que sa I . ~ f I0se ramifique, a:una detenninadiii. dllec.ci6n,esadhecci6n se pone en el conradcr de prom-amay la O( lmp .a .dor . l . l Ie va . ,a o a bo se -cue in ,e ia J rn e n ,t. e,Sub rutin-asLa . m s nu O C iO Il . ,;C A 1 L direcci6lt en el Z8D y ..JSHdi1'eccion .. (saltar ala subrunna) en el 6002 ledieten a la cornpulado[BI qu.e vay&a. una subrulina. Funeiona de igual forma queen BASIC, per 10que al rinal de la sulbmtiTIill.neceshas una insIrucciQ!'IJ,",etorno (RET en el. z a o y HiS en ,e] 6502).

    todas las ins!l:UcciOI1@s a partir de eS

  • 5/14/2018 C digo Maquina Para Principiantes

    38/52

    Remifi:cacioln es condicio na IesEn ilrla. ram.mcadiin condicionada, L a oomputadora ccmpraebauno de las bm . del r e g ' l ! S 1 : r , o deband-eras seg:iill sea al resultado" 0' biel:'lse ramifica 0 bien continua COIl Ia siguientei:nslrncdorL f-@slanlos; bits del regislro de' lband.etas que pu.edes eomprobar en las ramilicacumes condiciona '

    v 0 P N . StI d tMlO tm l n a hil. de< SUpe[a.ci6n de capaciod!acl.en e l68(12_ En el .ZOOtiene ;:1= fmjclt;me5: y se denomiM~dI:nlperB,t:=id!1J de capacidad_ Col'l'Iohit tie Supe-.r&Ci6n,tie C!I!~acLd!~d1i1a el v~ I, cu~..o el resultado de uncMeu10en ~a.:.l61l oomG;l~e,nUln

    dect.. que remen el "a la - I" O.For ejempla, en el'6502 la inetruceion DEC (decremento) a feo t a aislginO y a l a o bandera cere, ~

    Operadores para ramificaciones condlclonalesEstas son las insrruocionas de ramificaciones condieionadas para comprobar carda. bitz a G 650~JP C " Exisl: acarreo (C=1). .W NC.""""",,, ...No bay acarreo ~C=O)fP Z"",.., Igua1 (Z-I)JP N Z ,. " N o igual (Z=OJJP M Negativo (S=])JP P Positive (8=0)JP PO """ .Partdad impar (PN= 1)JP PE Paridad par (PI,y=O)

    ]3CS,.,.. ,." E;;;;istea.carreo (C= 1).IlCC ,."",No hay aearrao (C'-:;O)BEQ "".""""Igual (Z= J).BNE ,.No igual (Z 0 )BML Negativo (N= nBPt posiiivo (N=0)BVS Con supe:racion de eapacidad (V -1)BVC Sin superacion de capacidad (V=O)

    za oSaltar a ubicaciones

    I si riO hay' acarrec.

    IRamificarse 5 ub icacio Iesi h , 1 ' I 1 scerreo.ai hal' acerree,

    ~spues de la insotruoci6n ..J P comprobact6n~de] Z80, l@das a la cornputadora la direccionde ];1 instruecton a la que quieres que salle.En el 619002e , das i i i . la oompuladora, un numeroque 19 inm~ C'b" IMr las ubicaciones tiene qua,sa]l:a:rha .c ia de18illl'e 0 hacia detras p-arOienoontrm Ja ir!sttuoci6n. Esto se' de l ' LOn l ina~di.reocioltatliiento relanve y eJ IYlimero en si,

    "desplazamiento.El Z80 tiene tanilii,en una W,struccIDn para

    rarnincacion ooruiicionada J'Roomprobaclon.0001 Ia que Si @ uttliza el d8iSP]azamiento enlUgaI de una direcclon . . m qruere dec . i r j1J1mp(saiLto) l'elatJivo~ 'I v uo oe usa IS@ ' .so locemprohando la bandera care "I Ia bomderOlde aearrso,6

  • 5/14/2018 C digo Maquina Para Principiantes

    39/52

    C : a l c u l a r e ll de sp Ja za m ie n rtoCti.ando le das a Ia computadora un numero de ,desplazami@nto en una ram caciOn -,eondicional. la complIlladora: calCl l l la la direcci6n a Iii que debe saltar smnanci() o restando 'elnfunem de desplazamiento, del 'cQl:1:tadordel programa. Para calcula1" el desplal!am:iento cuentaellillimeIO de bytes basta Ia instrucci.6n a la que quieres que sa l ! te . inc1uyendo a esta, Comienzae~ la ins~iiin siguiente ,a l~ de:la ~ficac~condi.cionad.a y Cll.ent~corno 0 (va que et 'l3 'eoatader de p1Ogl'atrla ya mdicara esa instrucraon), 1';o:r 'e]emplo, aqm nenes des progr.unasmelles de 65012con los qu.a aprenderas a. oal.cular el despl.az8imienl() (el me~adoE l ' S igua1 'en .Ll,iUl""_"Z e O ) .IL!DAd~recc;i6nCMP #&FFBNE iii In s

    ( S'lA dimcci onBTSEn el ejemple ,!>U.periof" para cer qUe Jaeomputa:dora saltea lalnstruceten RTS eldesPlazamiel1!ID es 3.

    En el ejemplo inferiQr" 'el desptaza.miento,para, haeer que la computada;r.a. sMte de vueltaa la instruction ADC es - 6.

    lIDA #&00ADC #&01(eM!? #!!iFFBNE a PlDeRIS ...._~Sa Itos haeta dela n r t e y Ih,aci:a d e t ra ;&P ,a ra lo s sal.tos hac : i . i l Jde l an t e simplemenle oonv:i,~tt,e,e l despJazamien10 e n W\ r tn m ero h e xa de e im e l '8introcJluoe!o en el programa. No Obslant,e; para los sru.t,O;Shaeia detras el ,despL8Zami.enlO es lJI1jmlmero negatilVQ y n o hay manera de indiC'.at maneres ne -ga l iV 'os e ll un In lme - ro bIDal:io de ocne bit.POr'ella, en estes casas sa usa un sistema dif~mmte c.unoCido como notaclon 'complementaria ados, En esta l1.O.tac',iOn,l hit de lai2quierda 5I e usa como signo de bit. Si I S l e bites I, el n ume r o esnegali'il'O. Si eseero, ,e] numaro sera pOsitivo.Compleme'nito a des1. Para hallar elcoraplernento a des de lIDmimero, diga:rt lOG e] 6 (el desplazamierLto delpt09I'aIna anterior). en primer lug-ar se escribeel nii.mero en binario,2. A oonti.nuacion, camhias tados lo s O s pa r Isy tOd05 los is pOI" Os. Esto se denomina"flipping the bits 0 o

  • 5/14/2018 C digo Maquina Para Principiantes

    40/52

    Progr ,a lma de efectos lnterrnltentes en pantallaEn estas dos paginas encontraras un proqrama que visualize alternativamente cos oloquescrsando un efecto en mtermitencia lurninosa, Muestra como funciona la animacion 8 J nivelassencillos, En la parte inferior esta el proqrama para 2'.80,mientras que e1de 6602 estA en 1apagina opuesta. A I final eneontraras unas guias sabre como ejecutar 81 proqrama en ambosmicroprocesadoreaEfectos ime rm ltentes en ,ei l80D i.c .h o de un a mMH;;:Eas.encilla. el PWW - ll lI li il ,s .t tO : r I!a la v ih -u .a l i l! ac . i6 .n de los dosb loq ll i ' ls ca rga nd ,o , unbyte dB carla bloq;ue en los registros If a1maoent~ d 'l h loous a en HL. 'II"""{= di ~ , eC ' l ;~O i i pa . tr a e ll .. /I11 . d. i r ecOOJl I l P o . " l e dlre ccton ~ l l l .o ~ ,umlro .e meas en 1JTI . oque. ~~" - "._~ 'C . . . ' b . . . - .C", . -".. .. h -xadeetmal, mterc...........aQU:>. onvierte am as uU'eCCIOrtesa. l Ol'lVLe .. e a - e. - ltexadleerrnaJ.. . . . . . . . _

  • 5/14/2018 C digo Maquina Para Principiantes

    41/52

    Efectos in1ermitentes, pa ra 8502El>1iepriogramamter,cambi,a des bloqu,es: byte a . byte (eli>decir, cara.cter a caracter), comenzendoconel UiJlimobyt.e de cad

    E lD d jre or : i6n b

    D E > : :IB iN! ; a la ~ r : iD J i j dn a

    ,eAD O E F ~ , d ,e , ~lIJ ala I !Jb ica lci6n & F si X no eB i g u a I a a E!I ' 8& ath e x a d e c im a l del, ~p-rneJL1D a de s dB IT (y e r ~ 3 7),

    RTS Retcrno.

    Cargar V ejecutar el programa para za o 0para 6502La mejor manera de eiecutar aste progrrarn.aes como una subrnlil:ta en c6digo de rna..quina.dentro dal c:nqadOI" hexadecimel, Para. harere sto , s igu :e e ste s pa se a;I. Copia. el cargad,or heKll.decirnai y pen Los,e:6digos hexadecimalea adecuados para nicemputadora enel paso 160.2. En lit paso 100 neeesiraras dos Dudes parainu:ociucir los earaeteres para la visualiaacionen Ia mamoria dB' pantalla, Por ejemplo, ,ifulrosson los pascs par-a. dos flias de + (o6digo 42)seguidos de des f i la :s de 0 (cridigo 48) para.una co:mputado:ra con una. pantalla de 40columnes;19) FOR.J a 10 n100 Po.t ;;Ep~ i ine ra d i rt i t: r i~n d~ jlI l ln~aIlHJ,42MNEXTJn o F O R J = 8 i l T O 1 5 9m P D t t primera~rt![u~n d e j i a n 1 a l fa + M l lm N E X T J

    3. A continuaci6n. afuide IDs siguielltes pasosal final del prog:mma:: w : J c . o \ U _ m ir tr :c i: ln d ou ds ~ I a idi go ~ ~ fllaq~jll~ A s i ; l a l l n ~ ~ e rn l l .l 1 J .l5 @ F O R t : := 1 T O 5 0 02 { ;O ~ E ): J K c amb : i ~ e l n W ' ro e r o 5 0 0 . 1 l ' O 1 cl ( jOO ~ G < a .2 1 0 G O m 2 4 { 1 r o t 3 J ; a d o c o . l i i O O pan til OOJrrpulildara4. Ahora escri.be RUN para ejecutar elprograrna. EI cou-gador hexadecimal introdn c::: :)los codigoo hexadecimales ell Ia memoria y acontinuacion los o6digos de visualizaoi.6n enla m e m o ria de p an t aDa . E~paso :M Q 1

  • 5/14/2018 C digo Maquina Para Principiantes

    42/52

    Si quieres aprender l T 1 3 s casas sobre e1codioo de maquina, 10 mejor es que intentssescnbir y probar nis propios procremes y que estudies programas escritos par otraspersonas, Un interesante modo de usar el c6digo de maquina es como una pequefiasubrunna que rsalice una determinada funcion dentro de un proqrama en BASIC. Potejemplo, el c6digo de maquina es e ape cia tm en t,e apropiado para distnbuir datos 0haoerrepresentactonee en la pantalla debido a que es mucho mas rapido Yocupa menosespacio de memoria que e1 BASIC. Este tipo de subrutinas los encontraras con frecuenciaen revistas Si las subrutinas estan eseritas para til cornputadora podras ejscutarlas sinninquna alteracion. S . i estan escritaa para otra marea de computadora que use el misrnomicroprccesador. tsndras que cambia! las dnecciones del programa por direcciones en lazona de memoria de tucornputadora que hayas escogido para. elmsoenar o6digo demaquinaSub,J'iutiinas en codi'go de ma'qluin8EstO'S son los paSOS que debes segruir pamUSaI' tin a S Ilib rudn a e n o6d!iq o d 'e ' m a quin a e nun programa. en BASIC.1. . .Rese-IVaUlllespacjo en 1 < 1 .memoria. para a loodigo de maquina bajando ,eolIO[:lE deo!EAMdei us'uaxi,o (ver pagina 2o..;a~).2. POll los 06digos. para la submdna en o6digode maquina ell! la linea 16lJdie.! proqramao:;argadOl' hexadecimal de la piig"i:ml. 24.

    I(Asegmdte de q1IiE!l hay una i ru.trucct6:n retornoal fmal de] programa en o6d!igo de maquins.)Si es neeesano, ai!ade llneas para. ~trod:ucir 2bytes de datos. COp;lOjj, el. cillr9lador hexadecimalY ' e je ru ta i i .o .3. Numera tu pr'ogYama en BASIC eonmsmeres mas altos que el del fillimo mimerode paso del co r rgado r hexadecimal. En elPWlto del prom:arna en el qtte quieresqus Jacomputadora ejecute el 06digo de maquUta,pen 1 1 ' 1 . instruccion que requ_iere tucompuradera para ejecutilli'tm prograrna. 8nc6cl1j,gode m;;lqujna como un paso m a s d'elwgra:ma en B.AS IC . ,

    40

    B10 ~S(C< o ~ ~.' 1'~o~'$~C~:,6,~, c~('~

    l ir . , - t . c . y. ., " . ' 70,' I:6%..I C)~ .~< '4. Escr.we et p:rogra:m!l @nBAS IC en tucomputadora v ascribe RUN. 1a computadoraejecutara las instruceionas en BASIC hasta queUeqaa la mstruoc i6n que' le dice que ejecuuse .l pr< lg l "am.a en c6d igoo d' m1iquinll, tra s 101emil.ira a 1 8 . direoeien en la que est;!almacenadc el o6dig:o de maqu inB l Y Ia j 'BCl! l taI< i iSU!S inatrucclones. La irLstmoci6n reto rno alJ : i . n a J I del codigo de .maquina mandara a I . ! ! .compu!adora a la sigui,ent.e linea del p r '( ) 9 1 ' ,a m O len BAS I C .

    Usa de U I i 1 I ensambladorUn en:satl:iJblador (un progral'l"laq:u.e teperrrut'eescribir un prognma e n o6d.iqo de m.8.qWn,a ennBrnoni.oos) h a ce m ltl.ch o mas fa.ci11aprogtal'fLacion en c6d!iqo de, rnaquina. Puedesecmprar un ensamb!ador en emta para casi tedaslas o om p uta do ra s pe rsa na la s; y < l19Wl< IBomo laSBC tienen IHl @II!s.ambladO'f incerporede,Con WI eru;amblatdor puedes escribircOJ ll e J 1 Jt a r .i .o su n t o !I . los ne ;monio0 .5 para recordarq u e hace cada linea, El ensamblado:rv:i.:sualiz.al'ael pr'ogra.ma en la pantaDa en hexadecimal, connemen i cos Y C iO n l os e em e n ta n cs y dfur ' iCc ionesen los que e5 t a n almacenadas las il'lS1mcc.iones,E l ,ensamb]ador r'eGW"IIOlautomahc

  • 5/14/2018 C digo Maquina Para Principiantes

    43/52

    Esta tabla convierte numerus haxadeennales entre 0 Y'FF en rnimeros decimales y viceversaHexadeclm.a'i ill deciliDillPaJ"8.' conve rn r l!R m'm le ro de h,exadooimal adecimal busea la f i l !a de] primer dIgito~adecimatl de tnnfunero hexadecimaly la,colUmna del segtlndo dig i i l o , hexadecimaJ! ..].a' C B ; S i D a e n 1 ! I J que se 0EU'CeJ! ,seR el ' e qWva l e ;n t , edecimal de ru ntmtero he~adecimaJ. Ej.: elhe1':;mec:irnal iU es el dec,imal lSi.

    Decimal a hexadecima'i.~lrni amvettir WI. RUnteI'o decimal en:h exa de cim al bn sca el.miimero de c im a l e n ]atabla Luego lee L a fila en la que se hafla paratener el primer wglto y ia ool l . ! lmna ~n t a o queSil! ' halIa para mn.M e] :segundo. Ej.: ]54 es SA.

    I SeQjundo dlgillto Ii~~decimal(l 1 2. J , 4 5 ~ 6 0 7 I II I 9 A B C D E F

    0 1 '0 1 2 I J I 4 1 5 6 . , S 9 10 11 12 13 14 151 16 " 1 1 3 ; ltl 20 .2 1 22 .2 3 24 25 2,6 27 28 29 3 0 31:2 3. 2 33 3 4 3 5 I 36 I 37 38 39 40 41 42 43 44 1-415 46 4 7'iii - 51 52 53 54 55 56 I 57 58 5'9 60 6,1 '62 6348 ,49 50: 1 : ,6 4 65 66 67 68 1 6 ' 9 70 71 72 73 74 75 76 77 78 79',~ 5 , e o 81 8 .2 83 84 .8 5 8S I-- 87 88 89 90 91 9 2 93 94 9 5';I~ 6 9ti 9 7 98 99 100 I~ 1 0 2 103 104 105 106 107' 1013 ' lOS' no 111~ '1 112 113 114 I 115 us 117 ll1a: 119 1.2(l 1 2 ' '012 ' 1 2 ' 3 12

  • 5/14/2018 C digo Maquina Para Principiantes

    44/52

    IN lem6nicos Y cOldigos hexadecirnales de z e o lEn las: pr6XLrnas pa.ginasenc:orutr:aras las nemonieos y c6digos nexedectmeles de lasinstruccienss t r a t ades en este libro. E~.termino direccionerniento implici~o~U\Sado en estaslistas es sirnptemente el nombre de aquellasinstrucciones que no rsquieren que seespecifique ningun operando en el codiqo hexadecimal Existan alcunas instrucciones noincluidas en estas li.s:tas,PO! 10 que si de.seas conoosr m a s a fondo el cOdig'O de maquinanecesitaras una lista completa die lssinstruceiones de z e D (ver pagina 40). Las s.igui:en~esabrevieturas se usan in las l i s tas :1 '1 " "RWne IOlI!l'I. =ElJUmero de des bytes:r "'registro,DCl I . , f I l . SuroIa COl1I acarreo Ulj!Il i tim e r o n . a J . ;~CUI'I'I~.(Di!re~tqnami.e!1to i nm .ed iLa i to - )

    ADCA . n CE ,nA!!lo(l A,r." Siuna eon a~o IiXIlegjstrOo r al ~adol'.(Oiroc:cio.ItamiE~to impircitQ.)AIDCA,A 8FADCA,8 33ADCA.C 89ADCA.D 8A

    l1' = O I l r de regislros.1(= direccion

    CJU.L x . IT B. ta . sumutlm.a .que"ornie-= en. Iadirecc:innx;(I):iH:oCc:iO!l~ie-nt()inmedialoj..CALL; . ; : CDx

    Crud. c,x. Ir a 1 \ ; 1 subruttna queool1lJiill$a.ell la dllreeciDm xd a p e nme n o o , de ]a ~~G l i i c .c puede ~Z (igu;ill; ,[lIZ (no jgual);t: (~eo;I}; He ( n o . a. c a1 l'F ( :o ); ; PE(p ;a r i dad pa!I")i !PO w a n d a d Lm!)ar) .M (I1~~[vo), .:I P(Po~ ' i vo ) , {DJ recc i .o :namien !oimned i l l l c .

    ADC A,I: 8B:..._ ---1!f------I r - -A - - = D ' -C = - - A - . '- , I -I - . --___'gC~~~~~----~~.---.---ADCA,l 80

    ADD A,C 31 CP AADDA,D 82 CP B -(PC BB__ADD A . r e ~8:.=:_3-----l C P D BAAQDA,H all -C P E - - = B B = : _ -------li - . . ; . . A . , ; ; ; D . , ; ; ; D ; . . ; , A . . ; , : '. ;; .L _ _ . . ; . . B . ; _ 5 ._ " " " , " " " , ~ - C P H B C

    C IP L BD

    ADG HL, i1Y.S\nn.ot ;; tE e ,: : ':CA l l I PO . x E4 . xCALL M,x FC/(CAlILP,); F4,)(

    (lor'Q m n plle m eD ta J: b an de ra de. Ic a x r e o . ( D l I: e c c i0 1 : 1 3 I I1 i E ! 'l T l t DimpHdtQ,).

    CCF 3FCP'n. Cornpara el contanido delat:;=uladar' eon el dam IL( iJ iJ :e t:td O Il il IT 1f- en to i: m rn e di at.o ) . .CPn FE n

    G E ' J ! o . Corn!lara iLao!1t1!ni4'O' d ! I ; ! ' J18giis~ro [ 00Il. a l. acumulados.(Elixeoc[{]nanUeQ,1o irnphc~o).SF88

    CP [EL~, COmp.3 .' I" iI !e l comen~-o ( i i e lI acamulador CQll el com~ de 18d ire cc io t\ ~ h a .v e n E lL .Wire- : :c ionamiento)} indirec~).- CP IHU BE

    c '"'cnndiciondl=desplazamiefJilO'

    D E C ' :f. DeC l le r nenW d e l r e {li sl ror.(Dire~ci.Q~eI1'l; l i !n_p!iCUiO).

    --

    I DECA 3DOECB 0 5DEeC O I l JD E CD 15OECE toDECH 25 .-DECL 2ID

    Dii~trr. Iilecrems!IJlo da~par der e~ ros rI. (]) i!- f : :cc_nn: len1Jo;>j_ ' I1p] j~o} .DE C Be OB

    D EC ( i I IL) i . lDecrerneutlo delQQnteTJ Ik l . ! o{if: I a . Q l i . r eo c O C r n C l c m t e n ic i oen tiL. (Oirect;:iD!Lmtiento indire~o).IDEC~HU .3 5

    IINCr. IlllCremE'Illo del ~I[O r,lD i racc ion -3 i f f i i en l o i r l tp l ic i !O) .INCA. 3 C -INCB 04 -INCe o cINCD 14 -

    I_ _ _ _ _ ! N C t. 1C

    INC In 24INCL 2C

    INc :IT. Incremento del Pal!' ( 'Ie-regi51ro~ n. (D i l reo . : ; iQ .na ! l l i en toirnplicijol.INC Be 03INC [)E 13 :INC Fit 23

    .U!lC (!IL mcr' I;!- ! ' I1Il ;!- lhtO del C!!)ntenidad ie ' l i : ! d :i r e c c :l 6 :l 1 . . ~ . h 3 . . v e n m ; ,.(O i re e c lo n a r n J e t'l to i rt d :l t- e e to ) .

  • 5/14/2018 C digo Maquina Para Principiantes

    45/52

    Jt (n). Sa l I o a la . direcctQDo o n ct en i d! a. e n el pa r de reg isl I l "OS. n.tIlirf:~ionamiQnto IItipl[db)).Ir-----~~----_=~ ------JP{Hl) E9 I

    IJ!) .R , (X). C~qM e l a c wn u Ia d ol:COn 81 contsmdo de Ia direOCLOn x,tIliFBooionamienro albsoll!l.to).3A. [x]JI.P~X) DDES I~~---------J1 ~ ~ J ~ ' P ~ I I ~ Y ~ } - - - - ~ F ~ D ~ I E 9 ~ . - - - - 1

    ]P c,x:. ~tQ. II la dlireociOn IIcU ip emd i i. e n dQ de !a =d lO il6h c . cp_de ~e:I' Z (igual); Ia (00 igua l)= Co(aca r reo ) ; N C {!lID a . C iUT eO} ; P E(liari~ par); .PO (p.uiclad impar; M(negativo); P (P~livo).(D i l e c e looax r n i e n to inm;edial:O).

    JPZ ..x CA,);;

    W H (X). C;uga;r el par dereg:islros :rr 0011 e l O OlIi: em ii:lo q e la scml!(J~iOIl.es X 'Ix.+ 1.(DJracc ianamieru:o Wull1fO)_

    ED4B. (x)

    I LDE .A 5 .F

    43

    LD D E , ~x} ED6B, {x~

    lI'D lE,r. CaJglU" el ra~E CQ!Il el{limlenido del [eqls!to r,(DirlKlciOIlamjel'llQ itnptici!o).

    LD HL. [x] 2A,(xj

    LDE.B __ ~5~3~ ~LD~,C 59WE.O 5ALD E , IE __ -=5~ B ----iLD E 1 -1 5C:c..:;_ --jLD E .l 5D

    LEI ! E l . r . . CatQar el registro f! con elOOIiIIMlKlio del regiBtr,o r,roireccionami~mto imp!lcitQ).

    t." J , : - , : P - " N : ; C -' _ Z ~ , : : : . : : , x _ - - - = C := : 2 : " , " , ) ; ; .J P C .x DA , x I t--;-;;;:-:--";;:------=JP NC.x 02,x I t-~~=-------=-----___1 1-- - :- ;: : - - : : - :": := :- _~-7.~~~----~~----1JP PE.x EA.x

    LDH A 67LDI 'U3 , 60LDH,C mLDH.D 62lDoI-1,E 63 ,LDH . IH 54lDf-U 55 ,

    JRZ,d 2flsd:-- __ --I W GJ~'Cargal' e~ r~!I)1:I C con el LD A, (Be) OAJ E : . i N C , d 3 0 . d C

  • 5/14/2018 C digo Maquina Para Principiantes

    46/52

    U[) {r.r),:r. Alm8.c :e t ' l1 l ill COI1. tE!n idadel ~tf'O [ m:l la dU:'ecci6necntemda an ,e1par de ~ros 0:.(D~cciooami(llj.!o mdicec!oj.

    IRETe loaRET NC _..;;'D""'O_ --'RETPE lEaR ET PO f~O----

    LD (BC).A 02LDmELA 12LID~HLI.A 77LD~HII..tB 70

    RHM FaRET I F ' rn

    S'IIGA,n, RasIa con acarrao (i t daro -II del aeumuladnr ..( D i r r E lOC (OO l l ~~O i tu n e , d i a i .O ) .LD~HLLC 71

    IW'(ro, II,J I lma; ; ;ena el ! faro IIe n ladirecci6n ,eonlenida .(tII el par da~trm IT. (DiIoocionam:ientoi runc~o I lmcfu . e . : ; l 'Q) .

    sse A,y.ReE;1);J 000 acarreo el.cofLl'enidQd~! regis!ro r del! ic ur n u la d or , ( D ir e c ci oD am i e n iO, impl i e i t o ) .SSCA.A SF

    lD jHLI,n 3 6 I- -~ S -=-B -=-C .: .,. :A ::. .: :,B :_ - -==9=:.:: :;8 _I.__..;__.......;,.._--~---!I se c A,C 99 --SBCA ,'D 9AET. Re torn o de ooe un a suNu1llla.( D i li a c e .iO l : 1 a .m O O . e n i.O i f id l ln l O 1 :O ) .

    C9E T SBCA,IE 9BSBCA,H 9CSBC A .1.. 91D

    DC KL;rr. ReilUL con aearree el( l O l : 1 ! i i t t i d o . : I i i l p a r d o t~i'Oi!i IT 1 6 7 . B 1 3 e n h e:x ad e;c im a l ~ < S & l 3 ~ . H . 25 6 'Iocm1l"lrUr la sol lJo: i .6n a MxadC l c ima i . Ej. :Pigiina 26, a s . e - 8-200 que 98 F.Aen hGl!:adecimal.1. 25+73 ($5 es&J9 y 73'88 &49}

    8 5 0 2

    :5:00 A,(BiI;}. R{is ta. 001'1ac a r r eo eil Icen ten ide de la dil~- ,c :c : i6n qriL 'c n{ lYe n e l ya x d.e re gi!;. !r os tIL do ll lc umu lad : o r. (Du rocc :i o lJ , a ll 'l ie t l JtQiIl..directo).

    LD a . & 18 3 E . 1 .9

    SSC A,(~L) 91;;ser, Dar va lo i ' a, la bandera, deacarreo, (DireacwllIamientoi m p H c : i I O ) . ---1SCF 37

    SUB, n 06,. nSUB ,r . R'BlSta. e l Oo:J1te'Im:lo dE l l[egistro r da Ua=RJ!lador.(DireocionamlBnIOirunew;j!o) ..

    SUBA 97 ,-SUBS 9 0SUBC 9,1SUB!) 9'2SUBIE ----9'3SUBH 9'4SUB i. . 95

    C6, ~9

    . S U B { ~ ) , ' 1 l e : . ' I I 0 IeJ conrenido de la Idir'8ocioo que hay eJJI m dslaC !W tU i !l a d or . ( D h ", E !( :c iG n am i e n t oi J ldh 'ec te.

    P o n e & J 9 e ll e l ! l. C lI ID u l a . c lo r ,

    Iill (c l i reoc l6n ) , Ar u E T

    1 6 S ! ! . 2Nel!lom~os

    Z80Ne~

    rnA #&40

    l ID d . il~c c i6r i

    ' 0 1 1 O C690]; ;

    AirM~8 e J C G l 1 i1 e ll ii d odel aG" iJm: u!a do r e n un ade!eml l :nada ~6ll..

    3 E , ~ O

    A 1 m & e e n a el c o n 1 . e l l i d _ C Ide l ao I I l J l I ! l I l l i d o r e n u n ad e 1 e r n li m l i ld s mrecr . : i6n ,

    A DD A .iIiO E e G , O E

  • 5/14/2018 C digo Maquina Para Principiantes

    47/52

    Nem6ni i ,cos y ,c,6digos hexadeelmales de 6502Esta tabla muestra los nemonicos y ]06 codices hexadscimales de todas las instruccionestratadas In este libro (y algunos mas) . 10:13 nemonicos de cada instruccton S ~ encuentran ala lzqu:ierda y sus e 6d i g o s hexadecimales pa r a las diferentss mod a n d a d e s dedireccionamiento se muestran a 10largo de la tabla. El direccionamsento a la pagina cero esigua~ que el direceionemiento absolute en donde el oparando es 1;&ireceicn en la queestan almacenados los datos, siendo esta una d i rece i on de la p;igina cero (as decir,ubicaciones 0-2-56) de la memoria (ver pag i n a !O) . Direccionamiento imp l l c i t o es el terminousado para describir instrucciones en las que no nacs Falla especilicar un operando, Ej.:CLC. Existe un nnmero de instruceiones que no se tratan aqui, par 10 que si quie:resoonocer m a s a foncio el c6digo de maquina neces i t a r a s una lista completa de lasm stru c c io n e s de l 6502 . .

    ' " s ~ : > -~ :1 l 0 < > ,g < >~ " .", .", .;:; -~. '" !1 l . . 'a '~> :i c. ~5 -j];. . . .~-e '" ~ 1 m : ;: ~ 1: ~Ilalo Cl) Is lQu le r D ir e cdoM s D ira l: l ion es D ire ce io ll l i ;$ Ni"lllliM D~ p l a -d i l i t lct i6n a n l a +reg~tro +f'l lg i t~ro zarnienteI P a 9 ,n a e er o X y69 ~D 6 5 7D 7 9 'l!I(l 9llt '18de~=~,; s ~ , .S1m1 i I . 1m b :; P 1 i ~ i i i . W!is l i i d o e~ iI .w l,m _~ _r.

    C 9 C D e sE O E C E ~c o C C D l

    D E c o

    E E E I ; i

    sc20

    A .9 A) A B1 1 ' 2 l i E 1\6AO A lC .A 4

    E 9 sn E BlI D E SJ lE a eli e So l i

    DD

    [IfC A88

    P i E .E D .C B

    . 1 5 1 . S i i! 1o a la S!ibrultna qu a aomiEaw. E' l1 I : a J dir e l r i611 epedl i 'cada.el~

    IBD e sB E

    'B e60

    FD F 9J B

    9 D 'A S

    A AS A .S A~. 45

    'UYGaJqi!iI~Y.

    9~ Re51a con ~ R o o ta I ls l aJJIIIl11lI4dar y i amB . ! !' - ~S !~o deIi i . boald.eIa de acarre0.

  • 5/14/2018 C digo Maquina Para Principiantes

    48/52

    Pal l ,aiblras del codigo die maquina~, El ~ que con t i . e n . : . l o s . b v t e sde inf~ ~ ios que :s e ' !, Il a n a r e a J j ~J f~lUl:Sl0g;icas 0 cMc u l o s aritrnetiCltl;S.EIand.e- :ra. ITn bit en el ~ de bai ruJ.eras q ; u , ese usa p;;w.l.iwli~ W1la c:i.e$oondicl.6n. Ej.;1apr~ de Ul!L n~ negativo e d~ acarreotras unasums,l i I iuI.der.!i . 'CiefO. E li bit eIJ! e1 r~ de banderasque i l : J . d i c a . C\:I i indo ' e J l re51! ihado de IlMI. opgmci .ones G, usandose ~ien ' pa ra indica:r cu8nd.D des. s :=I. i g ; u : a l e s "IIimdera de a~. d~ reg i i sn ro die 00nd~que tema el v:a1o:r1 au . ando el.~ de una$1H!la no eabe en ' o c O O bits.IIiim.dera desi.po. E I m l de] registro ~~rnsque se usa ~.iI1I!:Ji= n um e ro s . pe f fi l ivo o: '! !negarivos.B' inar lo . ij'[1 sistema de niiIn.eros q:ue usa d o l OdIgiloo, E l l 0 '! I e l l . y ,e n e] ~cadla. digiro delmlmerolieneeI dOb i e de ~orq)!le el digito 1 1 . suderechaRil. i j ' rua urddad simple deJl cC dJg o de la s~ad'oras, es ~. ua 10ua {IqIl~.s f tm O O l !i z a n un a ~ 0un l lIO-'pulsaci6nBo : ! R f . HaG ! i ! ' r C [ l 1 . 1 lID. bit, c o m o puede' set~ bit del ~ de~, va lga retQ.Buffer. W oo ~ . d ie lamemor ia de la~Dta dbnde o oa Lm a ce n an te m :p ar an m :!l)glos d.atQs e n GIl ,carril lto h a e i a 0 desd.e su de5ti n .ofinal,Bym. Un'~ de OCllO ~ y .no -pu1sacbnes ( J : : r i t t ; ) que representan ]a ktfum;tacimn.en el o :Xl . i go de IXlmputadma.Byte ,d!e C l U e Ofden, 1M;; , d o ! > primmoo d ig ifos deW\:a ~n h.exacleclm:ai que repre:sentan eln m n e r o de p i l g i na de memor ia . en la quese, haI.Ialadlreceion,Byte. d . e ' O O J I O Glidm. [.os: e r o s d ig i t o slJga~ de una ,dire!:x:r i .6n q:ue d!an l a~ de dioha . d i reoc i6n dentro c le on a ~de mmtmia.Ougadm hmt a .d . e c ima l . Un p~ en BAS [ CqueOOfWi.e11e lo s c6d igo .s ~ e s deun~ en c6digo d ' : maquina en n ume r o sdec i I i r t a l e s l os 1n ttod. li .Ween l ame rn a r ia de laco:mp~Qdigoftlellite.. Un pr~ escritoen ~.~. 0en oualquier lenguaje id a alto my@!OOiTrO puede ser el S.ASIlC.COdi 'Q 'o ,cibjetllllfn p~ qiIleha 5id.o1 l : a d 1 u c . i d o , a oX iigo de ~ a. partir d ie 'W ID e nl .en.giuaje ~lador 0' e n cua l qu i. eor . le ngua je dea i l omve l .,~entar.~. ~d ! a dlipping thebil : ! ; : - . , .e I O e l prooe50 de t r ans fomta r tOO.OO los 1 d~un le en 0 y kld 'o s lo s: 0 ,e n 1.~ a dos. Un sist :m a de ~~ ~ ItIP I'8seID ar I ' l J tUnefOI> negat i loJ ' :OO.ParahaJ l a r e] ~ a am de unnful;J~t.oloo~ a s {e s d .e d ir , ~ ro d 'o s .~ 1 'i"n

    o y 1000.5.I D s 0 o f f i j J , ] ) e ll bIDar io de dieho . r u : I m . e r o'i las sumas 1 .Co~ de progmma. E J . r e gi5 i1 ro , ~ oo rU r t@la d i r e oo iOn a e la sigWente fu:stru.cc i6n que va :ase : r b tmoada .~. Un ~ q n E : puede~. en ]a.~ e] ~ d ! . ~ 1 l I l . d s e n ede ub~es de ~.,en ~jee~doI:. Pue d e : s o : :ms~ und e s e - I l S 8 1 I I 1 J : : 1 l a d m e n mOl, y e s 'm u y ' mil pa;rae1tCOllIl'ar 'elllOfeSecn ~ ,en 05digo d :~ y pam e>;~ los PfOQ'I;arnas d el. .R OMderuoomp~~mo. Un ~ro usaa'oen tIM.~ ~ro I ~1'1,.~ ~~ inmca alaoompuladora cu fu lt as ub i.o3c iones debe sal tai roora ~'Ja;~ ~ f un .~ '6n t . U n n W:n e:ro ~ pan i d ! e . fi it il iC ' a 1 ' u n aumca.c i6fl enla ~ dela oornputaam:a ,~!HI.~uta. 1KI. dire! :x : i6n de un . d$l,~~a la ~ ceN. Usad'o, ro loffill ,~16002, e s Wtamoda l ! i d add . e direccicmamieI i I !O~ la .~ el o p e r r m a o e s W\a c J j r , oooon de Ia~ celIO de la memoria (es deci . r , e .r !! lre ~ ).~o. ab so l u t o . ' U i n a mod ! a J i d ad de~ e n t o !:flla~ ia ~6n con1 i en . eIii diread6n del &to. 'F~i4n a~,~enro inddrec! .o.~to~. V e K dkecci~enw,aboo.tJJto.~to 1 m , p Ji c i ' t o . . U n a m O O < i l i d . . a .d " d e -~ID en l:i que se ~ende el~ Y no,es n~ e~lo.D iro cd .u :a m i 'e l1Lm ~ lh1a modaJidad de~ , e n la que e l co nr eru do de Uil'ilr eg :i stI lo ~ S : ~ilJ L a c l i r e oc i oo d a d . a J . @ T I lairutrucc.Kl.n para c a l c t i I O I ! ' I.a.~ reaiI. deldato .Diirecdonam.1e4l to :indirecto. U n a m o cl.:a lida d ded.ireodonami~o em . I a . queel oper .mdo Sf: usaoorno i : l ' l .d icador (pailltef) d~ losda ics , EIo~ p 1 J l o o e seruna ~ oen el caoode] Z O O Ul'il. p~ d ~ ~ , 'iOC I ll I. n m w la sdiirecmnes de los daWl;,~~o ~ed . i a t o . . ModaI idad da~ccionamiento en la que el diato pam una.~ va i nc lu ido 1i I . l a~Ol1 i .l! .'U e < : :c ~ o n il im i e .m : o r ela H 'I .I 'o ,,, U n a . m e d a li da dde d ir e o c io .t 1. a .m i e n t oen la q Lle ta com pu~ a do racOl i lCLl la la direcc i6 l i t de la . s igu ie n te m$ t r u c c iO I l5mR

  • 5/14/2018 C digo Maquina Para Principiantes

    49/52

    U3 d lg i to . s (los rn'imeros 0 , B I I . I} y las 1I5 ' t r , ! ISA-FJ-'Cada dig-ito de l!lII numero h e n e I6 v e e e s e lvalor del digit,o de su deree:ha.BlMEM. 1 . " , . direccion m a s alia del. RAM delusuario,bd!icador (pcintes). Una ubicaci6n dememoria (0 pou de reg is t l \os) que oontifm.@ ladhec;x::i6n de un dato'.JruIlcador de pilli i i i.. Un regiistro del CPU quec O l l L t ie n e 1 0 1 d ir oe o c iO ' l : l del Ultimo d i a : l ' O de 1 0 1 1 ,p:ila,Irui!lniiccwn., Una operado.n para ser ll'evada a.cabo P O o l la u!!lidad central de preeesado,mterprete. Un programa que traduoe lasinstrucciones en BASIC (0 cualquier otrolenguaj,e de alto mvel) al c6digo propio, de Jaeompuradcra.lNl\odum. Ponel a1go sn Ja pd l a .LenguaJe ensamhladoJ:. Una Iorma deprograma:r 111.omputadora usando c6di.gos de! .e1raS l l la m a da s l' le m 6l'1 io os q ue re rp re se :n ta n lastnstrucciones eIl ciimgo de maqulne ..L[F(). Inieiador dB' "lost in fT:irst 'out~ (Ultimo.en enlrax, pnmera en ~ir'). Ei l l 'e] me- todousado pot la computadora para almacenarinformacion en la pila . .:Memoria. de ;p imi ta l lO l . L.as ublcaelones de]R AM que ss 1JS1m para contener lainformacion qI le VO l a se r vi:sua liza da e n lapantalla.MkroJ)lOCeRdOf. El cltip que connene ,e,lCPU de L a com,putadofOi l y que neva . a cabo la smstrueciones del proqrama y connola tcdasras demas aCl iv id.a.dies dentro de IacO.mpru :ada ra .Modliilidlades ,Iile dheoclomumemto. Lasdistintas rnooe'ra:S en que pued,es decide a Lacomputadora dOnde Incontra;rlos datos P . UO itrab\aj a x en W1. p:rograma en ciXlligo demaqruM. 'NemOnicG. Iln ,a oru go d e Ie -tr as u sa de en eilenguaje ' e nsa .mb]a .c io r pan. representar unainstrucci6n en el o6digo de computadora, La .p ala bra n e -m on ioo s ign if ioa para. a yuda .r a lamemcna- yen el lenguaje, ensambladcr suenacomo. 1 8 . instruceien que reprssanta.Olbet Ver desp lazam ie l ' l , to .O pe n d.O ,r . Ira p a n e de la instrucclen 'qj1l .e113dice a 1 1 3 .eomputadora d 6 . o o 8 ' ,el'noonlr.l.r :~O:5datos con los que trabaiar,Operando. La. partE: de ]!I mstmocidn ql.IJ:! l. edice a L a comp.UJtadora 10 que debe hacer,p,agina. Una subdivision de la mem o r i a . Encasi todas las computadoras, una pagina son256 'ubica.ciones.

    Pilgina. cera. Las primeras 2S6 Ilibicacjones dela memo r i a .PUil. Una.zona de la mem.oria usada per Ia, c ompu t a do r a l para almacenar temporalmante,y don de e l U lt im .o da te que se introduce e s eJprimero en salir,Pop. RemoveT un date almacenado In la pila.RAM del woumo ..La parte del R . J U i ; o l ; domiesa almacenan los prOgr.u;'i1.aS en BASIC.l\iUllifi~~6n. l i J r u l . iMIlUcci6l:i. que le dice a laaompu tO l . t i o r a que salle a otra 1ii[l :t!8. delprograma.Ramificaci.6n oond:k:i.o:na:~. Una instrueckmQU,e le dice a la computadora que .salte a otrallite.a del progi[,lmlIa deopendiente del resuJladode una comprobaci6n.RAMTOP. La. dlreeeion mas alta del RAl \ ' l delusuano.R egistu l d .e [ sta ti l ls d . e I . procesa.ciOI" .Est8' e s eJnombre que tiene el raqistro de' band.eras del61302(IIregtsno donde cada bit 5e' Usa paragrahar una determinad.a condielon dentre dela computadora).RegU ; , u ,GS . Los :lug8!i\esdel CPU donde losJ:iytesde instrueciones, datos: y dtJr,ecoi6nes tancontenidos mient~as ]a oomputadora triiliajacoo e Uo:s.Regi5tros Utdic:e. Lo-sregistras usades en e]direccionamLe.nto indexado y tambien en el6500 Como r , eg is t ; ros de use generaJl.Sl!Jcar . Tamh i e n d , eno r n i n ado pop, consiste enremover un dato de la pila ..,Salto. UIIa . instrucekm que le dice a laoompu_tad .ora .que llaya a otra linea d @ 1p r o g ; . r E l I T l . a .Si~(I #. E ste , e s e .1 slgn ,o usa do e n 8!lgun a scom pu la do: ra s p ara se :ita 11 il" los :n Um .e fO .$hexac l e c i r nB i l . e s . i 5 n el micfoprooe.sador 6502 seusa para indica! los datos,Signl) &. Este @l5 0 11 '0 l S .i g oo usado para sefialarrnlmeros hex:a.decimilles.IH ste ma d,e vilriahles. Ubioaciones dememoria del .RAMque oontiellen informacion:!comeel estado en eada memento de laoomputadora .SisteD'!a. Qpe r aUvo . Iln grupo de p!rogramasesentcs en c

  • 5/14/2018 C digo Maquina Para Principiantes

    50/52

    Respuesta a lOiS IP'lI"obIem as.Contililuad 6nP.igma a . 8 .

    255

    mOmUJi l lO es 26 en decimaL1 1 l . H O U eG : ; J i l ~n d e - c : f i 1 1 r o a i I -l 'OUll l l1l l l i1 eli 110 en deoimal, &B2 &DE

    301 51 &01 &33.21:2H 82 322759 3 47

    3pa.gjna : 3 1Para aclaptalr el pmgTa:l!lbi3J de ]a. pigina 2'1parasoluelenes may-ores .(JiIl8' ZSSteindIfu; qu~.Bonar lai.nsttu.ooi6n wtorno "I aii.adlx las

    &02 &F7&03 &fF

    SlgWenl~S 1 i r L e a : s . Para. vel e]le~ultadousaestainetruceien: P ruN 'I' P :E E K (d:Weoct~3)+PEEK (dir&.Ccian 4) x 2;5i6 .

    R T S

    3 E , 0 0 MOO6 9 0 0 SlImiI [jDfi .a~ 0al a . c r u m u l a d E ! f ,

    Almac:e: ruI e t C O J T J t o e . n L . t odel a r u r n r u l . a . d o roI! r . la .~ i61f I .~ ,

    P agm a 3 :2E l h e : : ;: ;a : d i cima ]p a : r .8 J . el OQ:Il!l!p lem:n lo a de s de 12 e s &iF;!' i. 18 es & E : E : : 'f 9 es&f7.

    48

    aeanao de numeres aI 5 1WJ1 J 3 l , 29, JO, 31~ ' I l l l c lo l " , lHS, l7. s e , 32, 4 t >AL1 l ! (miidad. klgtico-miitrntetice). n, l~ . 46e r c r u v . a , de 1liru:a1iZa.ei.On, 9.l'.llOlI.c~, i ; a ; , i4,~.3rua:r i . 3 ,2 :4b~ar 81.RAlIrI'OP, 2lIl Md=, 3 ~ ,3$, : . l~, 36 ,~6banders. dE! aearreo, H. 15, ll. ~ 3 I l i . . 31,i36, 46!b~.eJ;~ de signo, !4\$(;, ~1lASIC, ~, ]2, i ' 1 J , ~Qi l i r t a ! l 1 o - ,~,~.s.