You are on page 1of 27

T

r \ ' r ' r / . \ z \ Y /
II\TROD
TJCCIOI\
A I,A PROGITAMAC
I OhI
DF] I,OS
MICROCONTROI,ADC)R}iS
MOTO RO I,A
-
['RI] ES CAI-, H
' rtte:
estar.d
[.rrrri l i ari zarl o con el repert6rl O,i de;' i ^rl sl ri l cci ones,
l os
nro<l os rl e rl i rt , r: r' i onami ent o
ut i l i i ad0$ y el est adQ
rl t ' l rt ' gi sl . l l a' deras en un' mome6[ s
{ei ermi rrarkr,
l .rs cu.rl .s t rnf,rrnan el grupg_ d* fuhdi ones ya r"ul
cl e t i 1; , ari t nret i co, l 6gi co, -cOddi ci , onal ,
de{ sal t oi i
rj e nrani pr-rl aci tl n de bi ts o:' ri i gi stros, entre: oti asi
cl ue l r ar : en
l l ar t e
f undament af ' en
el pr oceso dQ
l )rogr, rn. l t
i orr y rl rrt ' l rri rrdarr al est udi ant e una vi si 6rf
cl e t ' rl . l , 11rr. se
; ruerl e
real i zar en el mundo cl e l , d
t t - t i t . r o<: <l t t t nr l . r r l or t ' s [ ' t r eest ' . t l e. e
E
E
ft-lrl!tlei.tl*+""*.l,7tearr-,:*;1.-:9:+?:!'4+1!)/as4t8..itlt{:t^?fi+-.il#.1*4<-e;it{,.
*
E

[ ) ar . r i ni t . i . r r el est r r r l i <l r l el pr esenr e c. r l r i t ul o, es


g
net - t ' s. r r i o r l t t c el l cr t r l r
l ) ( ) sc( r
< or r ot i t t ' t i t , t - t l os
4
sol ) r . t ' l . r s <: ar at t er f sl i r as l r asi <. . r s r l e l a t . r nr i l i a r l e
*
r ni r r r cont r ol ar kr r es t l ( . 01t t . r r est Lr r l i o y t onr el l t os
f r
bi si r os r l e l ur r t l . r nt er r l os <kr
Pr t l gr ; r nr . r ci r i n,
r on el
I
f i n r l . r l ue
l l r r * t l ( r
( ' ( ) r r l ) r . r r r kr r
l , s t ' , nt : e1l t , s y s. r
E
t l t : i r t st r t r t t i t ) n( ' s
( ' xl l l i t . r r l os. r
cont i l r u. r <. i t i r r .
i
!
E
!
B
,
;
I
!
3
&
4
4
I

t
(
I
:
I
!
i
I
5
t
6
I
Para i ni ci ar l a t ravesf er en el carnpo rl c l a pr()granrarri ri rr
de mi crul cont rcl l acl ores r)s nect ' s. rl i o r. ()l l l prcl t dcr st r
f i l osof i a t l e t r abaj o, asi c( ) nl ( ) sl r v( ) ci r [ r r r l t t r - i ' , t 1t r t ,
par a l t uest r cl ct t so se t r ' ; r t a r l cl set r l t ' i r r st r r r r . t , i ol l t , s,
l as cual es en el pr esent e caPi t t r l o sc vi sr r . r l i zar . i t r r t , r r
ut r cuacl r ( ) r esunt el t , pcr o
l r ocl r i r r r
scr c: ; t ut l i r l t l . t s t ' r r
det al l e en el apendi ce [ ] al f i nal t l el l i br o, y f i n. r l nr t , nt t ,
l os mor l os de cl i r ccci onanr i cr r t o r r t i l i zar l os
[ r ur . r
l . r
t r at r sf er enci a, mt r ni pr ul . r ci or r y
[ ) r ( ) ( ' csar r r i cr
r t o r l t , l os
regi st ros que hacen part e cl c rrrr pr' ()gr' (ul ra o cl es. rl rol l o
en part i cul ar.
UsO GENERAT
.
- { " r - i ' \ - , . d L - y . . ' ; \ .
. ,
Ex i s t e n u n o s r e ' g i s t r o s r l L r r ' s ( , c l t c L r e n t r a r r
ccl nst aut ement e i nt eract t r; rnrl o t . on el rni cr. ocorrt r. o-
l a d o r , e f e c t u a n d o t a r r e . r s r l e ; r c L r r ' r - ( 1 ( ) c ( ) n l . r s
i t rst rucci ol l es qLt c sc Vc' rl dn real i zancl cl . Urro cl e l os
cl et al l es a t ener en cuent a es rl Ll c a pesi t r cl c que (. st os
l rurnooucctoN
Rrorsrnos
46
I t r nu
( - nnr os
Vr sr ; n Fr nnr r nn
regi stros l raccrr partc r:onstante cl e l a progranl aci 6n cl e rni crocontrol acl ores, son regi stros propi os c i nternos
cl e l a C-l ' U y p()r tal raz<' l rr l r() se encuentran mapeacl os en l a mernori a.
I i st os r cgi st r os son:
A{ l [J M l .] Ln D( ) I{ (A): Es urr regi stro cl e U bi ts de prop6si to gerreral usacl o en l as operaci ones ari tm6ti cas y
l (rgi cas. EI acunrul atl or comunrnente se uti l i za para ahnacenar operandos, resul tados de cSl cul os ari tm6ti cos,
v tl c nrani pr.rl aci (rn dc cl atos, compl erment6ndose con el hecho de ser di rectatnente accesi bl e a l a CPU para
opcr aci ones l r o a r i t t l 6t i cas.
(l rando
se al ttti tt-(' nan cl atos num6ri cos sc debe tencr en cuenta l a notaci (xr de l a base a uti l i zar para
i nt r ocl uci r l as r : ; r t r l i cl ar l es.
$: . ' . r r r t i dnt l l t t ' r ndt ' ci r t r a I
o, i r :
r ' . r nt i dad [ r i nar i i r
| : r ' ; r t t t i t l ad deci t t r al
r{[Grfi l ' r(() f rul )|CIr (X):
Il l regi stt"o i nc' l i r-c sc cmpl ca para l os mocl os de di recci onami ento i ndexados, o bi en puecl e usarse corno un
acunl ul acl or at r xi l i ar ; est 6 cr l r r st i t t r i do por 8 bi t s, val or que puede ser car gacl o di r ect ament e' o desci e una
posi ci i rrr rl e l rrernori a. Irn l as i nstrucci ones i ncl exadas, el regi strcl X provee un val or de B bi ts que es sumado
n l a t l i r ec' r ' i ( r r r basr ' l r r ovi st a por l a i nst r ucci 6l l par a cr ear una di r ecci 6n af ect i va. El val or pr ovi st o por l a
i r r st r t t t t : i t i l )
1' 1111' . 1. '
st - r cl t : 0, I o 2 byt es cl e l ar go.
r i l 1( ; f s' l ' t { ( ) i NI ) l c] i ( l l : X)
Irstt' regi stnr puetl e scr vi sto c()mo utro sol cl formado por 16 bi ts o corno dos regi stros de 8 tri ts i ndependi errtes,
tl y X (rcgi stro expl i caci o antes). I' l ste regi stro se uti l i za en l os modos cl e cl i recci onami ento i rrdexacl os y si rve
c()nro un apuntacl or, si cncl o capaz,de cubri r toc-l o el rrrapa cl e memori a con 16 bi ts. Adem6s, el regi stro X puede
scr uti l i zacl o c-' ()nr() Lnl arcunrul acl or secuncl ari o, ya cl ue exi sten cl i versas i nstrucci ones cl uc l o empl ean como
f uer r t c v/ o ck: st i t r o, i gual r l t r c A. Est o es t i t i l par a cl i smi nui r l a car ga cl e t r abaj o del r egi st r o A, c{e modo que
sc rcqrti t' ra nl (' l l os trtovi rni ctrt<l dc cl ati r3entre nrernori a y A, agi l i zandcl asi l a ej ecuci (rrr cl e l a apl i caci 6n.
[ ' l
l N' l ' l i l { ( )
I ) 11 I ' l l , n ( 5i l } ) : ( S/ zr ck Poi nt er ) . Es un r egi st r c cl e l ( r t r i t s cl uc cont i ene l a t l i r ecci ( r n c] e l a
l r osi t ' i r i t r
t l i spot t i l r l t ' ( ' l ' l el st ack. El sf nck
l t oi r t t e, r
puede f unci onar cor no un r egi st r c t l e i ncl exadt ) par a accecl er
a t l ; r t os cn cl sl r t r ' / r .
tJna pi l a (sl nt:k\ cs ti na estructura cl e ci atos cl e ti po LIIIO (cl el i ngl 6s Last In Fi rst Out) c-l ue perrni te al rnacenar
y rccupcrar cl atos tncdi atrtc operaci ones push (api l ar)
f
poyt (cl esapi l ar). Estas opreraci ones se real i zan sobre
r . ur I t r i co
( ' xt r r ) nl o
de l a pi l a I l ar nado ci ma.
I' or atral <l gi a cotr obj etos coti cl i anos, una operaci (rr^t"Tl ush" ecl ui val cl ri a a col ocar un pl ato sobre urra pi l a
tl r: prf ;rtos, y un
"
1trt1t"
a reti rarkl . Il sto cl ui ere deci r que con una operaci (rn
' l tol r'
se obtendr6 el el emento que se
ar i acl i i r l a r i l l i t t t a vcz cn l a pi l a, es dcci r , el cl ue se encuent r e en l a par t e super i or cl e l a pi l a; al mi smo t i empo
t l t r t ' l o t . l i t t t i l t a t l r ' l a pi l a.
Irtt t1t' ttt' t' ;rl , :i t'
1' rttc' tl e
dcc:i r rl ttt' :
Ar rnovrc;n
-
FRrrsr:nl r
I t ' t Lt t cl t l ucc- t t i N
n r n
pRr x; RAMA(
t oN t ) E t ( ) s Mr ( - R( ) ( . ( ) Nr ROl
Ar x) RI s M( ) r ( ) R( ) r A- f r { EEs( . At f
. t /
un obj eto de l a cl ase stnck es una pi l a, l a cual permi te al rnace.ar
obj etos y rueg. rec-Lr[)r]r..l rr.s
.' er cl rcr*'
i nverso en que se' i nsertaron,
es deci r, si empre
se rercupera
el ul ti mo el ementcl
i ' sert.cl ' .
I)err, i nsertar rr.
cl bj eto a l a pi l a se uti l i za l a i nstrucci o' Push,
y pu.u reti rarl o
se uti l i za l a i nstrucci o'
I).' .
CoNT' ADoR
DIi PROCII{AMA
(PC)'
Es un regi stro cl e 16 bi ts cl trc' c.nti ene
I. cl i recci ti . c{e ra si gui e.te
i rrstrucci ol l
u operaci 6n
a procesar'
En otras pal abras;e
podri a cl eci r.1r"
"l
regi st. cr.tacl .r
rl e pr*rgrarna
(PC) es usad. por l a cPU para u' percl er .l e vl sta l a cl i recci ti ^
cl e l a pr6xi ' ra i .strucci or-r
ar ej er.ut;rr.. AI resetatr
la cPU (er-rcenderla)'
el contaclor
de programa
(PC) es cargado co. el contenicl.
cre .lr par d.
1-r.sici.' es
crc
memoria especificas
denclminadas
vect.r cle reset. La, ,rperaciones
clel vec-trlr cle reset c.' tie' e.
ler tlireccion
clonde esta almacenacla
la l6gica interna
de la cPU incrementar
paulatiname' te
el val.r. clel crnta..r rle
Programa'
de modo tal tlue siempre
apunte a la pr6xima
instrucci6n
a ejectrtar.
En muchas de l as vari atrtes
cl e l a fami l a l l c08, al gunos cl e l os bi ts superi ' res
cl el crntatl .r tl e progra' rar
no son usaclos
y est6n siempre
en cero' se debe te.er e. cuenta clue el nu' re^l cle bits utiliz.clos
e, ell
contador
c1e progratna
coincide
con el nfimero
de lfr-reas cle clireccio' i' rplerne.tac-las
e. el siste' ra r.,l
mi crocontrol ador.
ITEGISTI(O
DE ISANDERAS
(CCR).
Es un regi stro cl e 8 bi ts cl ue cor-rri er-re cr bi t rre e' mascerracr,
ge.eral de i.terrupciones
y 5 bancleras
de estactr, las cuales indican ciertas co^dicio.c,s
.rigi.aclas
por la
instrucci6n
previamente
ejecutacla.
El registro
de ccltligo cle condicion (o registro de ba.deras) corrtiene una
rnascara de interrupcion
y cuatro inclicaclores
cle estacl. clue reflejan el resultado
cle oper^ci..es
aritrneticas
y de otro tipo de la CPU' Las cinco bancleras
sotr serni-acarreo
(Fl) mascara cle i.terrupciti.
(l), .egativ. (N),
cero (Z) y acarreo/prestamo
(C)"
Este regi str.
conti ene
un coni unto
de ba' cl eras
que cl an i nformaci on
sobre el rcsul tarl .
c-l e l a ul ti ma
operaci on ej ecutacl a'
La mayori a de l as i nstrucci ones
cl e sal to uti l i zan estas bancl e' ras corl () c..cl i ci 6.. Aqtrf
se erl cuentra
tambi en el habi l i tacl or
gl obal de i nterrupci ones.
Lcl s bi ts (l ue
con-rpo.L' n
este regi str.. scl n:
V: f t ANDERA
DE I TEBOSAMI ENTO
Esta ba.cl era es el equi val e.te
tl c c para operaci <l nes
c.n si gno. se acti va si el r.sul tacl . sal c rl el ra.g. cl e -r28
a' 127 ' Este bi t puecl e ser m.cl i fi carcl o
tarnbi en
p.r i nstrucci .nes
rr. ari tm6ti cas.
La CPU col tl ca esta banci era en 1 cuancl o
al efectuar el cornpl ernento
a cftrs ocurr.. u. rel r' s.r' i e.t..
[: l tebosami ento
0: No rebclsamientcr
H: I}ANDERA
DE MEDIO
CARITY
Inclica si existi6 ' . clesb.rcla' rier-rto
en los pri' re^rs
c para i nstrucci ones
arri tmeti cas,
pero consi crerancl o
Al t rrt i l { t , ; r
-
[ . Rt . t sr , { |
4 bi t s del resul t adr.
I ru' ci . ' a cl e l a ' ri srrri r ' )arl el . i -l (l l . rc
sci l o l cl s pri mcnt s
4 bi t s r{el resul t arl o.
Escr i bi r
. , 1 ( )
/ i ( )
f r i nu Cnnl os Vesr ; n Ft nBr r Ra
La CI' LJ i :ol oc' er csto bi t <' rr I r' uAncl o ocurrc un carry erl tre kl s bi ts 3 y 4 cl urante ul ta sul na c()n o si n carry;
cl rrrecl i o r' i rrr' -y
(' s
rc(l ucri tl o ctrarrcl o sc uti l i za coc' l i fi caci (rn en IICD.
l :
( ' ar r y
nr l r c l <l s l r i t s 3 y 4
0: No car r y r . nt r e l os bi t s 3 y 4
I : h4A$( " A l i r \ I ) 11 l N' l ' l i Rl { Ul ' CI 6N
Ii stt: bi t es el l rarl ri l i l ;rdor gl obal cl e i rrterrupci ones. Si se errcuerrtra en 1, todas l as i nterrupci orres (exceptuando
l as no enr l r er sc. r r abl es) scr r i r l i r r l r i bi cl as y pennal r ecer 6n penc{i ent es hast a que est e bi t sea col ocado en 0. Est e
l r abi l i t at l ot ' sc t r t or l i l i <. ' a el - t l er r gt r aj e C ccl t r l as i nst r ucci or r es "Enat r l el nt er r upr t s"
y "l ) i sabl el nt er r upt s".
Cl tr:rttcl tt csl t' l ri t se col ot' et err 1 l (rgi co tocl as l as i rrterrupci ones son cl eshatri l i tadas, y se habi l i tan nuevamente
crratrcl o cstc bi t sc r:rtl oc;r errr 0 l r' rgi co. Cuancl o ocurrl cual qui er i nterrupci 6n, este bi t se col oca automdti camente
crt I l ti gi co. [)csprtt(:s cl c cl tte erste bi t es l i mpi acl o, l a i nterrupci (rn que es aterrdi da es l a que posea mayor
pr i or i dacl .
Il l bi t I tro cs uni t l ratrcl cra cl e cstacl o, es ul "l bi t de mSscara cl e i nterrupci (rn que desabi l i ta todas l as fuentes de
i rttt' rru1' rci ri n cnl l ' rascarabl ers cuancl o el bi t I est.l en uno: de l o ccl ntrari o,l as i nterrupci ones estardn habi l i tadas
cuarttl o t' stt' [ri l csl .1 (' n
cer' ().
(]uancl o
ocurre cual qui er i nterrupci 6n, el bi t I es autom6ti camente forzado a uno
Irrt' ,r' ,o rl e hal rct' sal vacl o l os rcgi str()s en l a pi l a, pero antes es buscado el vector de i rrterrupci 6n.
Si ocrtrn' tttta i t-ttt' t' rupci (rn i nterna rni entras el bi t I estd en uno, l a i nterrupci 6n es al macenada y procesada
Itrt:go cl er cl tte t' l bi t I se porrga cn cero; de esta l nane' 1"a, no se perderd una i nterrupci ti n IRQ que se presente
cuando el bi t t ' st . 1 t ' n t t t r o.
( - l uat r r - l o
se ha at encl i cl o una i r r t er r upci 6n, l a i nst r ucci ( l r r r et or no cl esde una
i trtcrrupc-i ri n (l {' l ' l ) pl ' ()v()cari cl ue l os regi stros rL-cuperel l sus val ores previ os.
Ncl t' nri l l tnt' ntt' , el l ri t I pertl anecerfa en cero l uego cl e cl ue fuese ej ecutada l a i nstrucci 6n I{]' l ; si n embargo,
Itrcgo rl t: l ar ocurrcl l ci a cl c i :ual qui er reset, el tri t I estard en uno y s6l o podrd l l ev6rsel o a cero por medi o de
r r r r a i nst r ur cci ( l n.
N:
l ' i ANI ) l i l { A I ) l i VAL( ) R NI l GATI V( )
Irstat l rattrl erar t' t.fl t' i a t' l erstarl o t-l el bi t de si gno (bi t 7) del resul tado anteri or. Al i gual que l a bandera cl e cero,
est o sc cxt i el r cl c; r <l t r o t i po r l e i r r st r ucci ones.
[' ]ste bi t st: r:ol or:n t' n I l (rgi c,, <.,run.l ,r' el resul tacl o c1e una operaci 6n ari tm6ti ca es negati va.
I : l {r ' st r l l ar l o ncgat i vo
0: l {t . sr r l t ; r do posi t i vo
/ . l ' , ANI ) l r l t A |
) l r ( . l l j l { ( )
Irstc bi t sc col ot' i t
(' l ' t
I l (rgi co cual rcl o el resul tacl o cl e una operaci 6n ari trn6ti ca o l (l gi ca d6 c6rno resul tado
CIl l {O. Il sta batrtl ctra tttl s(rl o es modi fi cacl a p()r i nstrucci ones ari trn6ti cas, por l o que se acti var5 si empre que
t:l val or cl erl ru.gi stro tl (. cl csti no cl c l a i nstrucci 6l t sea i gual a 0.
I : I {r ' sr r l t ar l t ) ( ' cr ( )
0: I {cst r l t acl t r t r r r r : t : r o
, i i rr. . ! i ' l
irr.i..,r;fi.
;i$i,:i
{,j,-i"{:
;ii
ji:;
l Nt Hoot t r . r t oN A t A
pR( x; RAMA(
l 6N r ) t t os Mr t R( ) ( . ( ) NI R( ) I . AD( ) RES
M( ) r ( ) R( ) LA- I - REESC. AI E
.4
()
C: BANDETTA DE CARRY
En i nstrucci ones ari trneti cas si n si gno, esta bandera i ndi ca si ocurri 6 un cl esbordal ri errte gn
t:l rt:sul tat{.;, r,s
deci r, si sal i o cl el rangtl de 0 a 255. I-as i nstrucci ones de corri mi ento y rotaci 6n puecl en tanrbi en 6acer. trse tl t:
este bit.
Este bi t se col oca en 1 l ogi co cuando el resul tacl o de una operaci 6n ari tmeti ca procl trc-t:
(l arrry
rl espu0s del
bi t7. El bi t C se usa para i ndi car si ha habi do o no acarreo cl e una suma o pedi do cl e prrcsti rnr() c()pr() resql tard1;
de una resta. Las instrucciones de ciesplazamiento y rotaci6n operan sobre y at traves rlel bit C para facilitar
operaciones de despiazamiento de mriltiples bytes. El bit C es afectado adern6s clurarrte las ilstrucciopes clc
eval uaci 6n de bi t y de bi furcaci 6n.
1: Car r y
0: No carry
En los capitulos posteriores se har6n explicaciones en detalle
de
cada uncl c{e los registnrs 11e trs6
1;c11grul
de acuerdo con los requerimientos de prclgramacitirr que haya en un momeltcl claclg.
En todo
Proceso
de programaci6n se requiere realizar constantemente operaciones, asigntrc.iol rle vulsres n
registros y extraer valores existentes en otrcls registros para transferirlos y/o procesarlos c()n otr1ls tlat6s; estt'
Proceso
de extraccion y adjudicaci6n se conoce como DIRECCIONAMIENTO.
Una de l as propi edacl es que bri ndan actual me' nte l os mi croccl ntrol adores consi ste e1 l a Sabi l i cl ad para
accecl er a l a memori a; aprovechacl o tal cual i dad,l os modos de di recci onami entcl exi sterntgs e1 11(l l ,U provecn
esta capaci dad. Exi ste una gran vari edad de formas de di recci onar l os datos, l as cual es se cl 4si fi c.l n scgun l a
forma en que una instrucci6n obter-rdrd el valclr requerido para su ejecuci6n. Debidcl a lcls clifereltc' s nrgtlss rlg
direccionamiento, una instrucci6n puede acceder al operando en una cle las cliversas nlillrerars. Carla virri4ntt,
del modo de dire-ccionamientcl
de una instruccion debe tener un irnico c6ctigo cle operarcitjn de instrur' ci6rr.
Los microcontroladores Freescale usan seis modos de direccionamiento, que son:
O Inherente
O Inmedi ato
O Extenc-liclo
O Directcr
O i ndexado
sin desplazarniento
con desplazamiento de B bits
con desplazamiento de 16 bits
G relativo
En los microcclntroladores pequeflos como, por ejemplo, en la familia HC08, todos krs registros rrtilizaclos
en el programa para el uso de variables y los registros de entracla/salida no recluieren iirea atciicigrral cle
At rnt-rvrr;R
-
Fnri sc' nr r
Mooos DE DtREcctoNArvl l ENTo
5o
f unr. r
(
nnros Vrsr; n FrHnr, rnn
l 1-l cl l l ori a, t ocl os el l os ser encucl rt rat r f unci onat rcf t r en el rango de memori a quc va ci escl e l a di recci 6rr
$0000 a
l a cl i recci t i rr $(X)[ rl ; , ct r cl onc] c cl nrt t do de di recci onami ent o m6s ut i l i zado es el cl i recci orranri ent o di rect o.
A cont i t ruaci i rt r sc t l escri bet t cl t cl et al l e l as di f ererrt es f ornras cl e di recci onami ent o exi st ent es, acorl paf l acl as
cl c t t l r: r cl escri pci (rl t get neral y al gunos ej empkl s que l e ayucl ardl r al l ect or a conrprencl er nrucf uo mej gr l as
bot rt l acl t t s y f ort t ras cl r. uso prt -sent es e. n cada rnocl o de di recci onami ent o.
Ant cs cl c cnt rar en cl ct al l c, hoy rrcccsi dad cl c expl i car ci ert os concept os sot rre el uso acl ecuado c1el si st erna
l rut l t i l ri c-o et t cl qt rt ' s<l c-l c' sca cxprcsar una cant i cl ad en un mornort o dado. I l l espaci <l cn bl anco o ni ngun si nr[ rol 9,
o ct t l t ni nancl t l l a cxpr csi t i n con l a l et t r a T, i ndi ca cl uc el numer o cs dcci mal . Est e numcr 6 scr d t r asl ac- l ar - l o a un
r r al or bi t r ar i o ant cs r l c ser al nr acenado er r r nemor i a par a ser usacl <) por l a CI r U"
I i l si rnbol o $ prt ' cecl i erl cl cl a ul t t rumero i ndi ca cl ue el nf mero es hexacl eci mal ; por ej ernpl o,
$0F es l a
ref rr(l sel l t aci (rl r e' t r l rt l xacl e' ci t nal cl el nt t me' ro 15 cn cl eci mal cl l rase 10. El si nrbcl l o # i nci i ca que cl val 11r que l cr
acol l pai i a es Ll l "l val or t -ot rst at t t e. Se ci ebe t ener et r cuet rt a cl ue exi st e una gran vari edacl cl e si mbol os y expresi ones
cl uc
1-' rueden
ut i l i zarrse si gui c' ncl t l al cardct er #. Debi cl cl a que ncl t odos l cl s ccl rnpi l acl cl res cl e el sambl ador usan
l as l l l i snt ; rs t ' cgl ars t l e si t rt axi s ni l cl s t t t i snros caract eres especi al es, es necersari o ref eri rse a l a cl ocurnent aci ci n
t l t ' l ct l sat rr[ r[ ; rt l t l r ct r part i cul ar rl ue se est 6 ut i l i zancl o el ] u11 mgcl el o especi f i cg.
A c: ot rt i t rt t aci (rt r st : i l ust ra un cuacl ro resul Tren que ayudard al l ect cl r a cont prencl er nrej or l a f orrna cl e
r' (' | rt ' 95, 1' 111ar una cant i t Jacl err
(' l
si st cma num6ri co cl eseacl o.
t Der;i rnal
$ l Jexar l ei : i mal
@ Ot - l al
o/
/o [ Ji nar i o
A1l (rstrofe Car; i ct err ASCI I
|
' l ' nt rl , n
3r. I
L* * r +. ?* * r r *
* . , r r
l;
jll:,,
:' :,,',::,i' ! :,';,,:: I,::m
e n I e u t i l i z a c ! o s e n
\ , l or l o dc r l i r r : r ' r ' i ( f n( r nl i er r t o
i nnr ecl i at o
I -' t r t ' l l noci t -r cJe cl i rt l ct : i t l nant i c' t rt <t i nt nccl i at o, cl operancl o cst 6 c<l nt eni cl o en el byt c i rrrnecJi at 6 si gui ent e al
ct i cl i gt l t l c t l pcrat ' i (rrr. l l st el t noci t l sc usa cuando se requi ere un val or o const ant e. c11ngci cl 61 e1 cl mornent o de
cscr i bi r cl pr ogr al l l a y ( l t l e
cut r t pr l e cot r el hecho cl e cl ue no car nbi ar 6 cl ur ant e l a ej ecuci ( r 1 r l el pr ogr ama. Est a
cs t l l l i l i l t st rt t cci (rl r c' l t ' t l os l ryt es, ut t () para el c(rcl i go cl e operaci (l n y ot rcl para el byt e cl e cl at g i l l rec] i at 9.
l t r r l l r as
l l al al l r as,
cl ol l c' r ancl o es Lur dat o const anl e al cl r r c ser l er anl eponc. el
si r nl r ol o #
FRrrscer r
l Nt Ht l uuc ( l l oN A LA t ' R( x , t t AMA( r ( ) N t ) t t ( ) s Mr ( R( x ( ) Nr R( ) t
Ar x ) Rf s , \ l ( ) r ( ) R( ) t A- r : Rbt s (
At r
t i 1
Ej empl os
"&a4@46@tr**"
LDA #$0F
;A=$gF
Expl i caci on
-Fr#F\MfF\#Fii6_
Los pasos (l ue
se ej et--utan en el tnotnento tl e eval uar l a anteri or i nstrucci on son l .s si g,i errtes:
G La cl ' U al macena el nuevo val or t' n el regi stro acumul acl or (A); en este caso, sc ul macenar el val or cl e
0l l en hexardeci nral
o [5 en cl eci nral y se aj usta l as bancl eras recl ueri tl as segun Ia .pcraci dr' .
t , DX #101-
; X=10
Explicacion
w
Los pasos que se cjectrtan en el rnontento
de evaluar la anterior instrucciti. s' ' los siguie.tes:
C La CPU al macena el nuevo val or en el regi stro i ncl i ce (X); en este caso se al nracentr el val or 10 y se aj usta
l as banderas requeri das
segun l a operaci on.
A conti nuaci on
se muestra el l i stado de i nstrucci ones
que permi ten l a ej ecuci 6n cl el rl i recci ona' ri e.t.
i nmerl i ato.
ffir.irrffiil
Sut na con acarre()
ADC
Sunt a si n ac-arre' o
AI]t)
Funci i rn l 6gi ca ANt )
AND
f . ornp. rrar el a<_unrul acl or
<: on l nel nori a (--MP
(-ornparar
el regi st ro i rri l i ce r: on rnel nori a (_l )x
Ft nr r : i on OR exr l t r si va
EOR
(-argar
el acunrul ador
desde memori a
I.DA
Cargar el regi st rcl i rrdi ce cl escl e rnent ori a
LDX
Funt : i t i n OR
ORA
Resta con acarreo
SIX-
Rest a si n acarreo
SUI ]
|
' l' nur,n
' J.2
t t r t t i E ! r f l . t t t
I nst rucci ones con modo de cl i recci . nanri ent .
i nnrecl i at .
At t Ro/ vrt <; e
-
FHt Lrt , ct I
5' )
ct-l{A
' '
: irj: :.i..! rrn,:ii!,i..' i .q::r{llrtl,r4
i.!1
Ar rnourcn
-
Fnrrscrrlr
l unru Cnnu;s Vrsr;r FrRnrrRl
Modn de di r ccci onar ni ent o i nher ent e
Il ste rnocl o cl e cl i rccci onami cntcl se caracteri za porque toda l a i nformaci 6n requeri da para l a operaci 6n ya
e' s i rnpl i ci tatnente conoci da por l a CPU y no es necesari o uti l i zar val ores adi ci onal es para su ej ecuci 6n. En
r:aso cl e requeri rst' al g(rtr operando en parti cul ar, son s6l o l os regi stros cl e l a CPU o bi en val ores de datos
al nr acer r ados cn l a pi l a.
l i i cr n pl os
I NCn ; l r r cr cr r r ent ar el ac- ur nul ador
I i xpl i caci 6r r
@.
Los pasos qLlt se eje' ctttan en el tnomento de evaluar la anterior instrucci6n son los siguientes:
G I.a CIT' U l ce el val or que se encuentra al macenado en el regi stro Acumul ador.
C l . a CI t U l <' sr ul r a uno al val cl r act ual del acur nul acl or .
C l , a CI ' [ , J al t nact t na el t r uevo val or en el acumul ador y aj ust a l as bancl er as r equer i cl as segt i n l a
ope.raci ri n.
;
l krrrar el Acumul ador
l rxp I i ca ci o n
-*\ff..l@c.ift#F
I-os pasos que s(' cj t:cutan en el momento de eval uar l a anteri or i nstrucci 6n son l os si gui entes:
G [,a CI' U al trtacerna el val or (00h) err el regi stro acumul ador (A), borrando toda i nformaci 6n que
se cllcol' ltrarar almacenada previamente en este registro y ajusta las banderas requeridas segrin la
t I [ r t r f i l f i t i t ' ' '
A cottti l rttaci <i tr se. l i statr l as i nstrucci ones que pueden usar el modo de di recci onami ento i nherente.
l )esl t l azarni ent o ari t m6t i co a l a i zqui erda NSLA, ASLX
l )csl t l azami ent o ari t m6t i r: o a l a derecha ASRA, ASRX
l ] orrar bi t cl e cari
l Jorrar ] l i t de m6scara de i nt errupci 6n
I i r npi ar
CLRA, CLRX
( . omJr l enr enl ar
COMA, COMX
[ )r: r: remcnt ar
DECA. DECX
l ncr ement ar
I NCA, I NCX
[ )esl t l azami ent o ki gi c-o a l a i zqui erda LSLA, LSLX
l ur Rooucct oN A LA
pRc) ( t Rnvnc. t r i N
I ) E r ( ) s Mr ( ' R( x. ( ) Nr R( ) r Ar x) Rt s M( r r ( ) R( ) r A- FRt t scAr F r ' l
. ' ). )
Despl azarni ent o l 6gi co a l a derecha LSRA, LSRX
Mul t i pl i car
MUL
Negar
NECA, NECX
No operac-i t i n
NOl )
Rot ar a l a i zqui erda a l raves del t : arry ROLA, ROI X
Rot ar a l a derecha a t rav6s del carrv RORA, ITORX
Reset ear l a pi l a
RSP
Ret or no r l e i nt er r upci or r
RTI
Retorno cl e subruti na RI S
Col ocar el bi t de carry en 1 SEC
Col ocar el bi t de m6scara de i nterrupci 6n en 1 SEI
Habi l i tar l RQ, detener el osci l ador STOP
Interrupci 6n por software SWI
Transf eri r el acumul adrl r al regi st ro X TAX
Probar qure no sea negat i vo o cero TSTA, TSTX
-fransferi r
el regi stro X al acumul acl or I XA
I
Tnul n 3.S
i f f t t r i ? a r
lnstrucciones con
+ * r
modo tl e di recci ctn ami enkt i nhere ntt:.
de direccionamiento extendiclo
los modos de direccionamientcl mds importantes clentro cle la programacion de los rrrir' rocorrtrol.rclores
de direcciclnatniento extendiclcl, que consiste en extraer la infclrmacion almacenarla en trrra tlirt' 6triorr
i a que
Para
representarl a requi ere 2 bytes (16 bi ts), y se escri be su val or segui do tl e l a i nstrucci <i n.
todo se emplea para hacer referencia a cualquier posici6n de memoria dentro clc.l espacio cle memoria clel
;incluyendo
direcciones de puertos de entrada/salic1a, rlirecciones de la nremoria I{AM, li()M, til' lloM,
iXn
general, se podria decir clue esta forma cie clireccionamiento se encuentra constituiel.l p()r tres lrytes,
byte para la instrucci6n a utilizar y otros dos para la direcci6n ciel operarrcftr. A corrtinuacitin se
LUn
eiemplo que explica con mayor cletalle este modo especial cle direccionamiento:
lo
mos que en la posici6rr cle memoria
$0367 se encuentra almacenaclo cl vaklr $[)l' ;, crrtonr]es:
A $0367 ;
A=$0F
,
es deci r el val or OFh (15 en base 10)
teri or i nstrucci ti n extrae el val or que se encuentra al macenacl o en l a cl i recci on extcnrl i da 0367h y l o
en el regi stro Acumul acl or (A).
-
Fnrrscnl r
i ;4
Jul rl C,l nros Vrscn Frnnerna
I i xpl i caci f i n
cq;fF*.+fx*@.*,,
C La CI' U l ce l a i nstrucci 6n
ext er r di do.
C La Cl ru l cc cl val or
$03, el
pcso de l a rJi rccci 6n a l eer.
C La CPU l ee el val or
$67, el
peso de l a di recci (rn a l eer.
cual es i nterpretacl o como el
cual es i trterpretado
corno el
val or correspol l di ente a l os 8 bi ts de mayor
val or correspondi ente
a l os B cle menos
dos val ores previ amente l ei dos, esta
el val or al macenado en l a posi ci 6n de
que si gni fi ca cargar el acumul ador usando el rnocl o de di recci onami ento
c La cl t' u anna l a di recci 6n extendi cl a cornprl eta
$0367 con l os
cl i rccci (l n es col ocacJa err el bus de cl i recci ones y l a CpU l eer6
nrenrori a
$0367 arl l nacen6r-rdol o
en el regi stro Acumul ador (A).
C En el Acutnul acl or cl uecl arS al tnacenacl o el val or OFh para el caso cl el ej empl o.
A cotrti truaci <i tr stl i l ustra l a tabl a de i nstrucci ones
que permi ten el uso cl el rnor-l o de cl i recci onami ento
cxt cnc' l i cl o.
l Vl ocl o cl c t l i r ccci ol l anl i ent o
di r ect o
Utro cj e l os mocj <l s de di recci onami ento
m6s uti l i zados en l a programaci 6n de mi crocontrol adores
es el modo
cl e cl i recci onanri ento di recto;6ste es muy si mi l ar al modcl cl e di recci onami ento
extendi do, con l a cl i ferenci a de
t
' l ' n
l i l ,n 3.4
* * + * * A F t + ' *
* t J
Instrut ciolr..s (--oll
rnorlo cle clireccionantiento
extenclirio
Surna con act arreo
) Lj ma st n acar r e( )
Fr r nci r i n l i r gi ca ANI )
(-omparar
cl ac: umul acl <l r con mern<t ri a
(-omparar
el regi st ro l ndi ce con memori a
[ un<' i r i n OR excl Lr si va
Sal t ar
Sal t ar a sr r l t r ut i na
(-argar
r: l aci rmul ackl r cl esde mernori a
(.argar
el regi stro l ndi ce desrl e memori a
Funr-i t ' t n Ol l
Rest a r; on acarreo
Rest a si n ac-arreo
Ar r,l ovrcn
-
Fnrrsr.al r
l Nt t t t _l our. c, t rt N A t A
pR()cRAMA(-t oN
t )E t ()s Ml (-R()(roNt R()t At x)r<ES M()I ()R()t -A-t -t {Lt s(-Al t 55
que el byte correspondi ente a l a parte al ta cl e l a di recci 6n del operancl o (l os ti bi ts cl e ttrai s
Peso
tl el varl or
de l a cl i recci 6n) se asume con el val or
$00,
cl e tal fornl a que s61o es necesari o i ncl ui r eI byte t1e l nel tos
peso cl e l a cl i recci 6n del operando (B bi ts de rnenos peso del val or de l a di recci on) en l ar i trstrucci otr a-t
ej ecut ar .
EI hecho c1e considerar que la parte alta cle la direcci6n de memoria a accesar st: consicle' re cotno 00h,
delimita en cierta manera los registros y recursos del microcontrolador a accesar metliaute este moclo de
di recci ol ami ento. Esta 6rea de memori a en especi al se denomi na p6gi na cl i rccta, l a cual i rrcl uye l os regi strcl s
de memoria RAM y puertos de entrada/salirJa clel interior clel chip.
En general, se poclria decir que este modo de direccionamiento es muy eficiente en factores fundamentales
a la hora de programar y desarro[ar aplicaciones como son: mer-lor espacio cle tnetntlria clel programa, menor
tiempo de ejecuci6n, entre otros factores, debicto a que 6sta es una instrucci6n cle clos bytes, el primero utilizaclcl
para la instrucci6n a ejecutar y el otro para el byte cie menos peso cle la clirecci6n c{e nlemoria a arccesnr'
A cont i nuaci 6n se i l ust r a un ej er npl o que expl i ca con r nayor det al l e est e mocl o especi ar l c1c
direccionamiento:
Supongamos que en la posici6r-r cle memoria $80
se encuentra almacenado el valtlr $0F,
elrtollccs:
LDA $80 ;
A=$0F
,
es deci r el val or OFh (15 en base 10)
La anterior instrucci6n extrae el valor que se encuentra almacenado en la direccion 80h y lo almacena en
.fegistro
Acumulador (A).
plicacion
O ta CpU lee la instruccion que significa cargar el acumulador usando el modo cle clirecciouat-rrietrtcr
directo.
La CPU lee el valor $80, el cual es interpretadcl como el valor correspolldiente a ltls U bits clc ntetros
peso de una direcci6n de p6gina directa (desde $0000
hasta $00FF).
Los 8 bits de m6s peso de la direcci6n a acceder se establecen como $00.
La CPU arma la ciirecci6n completa cle p6gina directa $0080
con los clos valores previamente tnencionados,
colocando esta direcci6n en el bus cle direcciones y la CPU leerd el valor altnacenado en la posicion cle
memoria $0080 almacendndolo en el registro Acumulador (A).
,En
el Acumulador quedar6 almacenado el valor OFh para el caso clel eiemplo.
se ilustra la tabla de instrucciones clue permiten el uso c1e[ rtttlclo tle clireccionamietrto
-
F*rtscnL r
IJ, Jtrnru
(-nnt
os Vrs<;n FrnnrrRe
ffiffiffi,Fi
Desl t l azami ent o ari t nr6t i co a l a i zqui erda ASL
Despl azami ent o ari t m6t i co a l a cl erecha ASR
l i mp i a r
CI - R
Compl ement ar
COM
Decrement ar
DEC
I r r c- r ement ar
t N( _
l )espl azami ent o k' rgi co a l a i zqui erda
I , SL
Despl azami ent o l (rgi r, o a l a cl erecha
LSR
Negar
NEC
Rot ar a l a i zqui erci a a t rav6s cl el carry ROL
Rot ar a l a derecha a t rav6s del carry ROR
Prol l ar que no sea negat i vo o cero TST
Asi gnar val or al acumul ador
STA
Asi gnar val or al regi st ro l ndi ce X
STX
Sunra ct on acarreo
ADC
)Lrrna st n acarreo
ADD
Funci 6n l 6gi ca AND
AND
Compar ar el acumul ador con memor i a
CMP
(. omparar
el regi st ro i ndi ce con memori a
CPX
Fr r nci r i n OR excl usi va
EOR
Sal t ar
JMP
Sal t ar a subr ut i na
JSR
Cargar el acumul ador desde memori a LDA
Cargar el regi st ro f ncJi ce desde memori a
LIf X
Func.i (rr1-OR
oRA
Rest a con acarreo
SBC
Resl a si n ac-arrecr
SUB
C. argar el acumul ador desde memori a
STA
Cargar el regi st ro l ndi ce descJe memori a
STX
Sahar si el bi t n es 1
BRCLR
Sal t ar si el bi t n es 0
BRSET
Col ocar en 1 el bi t en memor i a
BSET
Li mpi ar el bi t en nr emor i a
BCI-R
I , rr rr
I
I Alil,n 5. ir
l r r t t t t - b e
i i , i
lnstruccictne.s (.on
ntoclo de direccionamiento directo.
Ar raourcn
-
Fnrrscarr
l Nt t i ct t -t t . l t -ct oN A LA
pRO(; RAMA(. roN
t )t ros MrcROc()Nf R()LAt x)RES Mor()R()t A-FREt scAl r
Modo de di recci onami ento i ndexado
Uno de los problelnas que surgen en el momento de requerir almacenar 10, 20 o mas valclres en clirecc-ispes cle
metnoria consecutivas utilizando los modos de direccionarniento anteriores seria el hecl-ro de tener clue escribir
el c6digo de instrucciones de ahnacenamiento tantas veces como valores se riesee almacenar, lo cual
1;eneraria
urr
trabajo bastante tecliost-r; por esta raz6n se plante6 el modo de direccionamiento indexado. Hste moclo parrtic--ular
de direccionamiento consiste en que la direcci6n efectiva del operando es variabte y depencie tle ckrs firctores:
G
gt
valor almacenado actualmente en el registro indice (X)
G
pt
desplazamiento conteniclo en el byte o bytes siguientes al c6cligo de operacion.
Este modo c1e direccionamiento se puede clasificar de tres maneras diferentes:
C si n despl azami ento
O con clesplazamiento de tt bits
O con despl azami ento cte 16 bi ts.
Indexado sin desplazamiento
La primera subclase del modo de rlireccionamiento indexado denominada inclexadcl sin clesplazamiento
consiste en que la clirecci6n efectiva del operando para la instrucci6n est6 contenida en los B bits tlel registro
indice. De tal forma que este tnodo de direccionamiento puede accecler a las prirneras 256
1-rosiciones
cle
memoria (desde
$0000 hasta $00FF), considerando el hecho de que la direcci6n que se tomard conro punto
de partida o cle desplazamiento con relacion al valor ahnacenado en el registro indice sera
$00
(0t)h). I{ay
que tener en cuenta que esta instrucci6n es de un solo byte.
A cont i nuaci on se i l ust r a un ej empl o que expl i ca con mayor det al l e est e mocl o espcci ar l r l e
direccionamiento.
Ejemplo
iliJFriFrjt\*
tSupongamos que en l a posi ci 6n de rnernori a
$80 se encuentra al macenado el val or $0E
y se cl esea accecl er a
!' .esta
posici6n utilizando el modo de direccionarniento indexado sin desplazamiento; entonces:
LDX #$80
;
X
=
$80 o (80h) direccion a ser apuntada por el registro X
LDA 0,X
;
Carga el registro A con el valor almacenado previamente en la direcci6n 80h cle Ia memoria,
que para el ejemplo coresponde a[ valor
$0F
(0Fh)
La anterior secuencia de instrucciones ilustra la forma de almacenar en el registro Acumulador (A), el
almacenado en la direcci6n 80h, apuntada por el registro indice (X)
plicacion
O ta CPU l ee l a i nstrucci 6n que perrni ti ra al macenar un vakl r exi stente en una posi ci on rl c rnenrori .r
en parti cul ar en el regi stro acunl Ll l acl or (A), uti l i zancl o el rnoctl cl e di recci onami ento i rrdextrci o si n
desplazamiento.
O La CPU construye l a di recci 6n compl eta a accecl er sumando $0000 al conteni do del regi stro i nt{i ce cl e ti
bits (X), registro que actualtnente, para el caso clel ejemplo, presenta un valor alnracerratlo t-lc $flt) (Ut)h).
ALrnourc;n
-
Fnrrscar r
T ( )
: ) ( )
f t t nx
(
nnr os Vl sr ; a [ : r Hnr r RA
C La tl i rccci (l n resul tal rte es col ocada er1 cl btrs cl e cl i recci ones
y l a cpu l ee el val or cl el regi str. conteni do
en esa
Pt)si ci (rrl
cl c tncm<l ri a y l o carga en erl regi stro ocrroui udor (A).
| ' a si gui t' trte tabl a i ncl uyc ul ra l i sta de toc' l as l as i nstrucci ones
que puecl en usar el mecl . cl e cl i recci onarni ento
i l r cl cxacl o si n cl espl er zar ni er r t ( )
y con cr espl azanr i e' t o
cl e B bi t s.
,
nqfruc.i6n,',i,
ili
i ir,i,''.; .{ lm
ludniqotl
Sr r ma c( ) n acar r co
ADC
Sr r r na si n ar : ar r eo
ADt-)
[ : rrrrr: i ri rr l ri gi r a ANl )
AN tf
[ )espl az: rrni e
nt o ari l rn6l i co a l a i zcl ui erc. l a
ASI_
Dcs; l l azanri et nl o
ari l m6t i r: o a l a rJerer: ha
ASR
l - i r nl l i ar
( - LR
( - ompar ar
el ar : ur nul adr l r r : or r menr or i a
CM[ )
(
- <l nr l r l er ncnl ar
COM
( , ompar ar
el r egi sl r o i ndi ce con nr emr t r i a ( - PX
[ )ccrement ar
DE(
Funr: i t i n OR excl usi va
EOR
l r r r : r emer r l ar
I NC
Sal l ar
JMP
Sal t ar a sr r br ut i n: r
JSR
(. argar
erl acumul ador
rl escl e memori a
LDA
(. argar
el regi sl ro i ncl i ce cl escl e memori a
LDX
Desl l l azarni ent o
l t i gi r: o a l a i zqui er<l a
I . SL
[ )ersJl l azant i enl o
ki gi co a l a cl erecha
LSR
Ncgar
NEC
[ - r r n<. i r i r r ( ) l R
ORA
Rot ar a l a i zrl i ri erda a t rav(t s cl el c; ; rrry
ROL
Rol ar a l a dcre<: ha a l rav6s cl el c. arry
ROR
l l esl a con a(. arreo
SBC
Asi gnar val or al ar : ur nul adur
STA
(. argar
c. l ar: unrul ador
cl esde memori a
STX
, ^ 3. 6
* B r * 4 * ^ > " *
* i r
.r' i,rrr,rs utn n.clo de clireccktnamiento
inclexacl, (N,
.ffset
s
()ffsel ).
I lrr
l nst nt r
o i l l ti t
Ar.rnovrc;n -
FnrrscnLr
l l ) N A l . A Pl t ( x; RAMA( l ( ) N l ) L t . ( ) 5 Mt ( l { ( x( ) Nl R( ) t . At X) RL5 M( ) t ( ) t { ( ) t A- t : t { t : FS( . Al t
l ncl exado con despl azal ni et rt o cl e B l ri t s
La seguncla subclase clel moclo cle clirecciotramiento inclexackr clenorninacla inclexaclo corr clesp' rlazarrnient<l rlt:
B bi ts cotrsi ste en que l a cl i recci orr efecti va es l ar suma ci el conteni do del regi stro i rrcl i ce cl e tl bi ts (X) y el byte rl e
despl azami ento si gui ente a l a i nstrucci or-r a ej ecutar. I{ay que tener en cuenta cl ue el bytt: cl e cl csprl arzar-ni errto
sumi tri stt"acl o en l a i nstrucci on es un numerul entero no si gnerdo de 8 bi ts. Una cl e l as cos;rs (l ue se rl eberr
tener ett cuental es
(l ue
a pesar cl e contarrse corl l a suma cl e dcl s regi strul s cl e fl bi ts carl a rrno, l ar sumi rtori a c{e
ambas canti cl acl es ncl cl ebe superarr 256, garanti zancl o con el l o que c.ste modo tl e rl i recci onar-r-ri ento perrni tu
acceder a l as pri tnerars 256 posi ci ones cl e rnemori a (cl esc{e
$0000
hasta
$00FF)
m;rnteni enckr l a concl i ci orr cl e
p6gi na cl i recta. La c-l i recci 6n qr-re se tomard corno punto de parti da o t1e despl azarni ento corr rel trci on al varl or
al macenatl o en el regi stro fndi ce serd l a esti pul ada por el val or cl el byte cl e cl espl azarni ento si gui ente ar l ;r
,:
instrucci6n a ejecutar.
A cont i nuaci 6n se i l ust r a
direccionamiento.
un ej empkr que expl i ca con maf br cl et al l e e. st e r not l o espr eci er l de
s,Ejemplo
i}rSupongamos
que en la posicritin de menroria $85 se encuentra ahnacenado el vakrr $0ll y se clesea accecler rt
utilizancftr el rnodo de direccionamiento ir-rdexaclo con desplazamiento cle 8 bits; entonces: esta posicion
LDX #$80
;
X
:
$80 o (80h) direccitin a ser apuntada por el registro X
LDA 5,X
;
Carga el regi stro A con el val or al macenado en l a di recci 6n de rnenrori ar c()rresponci i cnte a
l n' buma del val or cl el regi stro i ndi ce X ($80) y el val or constante que acompafl a l ar i nstrucci 6n (5); e' n otras
i.:,p0labras,
$80+5=gtl5, kr cual procluce clue el valor ahnacenado en la clirecciirn $85
sea almacenarclo en el registnr
,Acumulador,
que para el ejemplo corresponcle al valor $0F (0Fh).
'
La anteri or secuerrci er cl e i nstrucci ones i l ustra l a forma de al macenar
halor almaceuatlo en la tlirecci6n B5h, apuntacla por el registro inclice (X)
en cl r egi st r o Acunr ul acl or ( A) el
y crl rnpl crnentercl a
[)()r
un vakrr cl r'
es I tr cl eno nri tracl er i trcl exa rl tt ctt tr tl es1-r I tt za nr i etr ttr
cl el regi st ro i rrcl i cer cl e l J bi t s y l os t l os byt es t l t :
iento constante.
licaci6n
La CPU l ee l a i nstrucci on cl ue permi ti ra al macenar un val cl r exi stcnte en una posi ci 6n cl e metnori rr
en parti cul ar en el regi stro a-l cumul adcl r (A), uti l i zando el mocl o cl e di recci onanri ento i ncl exaci o cott
desplazan' riento de 8 bits.
l a CPU construye l a di recci on cornpl eta a acceder sumando el vakrr constante tl ue accl tnpafl a l ;t
, instruccion (5), estableci6ndose como punto c1e particla la $0005 con el conterrickr clel registrct inclice
i .
de 8 bi ts (X), regi stro que actual mente, para el caso del ej ernpl o, presentar un val or al nracenacl o de $80
(80h).
La di recci on resul tante ($t30+$5:$85) es cokrcacl a en el bus de di recci ones y l ;r
(,I' LJ
l ee el val or cl el
registro coutenido en eser prt-rsicitin de memoria y kl carga en el registro acumul;rrlor (A).
do con despl azanri ent o de 16 l ri t s
subcl ase cl eI rnodo de cl i recci onami ent o i nc{exac' l ct
1"6 bi ts; l a di recci 6rr erfecti var es l a suma rl el corrteni cl o
FHi l sr ar t
60 (-nnros
Vrsc; n FrnRrrM
cl espl azanri enttt si gui errtes a l a i nstrucci 6n a ej ecutar. Se debe tener en cuenta que el byte de despl azami ento
sumi ni stracl o cn l a i nstrucci 6n es un nti tnero entero si n si gno de 16 bi ts. En resumen, se puede cl eci r que este
nrclclo cspecial cle dirccciotramiento constituye una instrucci6n c{e tres bytes, ullo para la ilstrucci6n a eiecutar
y l os otros tl os bytcs son para el desprl azanri ento.
Utra c' l e l as cosas c]ue se deben tener en cuenta es que el hecho de contar con l a
cle B bits y el otro cle 16 trits, generar6 un resultado de 16 bits, provocando que se
cl e nremori a en modo extendi cl o.
A cor r t i nuaci ( r n se i l ust r a un ej empl o que expl i ca con
cl i rccci orrarn i e.n to.
suma de dos registros, uno
pueda acceder a posiciones
mayor det al l e est e modo especi al de
SrrPongam()s (l ue
e.n l a pc-rsi ci 6n de memori a
$0315 se encuentra al macenado el val cl r
$0F
a csta posi ci (rn uti l i zanci o el rnodo de di recci onami errto i rrdexado con cl espl azami ento cl e
y se desea acceder
16 bi ts; entonces:
LDX #$5
;
X
=
$5 o (5h) direcci6n a ser apuntada por el registro X
LDA $0310,X ;
Carga el regi stro A con el val or al macenado en l a di recci 6n de memori a correspondi ente
a l a suma del val or del regi stro i ndi ce X ($5) y el val or constante de 16 bi ts que acompai i a l a i nstrucci 6n
($0310); err otras pal abras,
$0310+$S=$0315, l o cual produce que el val or al nacenado en l a di recci 6n
$0315
sea almac--ettaclo etr el registro Acumulador, que para el ejemprlo corresponde al valor
$0F (gFh).
l ,a anteri or sccuenci a de i nstrucci ones i l ustra l a forma de al macenar en el regi stro Acumul ador (A) el
val or al maccrtztdo en l a di recci 6n 0315h, apuntada por el regi stro i ndi ce (X) y compl ementacl a por un val or
cl e cor r i mi cnt o const ant e de 16 bi t s.
I i xpl i caci ri rr
arr7fr<f:t\.tft7;
c La CI' U l ee' l a i nstrucci 6n que permi ti r6 al macenar un
en parti cul ar en el regi stro acumul ador (A), uti l i zando
cl espl azami ento c1e 16 bi ts.
I-a CI' LJ cotrstruye l a di recci 6n compl eta a acceder sumando el val or constante que acompafl a l a
instrucc' i(rn ($0310), estableciEndose como punto de partida la
$0310 con el conteniclo clel regist.o ir-,di..
de' B bits (X), registro que actualmente, para el ejemplo, presenta un valor almace.ado c1e
$S
(5h).
La cl i recci 6n resul tante ($0310+$5=$0315)
es col ocada en el bus de di recci ones y l a CpU l ee el val or del
registro cttlrtenido en esa posici6n de mernoria y lo carga en el registro acurnulaclor (A).
valor existente en una posici6n de memoria
el modo de direccionamiento indexado con
c
c
Arr,rourcn
-
Fnrrscal r
l rurnooucct oN A LA
pRocRAMA(-roN
I JE LOs Mt (-R(x. ()Nt R()rAt )oRrs MoK)ROLA-FREES(At E
Wffit'I+EaVq:iil'
Suma con acarreo ADC
Suma si n acar r eo ADD
Funci t i n l 6gi ca AND ANI]
Despl azami ent o ari t m6t i co a l a i zqui erda ASL
Despl azami ent o ari t m6t i ccl a l a derecha ASR
Comparar el acunrul ador con memori a CMP
Conrparar el regi stro Indi ce con memori a CPX
Fur r ci on Ol l ext ' l usi va EOR
Sal l . ar JMP
Sal t ar a subr ut i na
-tsli
Cargar el acumul adr-rr desde memori a LDA
Carsar el resi stro fndi ce desde nremori a LDX
Funci t i n OR ORA
l {ot ar a l a i zqui erda a t rav6s del carry ROL
Rotar a l a derecl ta a trav6s del carrv IROR
Re.sta ctl n acarreo SBC
Asi grrar val or al acurnul ador STA
C-argar el acunrul arcl or desde memori a STX
l l esta si n acarrecr SUB
I
Tnur,n 3.7
l f t l l l | l t b " r ' . . t .
lnstrucciones con modo de direccionamiento indexado
(' 16
bits de Offset).
ide
direccionamiento relativo
modos de direccionamiento especiales y que se considera de gran ayuda a la hora cle prtlgralnar
l adores es el l l amadcl mcl do de di recci onami ento rel ati vo, el cual es usado sol amettte por l as
de bifurcaci6n (saltos condicionados). Se debe tener en cuenta que las instruccioues cle bifurcaci6n,
de las bifurcaciones en su versi6n de manipulacion de bits, generan dos bytes tle codigcl cie
; el primer byte se utiliza para la instrucci6n y otro byte para el desplazamiento relativo. Cotno ern
se desea que el sal to o bi furcaci on sea en cual qui er senti do (haci a arri ba o haci a abai o), el byte
ento es un nfmero rlue puede presentar bit de signo, oscilanclo en el rango entre
-12f]
hasta
(respecto a la direcci6n cle la instrucci6n inmediata posterior a la instrucci6n c1e bifr-rrcaci6rr).
i6n de salto es verdaclera, el contenido de los B bits del byte con signo siguierrte al cocligo cle
desplazamiento) es sumado al contenido del contador de programa para formar la clireccion cle
Junr.r
(-nnros
Vrsr:n FrnnnR,t
bi ftrrcaci ti l r eft:t-l i va; tl e otro tnocl o, el contrcl l ccl nti nri a en l a si gui ente i nstrucci ri n i nnre.l i ata
posteri or a l a
i rl strucci (rn de bi frrrcaci (l n.
A cotrti nuaci (rn
se i l ustra un ej ernpl o para expl i car c()n r-nayor cl etal l e el modo de
cl i recci ol ri t rl i r.rr trl rel a ti vo.
I r j enr p l n
-qq.f*.f-**^,ft+
I - l ) A #40' I '
;
A
: 40,
Acunr ul acl or
=
40
CMI' #30' l '
;
(_-ompara
A con 3[)
I I NI 1 Sa l t o |
;
Si no sol r i gual es sal t a a l a et i cl uet a "Sal t o
1"
, de l o cont r ar i o si gue en l a si gui ent e l i nea; como
cn este. ci -rs() n() son i gual es, sc procl uce cl sal to.
I r xpl i r " ; , r ci ( r n
'\-"/.--;Fl.!a,.F./\..,
C I-a CI)U l ec l a i l rstrucci (l rr de sal tar l raci a l a eti queta "Sal to1"
en caso cl e que al efectuar el proceso de
c: ont par aci 6n cl bi t Z: 0.
l -a C[' U l r:c' l a tl i rccci (l '
c' l c ' rern.ri a c-l enomi nacl a en este caso
$XX, e. cl ' ncl e l a cl i recci 6n
$XX es
i l ttt' rPrl l acl a ctl tntl el l val or de cl espl azanri errto
rel ati vo. Dc.spu6s rl e real i zado este proceso, el contador
cl t' progral -Il a aptl l l ta al
1-rri nrer
byte cl e l a pr6xi rna i rrstrucci 6n a ej ecutar.
si t ' l bi l / ' : 1, l l t ' r sc pr t l cl uce ni nguna bi f ur caci ( r n o sal t t - r y el pr ogr ama debe co' t i nuar con l a
pr(rxi trra i l rstrttcci (rn. f)e l cl contrari o, si el bi tZ=0,1a CPU generard l a di recci 6n compl eta surna.cl o
el
cl espl azatrti etrto
cotr si gtro tnetrci onacl o
anteri ormente
($xx) con el val or exi ste' te en el contador
de
i )r()gral na P;rr:r
ol rtetrer l a cl i recci 6n desti no dc l a bi furcaci 6n o sal to, provocarrcftr
que l a ej ecuci 6n
del
pr ogr al l r a cont i r r uc cl escl e ot r o pr unt o del pr ogr ama ( sal t ol ) .
l - a t abl a si gui er t t e i l r cl uye una l i st a dc t ocl as l as i nst r ucci ones
que se pueden usar cn el modo de
r l i r ccci <l nal r r i cr r t o r cl a t i vo.
Saltar a la.eliqueta si el-bit?e cnffiT
BCC
Sahar a l a ct i quet a si el l i l . 1" . " y, " 1
BCS
Sal t ; r r a l a et t i quet a si es i gual ( bi t
7_
:
1\
BEQ
Sal t ar a l a et i r l uet a si cl bi t cl e r . ar r y nr er l i o, r s t i
( l - D
uH(. c
Sal t ar a l a et i cl uet a si el l ; i l cl e c: ar r y r net l i o es 1 ( l l )
BHCS
S, r l l , r r a l ; r ct i r l ucf , r si cs mayor
ul rl
S. r l l ar si cs mi r yor o i gu, r l
BI I S
S,tg...l cl lrin lR(] r:stii en alto
Bi l -l
Sal l ar si el pi n l R( J est ; i e n baj o
Bi l _
S. r l l l r a l a ct i cl ucl a si cs l ncnor
BLO
S, r l t ar a l a ct i ct uct a si es nr cr r or o i eual
BLS
Sal t ar si l a banderer de i nt errupci 6n est d en 0
l l M(_
G
c
Ar rnovrc;,r
-
FRrrscnLr
I t " t t Ht t ut . t t . t t ON A t A l ' l t ( ) ( ; Rnv, q< t r i n r ) t r ( ) 5 , ^vi l ( - R( ) (
( ) Nt R( ) t Al ) ( ) l { Ls
M( ) t ( ) R( ) l A- l t ( L[ s( At t
63
Sal t ar si el resul t ado cJe una operaci 6n es negat i v<. r uMl
Sal t ar si l a bandera de i nt errupci 6n est a en
-l
I]MS
Sal t ar a l a et i quet a si no es i gual BNE
Sal tar si el resul tado cl e una o[)eraci 6n es posi ti v<r BPL
Sal t ar a l a et i quet a si ent pr e
BRA
Sal t ar si el bi t N del r egi st r o OPR est d en 0 I]RCLR
Nunr - a sal t ar
I ] RN
Sal t ar si el t ri t N cl el regi st ro OPR est d en
' l
BRSE I
Poner en 1 el bi t N del regi stro OPR I]SET
Sal t ar a subr ut i na
I]SR
|
' l ' RHr,R
3.8
t r l i r r } ' r E r . t . I r
lnstrucciones que se pueden usar en el motlo cle clireccittnantientct
relativr.t.
|.;DIRECCIONAMIENTO DIT MEMORIA A
'',difurentes:
Ej : LDA $50,SP
LDA $O15O,SI)
1. EL MOVEI{ DE l nmedi ato
-
Di recto
Ej: MOV #$30,$80
2. El MOVER DE Directo
-
Directo
Ej: MOV
$80,$90
3. EI MOVER DE Directo
-
lnclexado
Ej: MOV $80,X+
4. El MOVEIT DE Indexado
-
Directo
Ej : MOV X+,$90
IRECCIONAMIENT' O CON S' f ACK l )( )/N I"I,Ii : Permi te agregar a 8 o 16 bi ts corr
(Xfset.
;
S' I' ACK POINTEIT A t] Bll' S
;
STACK I' OINTEII A 16 tllTs
MrmoRfA RAM
trol ador posee l 2ti regi stros cl e propti si to general en l a mernori a I{AM, estos regi stros se' uti l i z;rrr
l a adj ucl i caci ci n cl e vari al rl es necesari as dentrcl de un progranl a e' speci i i co.
MEMORIA: Se puecl e uti l i zar c1e cuatro fornras
Este espacio est6 clefiniclo clescle lar clireccicin
$00tt0 l-rasta Ia $00FF"
94_ __
Iurrru Cnnros Vrscn
Mientras tanto, iniciemos el
3.5, h, Srr DE tNsTRUcctoNEs
| ,1s i nstruc-ci ones son aquel l as
(rrdenes
cl ue se cl an al mi croccl ntrol ador para que real i ce una tarea es
(' rrrrro
se puecl e observar, l a pnl gramaci 6n de estos cl i sposi ti vos se reahza en l enguaj e Assembl er, el
l i cnc l a vt.rrtai a cl e que efectri a tareas etr fortna muy r6pi da y el paso es casi di recto al l enguaj e com
por r:ual rl tri cr di sposi ti vo el ectr6tri co; se trata del l enguaj e bi nari o, el cual est5 cotrformado por dos
( l y { ) )
l rstr. rl i o' ocontrol acl or permi te tambi 6n su programaci (rn rnedi ante
rri vcl c()l l o e.l C, el cual se expl i car6 en detal l e en capi tul os posteri ores.
compiladores en lenguajes de
Irac:i a l a prcl grarnaci (rn cl e l os mi crocontrol aci ores Freescal e. En el anexo de l a p6gi na web del l i bro se expl i
qr
cl etal l c cacl a una de l as i nstrucci ones cl ue hacen parte de esta fami l i a de mi crocontrol adores descri bi eni
su si rrtaxi s, funci 6n y al gunos ej empl os que har6n f6ci l l a comprensi (rn y el uso de cacl a uno de el l os dent
t l t r nr pr ogr ama, segt i n sea el caso.
En l a si gui ent e l abl a se ha r euni cl o t ocl o el coni unt o de i nst r ucci ones
rl rdenacl as de manera al f ab6t i ca; con el f i n cl e bri ncl ar al est udi ant e una
guf a f 6ci l y di d. l ct i ca a l a hora de querer consul t ar al guna i nst rucci 6n
en especi al , i l ust r dndose su si nt axi s, f unci 6n, nr j mer o de ci cl os y
al gunos det al l es adi ci onal es que l a convi ert en en pi eza cl ave a l a hora
cl e desarrol l ar apl i caci ones basadas en mi crocont rol adores Mot orol a
Freescal e
tNsrRUCC1fl 51'
I
H,rr
AI X- #OPR
AI X- OI ' R
Al x
( ) 1) R, X
At x,
, x
Al x.
(
) l , l <, s[ '
SUMA CON CARRY
A
:
A" r ( M) +C
M
:
[)ato o val or al macenacl o
C-
: (-.rrry
2
3
' l
.)
2
4
At ) l ) #( ) F
nt ) t )
( ) Pf t
n t ) l )
(
) l ) l <
NI ) I ) , X
n l ) t )
(
) t ) R
R
X
S[ '
STJMA SI N CARRY
A
' -
A+( M)
M
:
[ ) al o o val or al mac. enadr t
2
3
,)
.)
I
+
n t 5 #( ) l ' l t SP- SP+DATO 2
n t x #( )t ' l t t l : X- l l : X+DATO 2
Arrnourcn
-
FRr
l N- t t <r ) uuc. t . t oN A t A PR( ) cRAMA( . l t l N
L) t l ( ) 5 Ml ( R( X. ( ) Nl R( ) LAt X) Rt 5
M( ) l ( ) l t ( ) l ' A- FRt t : s( Al t
FUNCI ON AND
4
:
fi &(M)
M
:
f ) at t t o val or al macet r acl t r
2
t
l
2
4
; I
,:
':
r:ii
,v
{,
-,
i1
:.
ri
AND #OPI (
AND OPR
AND OPR, X
AN[ f
, X
AND OPR, SI )
1
I
I
-t
J
l )
;
I
I
4
l r
ASL OPR
ASt A
ASLX
ASL OPR, X
ASL, X
ASL OI ' R, SI )
t ) espl azant i ent t l
ar i t l n6t i cl o a l a l zqLl l er ( l a
*-r-fl
ASR OPR
ASRA
ASRX
ASR OPR, X
ASR OPR,SI)
D*. t t rl nru*i ent t l
ari t m6t i t : o a l a deret . ha
e- , l r r r , r l : r oi i r r r r pl e s i el hi t r l e c ar r V es 0
t
BCC Eti queta
[ ] , . r r r r , . 1 hi t N r l r r l r r r t r i sl r ( l OPl l
-l
BCLR N, OPR
J
BCS Eti queta
( r l r r r
: r l e r . l i r r r r el a si el bi t de car r v es' l
S; r l t : r ; r l ; r el i cuel a si es i t l ual
( l l i t Z: ' l )
J
BEQ Etiqueta
( ; r l r r r
si
ps
i r r r r al r t nt avt ) r
que OPR
J
BCE OPR
Q ' l t , . . i o u m - t r r r t r r r r l e O l ) R
t
. BCT OPR
J
* ; . ' ; " l
&, : . '
' ' : 7 ;
'&,;
BHCC Et i quet a
Q. l t r r r l r r ' l i nr r r . t a si el bi t de car r v mecl i t l es 0
( ] l )
J
BHCS Et i quet a
Qr l r r r r l r r ' l i r r r r el a si el l l i t de car r v mecl i t > es' l
( l l )
c - l r - ' r l r o t i r r r t r : t i l
ps
r nAVC) r
J
BHI Eti queta
BHS Eti queta
:
i;,,
i
i i i . I
ilffi
llr"r
l i ,
Q. , l t . " c i o c n r r r r r l r r r i r r t t a l
l
c- , 1t . - ,
" i
ol r r i n l t ?f ) r ' st i en al t o
J
BIH Eti queta
ffi si el pi n tttQ estd en bai "
Probar bi ts
A&( M)
t r , zi
-
I ) ; r t o r r val r r r al nt acenacl o
j
2
J
i
'2
4
I
BIL Etiqueta
i l i ntr #oPR
lli-Btr
oen
I
nrt orR,x
I
BI T, X
I BI T OPR, SP
Sal t ar si es i gt ral o menor que Of ' }l i
Sal t ar a l a et i cl t l et a si es mer l ( ) r
t
ii
Fr
h
BLE OPR
l
t
BLO E-IIQ
BLS ETIQ
l[r Sal t ar si es met r <l r que
j
BLT OPR
,
)
BMC ETIQ
I r . , , . i l r [ . , . nr l r . r r r l r ' i nt er r t t r l c i t i r l
gst d
en 0
- . . ' - _|
l r , , . i - l . - . , , l t edr r de r r nA r l oer ac. i ( l t t es negat t vt l
i
l BMl
ETI Q
Sal t ar si l a bander a de i t i t er r ul l t i or l
esl 6 en I
e- , 1r . , .
- .
l r pt i r r r r et a s i r r r l es i pual
,,BMS
ETIQ
J
ffiNirlq
I
f r r nN
(
- , r Ht os Vr sr ; r t Fr RRr t Rn
l l l )l _ t _ | l ( 5al t ar si cl r csul t ado t l t ' ut ) ( t
( ) [ ) cr ( l ci t ' r l t
t ' s l l osi l i vt r
' )
-)
l i l <A I I r ( ) S, t l l . t r . l l . l
( ' l i <l t t t ' l ; t s i <' t t t l l r t ' 3
t ] l t ( _l R N, ( ) t , l t , t _ I l ( J Sal t ar a l : r r: t i rl uet a si el l t i t N cl el regi sl ro
()[ )R
t ' sl i i t ' rt 0 fi
BRN f l r ( l Nunr . a sal t ar
1
l l l t sI l N, ( ) [ ' R, f - T l ( ) Sal t ar a l a el i r l Lr el a si e: l l r i t N cl t ' l r egi st r o
( ) l ' R
est . 1 en I 5
[]s[, f N,( )[,l l l )oner en 1 cl bi t N cl el regi sl ro OPR +
BSI t i l r ( J Sahar a subr ul i na
A
a
( . 13[ ( ] ( ) t ' | t , i l
l ( l
( _131. ( l A
#( ) l , l t , I I l ( J
( . Bt ( ?x
#( ) l ) l <, [ l l ( ]
(
. l t l : (
J
(
) l ' R, X l - , E I l ( l
( , 8[ ( 2 (
) l ) R, Sl ] l _Tl ( )
( . or nl l ar i t r
r : l val or cl e A cor t er l val or #( ) PR o el r l at r r
al r na<: enacl o er n C) l ) R y sal t ar si son i gi t al t ' s a l a el i r l Lt el a
tr)
5
4
4
5
( ' l (
Borrar el bi t cl er r; arry
I
( l l
l Jor r ar el [ r i t de i nt cr r uu<: i r i n o t r ant l er a cl e i nt er r ul t c: i i r t t 2
( _l
t t
(
) l ' R
( _t
RA
(. t
rt x
(.t
Rr I
( . l . t < (
) l , l { , x
( ' l
R, x
( . 1
l t
(
) 1, R, 51,
l Jorrar
-)
1
I
1
')
.)
")
4
( ' Mt ,
#( ) l , R
(
N,11)
(
)[)l {
(
Ml ' ( ) l ' l l , x
(
- M[ '
, X
( . M1, ( ) [ ' l { , sl '
( - ont par ar
cl val or r l e A con t : l val or #( ) PR o el cl al r r
al ma<: enar kl en O[ ' R
2
')
3
2-
4
( . (
) M
(
) l , l t
(.(
)Mn
C- OMX
COM O[ ) R, X
( - (
) M
, X
( ( ) M ( ) [ ) R, SI ' ,
Crl rnJrl ernent o a urt o
4
1
I
1
A
+
a
.)
5
( - t , l
l x #( ) l ' f t
(
I ' l l x
(
) l , l {
(-ornparar
el vakrr rl e l ' J: X con r-' l val rl r #OPR o t : l t l al <r
al r nacr : nado en OPR
3
^
'-l
( _t , x
#( ) [ , R
(
I ' X
(
) l ' l i
( , [ , X, X
(
1] , X
(
) l ' l {, x
( . [ ' x (
) [ r l { . s1,
Cornparar el val or rl t ' X r: on el val or #OPR o t : l rl al o
al ma<: enacl o t : n C)PR
2
-)
. )
: l
2
a
t ) n A Ai ust ar a cl ec: i mal el regi sl ro A 2
Ar rncl Harr;n
-
FRrEst nr r
l Nl . R( ) l ) r . t ( (
t ( ) N A l A
pR( x ; t uMA(
t ( ) N l ) t r ( ) 5 Mt ( R( x . ( ) Nt R( ) t At x ) Rt s
M( ) t ( ) R( ) t A_f t t Et s( . At r
I ) I ] NZ OPR, ETI Q
DBNZA ETI Q
Dt sNZX E nQ
DBNZ OPI t , X, EI - I Q
DI ] NZ X, EI I ( J
l l uNZ
( ) t ) t {, st l ETl Q
[ )ecrent errt ar
y sal t ar si no L, s r: ero
DEC OPR
DE( - A
DECX
DEC OPIT,X
DE( - , X
DEC OPI t , SP
[ ) ecr ent ent ar
y sal t ar si no es r er <l
Di vi di r A: (l l : A)/ X (A :
cgct i e. nt e, l -l
:
resi cl ug)
EOR #OPR
EOR OPR
EOR OPR, X
EOR, X
EOR OPR, SP
OI{ EXCLTJSIVA
A: A ( M)
M
:
Dat o o val or al macc. nadcl
I NC OPR
I NCA
I NCX
I NC OPR, X
I NC, X
I NC OPR, SP
I r r t : r er ner t t ar
JMP OPR
JMP OPR, X
J MP, X
Sal t ar a l a cl i r ecci on Ol ) R
JSR OPR
JSR
OPR, X
Sal t ar a subr ut i na
OPR, X
,x
OPR, SP
(-argar
er A el val ' r #()pt t r el cl at o al rnacenacl , en c)pR
: LDHX #OPR ( - ar gar
en l l : X el val , r #OpR.
"l
. f f i
DX #OPR
OPR
OPR, X
, X
OPR, SP
(-arg, t r
en X el val <l r #ol )l l o el dat o al nracenat r. en ol )r{
Despl arzant i enl o
l 6gi r; a a l a i zrl ui erri a (i gual
cl ue ASL)
Ftttts( nr r
rr!1
f traru Cnnl cts Vrsc;,1 Frnnrrn,l
I SI I OI ' R
I SRA
I - SRX
I Sl t
(
) l ) R, x
I SI <
, X
I Sl <
(
) [ ' l l , s[ )
Despl azami ent o l 6gi ca a l a der echa
0
H
B7 Ro
F>l
c
t+
1
1
I
+
.1
5
N,1( )V
()l ' ]1],()l ' }R
MOV OI ' R, X I
M( ) V #( ) l r l l , ( ) [ , l l
M( ) V X t - , ( ) l ) l {
Movr. r f ucrrl e, dcst i no
5
A
a
4
A
+
MI J I
Mul t i pl i caci 6r t si n si gno ( X: A :
X* A)
5
NL( ; OPt i
Nl . ( , A
NI
( ; X
NI - ( ' OJ) R, X
Nl
( ;
, X
Nl _( ;
(
) l r R, sl )
Compl emenl o a [ ) os
A
4
1
1
4
.f
5
N( ) l
No o1; eraci / rn
1
NSA
I nt er cambi ar ni bl es de A ( A: ( At 3: 01: Al 7: 4) ) )
3
(
) Rn #( ) PR
( )l {n (
)t)ti
()Rn (
)[ )R, X
ORN
, X
(
) Rn
( ) [ ) R, SP
FUNCI ON OR
A: Al ( M)
M
---
Dat o o val or al macenado
1
L
, t
.)
.-}
/-
A
.+
I r sltA
I nsert ar A en el . sl ack
2
[ , slil
Inserl ar l -l en el .star:k
2
l , slIX
l nsert ar X en el sl ac: k
2
t , l l l A
Sacar A del sfack
a
L
I ' t , l I I
Sacar Fl del ,sl ac/<
1
I ' I J I X
Sacar X del srack
1
L
l {( ) t
(
) Pt {
l {( ) t A
t {( ) t x
l {( ) t
(
) [ , l t , x
l l ( ) l
, x
l {( ) t
(
) [ ) t <, sJ)
Rotar a l a i zqui errJa a l rav6s cl el carry
Rotar a la derecha a trav6s del carrv
4
1
1
I
4
,)
.)
5
tt( )t< oPt<
It( )ttA
It( )ttx
t {( ) t ?
(
) [ ) R, x
l {( ) t <
, x
I t ( ) l l
(
) l ) l l , s[ ,
4
1
1
I
4
f
.)
5
Ar rnovecn
-
FRrrsr:nl r
l Nt noouccl . t N
, q r, q
p*oc*^MAC, . N
DE Los MrcRocroNl *(JrAr)()REs
M()r()Rot . A-r: REESCALt
RSP
I
lteset al .S'tack Rtinter
l ( et or nar
dc ur r a i nt er r upci 6n
l l et ornar
de una subrut i na
I TESTA CON CARl {Y
A: A- ( M) - C_
M
:
Dat o o val or al nracenacl cr
%
- - l
( ( ) t ( x' cl r
el l t t l t l e t at r y t , i l
C, l . car *f
Asi gnar A en el regi st ro
OpR
M: A
M
:
Dat o o val or al macena. l rr r. r-r rl i r-. . r-i Arr r. )Dt . )
I
ItTI
7
RTS
I
SBC #OPR
SBC OPR
SBC OPR, X
Si ] C, X
St sC OPR, SP
2
l
5
).
-l
SEC
SEI
I
STA OPR
STA OPR,X
STA, X
STA OPR,SP
l
-l
)
4
STHX OPR
Asi gnar H:X en el regi stro Opl {
.l
STOP
l i rffi g
"l
l rr
l Rg, cl etener el osr:i l arl or
Asi gnar X er r el r egi st nr
O[ ) l {
STX OPR
STX OPR, X
STX
,X
STX OPR,SP
t
rl
)
4
SUB #OPR
SUB OPR
SUB OPR, X
SUB
, X
SUB OPR, SP
Itt.stAft
A- A- ( M)
M
:
l )ato o v;rl rtr al mar:enad<r
Int"rru[r.' i6ffi
I ransierir n .,1 r,t-Rl-ffif,
l l ansi eri r
A a X
l r a n s l e r i r ( ( _ l t a A
, X- A
; A:
( C_R
[ ' robar si l a <: ant i t l acl
es negat i v. i o (] ero
I l ansl cr i r
Sl , a l l : X
,
l l : X
:
Sp + I
l i a n s f e r i r Xa A
, A: X
I l ansf er i r l l : X a Sp
,
Sl )
. =
l i : X I
%
:
J
t
. )
I
4
SWI
( l
TAP
)
TAX
TPA
I
TST OPR
TSTA
TSTX
TST OPR, X
TST, X
TST OPR, SP
. J
I
I
t
)
4
TSX
J
TXA
TXS
TAnr,A 3.9
* t f * * . t * , 4 , * + * . * . t
Conj u n b c/e i nsfrur.ci r.l rcs
Al rnovt t ; n
-
[ -xLI sr nt t
o;
r r , f f i a
r r r t i na
( 1. ( ,
l xl r mi t a
l eer r kr s r r t r mt ' r os y t ' f t : t ' l t t ar l , t s si gt t i enl t ' s f unt ' i r l nes:
a. St r mar l r l s
b. fl estarl os
c. Mt r l t i pl i c: ar l os
d. I ) i vi r l i r l os
r as rersprrr:stas
r rl rrr:sp' rrcl i enters
se cl el ben al macenal r
en l as di recc-i .nes $B0, $81, $82' $83'
respecti vamente'
, ; f l
pi senar
un pr ogr ama
( l ue per mi t a sumar l . s n( r mer os cl el 1 al 100 y cal c- ul ar su pr omedi o'
, % Es<: r i l t i r una r ut i na que per mi t a
l eer cl os n( r mer os y ef ec- t uar l as si gui ent es
f ut r ci ones:
a. AND
b. OR
c. XOtt
d. Compl ement arl os
a 1 el pri mero y a
al macenar en l as cl i recci cl nes $80, $81,
2 el seguncl o, y l as respuestas correspondi entes
se deber
$82, $83,
r esPect i vamenl e'
!," ,",,,rri encl a,
para resol ver estcl s ei erci ci os,
el uso del codewarri or
o
el wl Nl DE con el f i n cl e cocl i f i car y depurar paso a paso cada uno c-l e l os
programas,
veri fi cancl o su funci onami ento'
Ver Anextl A'
ftRclnuc06x
,t,p.n
RISlJl.{EN OEL
CAPiTULO
Exi st el r t uncl s r egi st r t l s cl t l e se encuenl r an
const ant enr ent e
i nt er ar : t r r anr kl c; Or r el
mi crrl ctl tl trol acl tl r,
efecl uancl o
tareas cl epencl i encl o
cl e l as i rrstrur-ci ones (l Lre
se vayap
1,,.'"r1,,,
;;g;i;t
l os e
i nternos de l a cl )U y
Ptl r
1;rl r;tzi l tt no se enr:uenl rafr
nrapect(kl s
en l a rnernori a.
r egi st r o f nr l i c, e ( l
( SP) ,
cont ador de pr ogr ama
En todtl
Proceso
de
l l rtl granl aci on
se requi ere real i zar constanternenl e
operaci ones, arsi g.aci on cl e v.rl ,res
a regi strtl s y extraer val ores exi stentes en otros regi stros para transferi rl os y/o procesarl os c.rr otros rl at<l s; erstr:
proceso cl e extracci 6n
y adj ucl i t;;l ci 6n
se cotroce col l o di rr:cci onami enki .
Los nri crocontrcl l ackrres
Freesc-al e
usan sei s modos de cl i r ecci ot l ami et r t t l :
i r t her enl e, i nmecl i at o,
ext encl i cl o, cl i r ect o, i pcl exacl o y r el ; r t i vr .
Las i nst r ucci ot l es
son aquel l as 6r cl enes que se l e cl an al r ni cr ocont r ol adcl r
par a
( l ue
r eal i r . e ur . l t . l r o. r
especffi ca' Como se puede observar, l a ptrtl grarra<:i orr
rl e estos cl i sposi ti vos se puecl e real i zar r:n l e.grra;.
Assembl er o en l engLr ai e C.
r*li;*, ,::r1
Est os r egi st nt s son: . i r : unt ul acl or
de b; r nder as ( ( - CR) .
)
r r : gr sl r o
tl
[-lourcn
l{
fi
FHr rsr ,qr r

You might also like