You are on page 1of 71

--Tcnicas Digitales II-LISTADO DE INSTRUCCIONES A continuacin se ilustra el repertorio de instrucciones que poseen los microcontroladores JL3/JK3/JK1.

Este set de instrucciones esta explicado en forma muy detallada y posee una gran cantidad de venta as so!re otras familias de microcontroladores como por e emplo la "ivisin y la #ultiplicacin$ %erificacin de operaciones como mayor que$ menor que$ etc. &ara comprender me or el repertorio de instrucciones$ se explicara instruccin por instruccin ilustrando su sintaxis$ la funcin que reali'a$ las variantes que puede presentar con los diferentes operandos y finalmente el n(mero de ciclos que consume a la )ora de su e ecucin. &ara comen'ar a anali'ar todo el repertorio )ay que tener en cuenta la funcin que reali'an$ es por ello que se consider pertinente clasificar las instrucciones seg(n la funcin que reali'an$ por lo tanto se puede decir que las instrucciones se clasifican en* Instrucciones para manejo de datos Instrucciones que manejan its

Instrucciones para contro! de pro"ramas Instrucciones aritm#ticas $ !%"icas Instrucciones de operandos especia!es

Instrucciones para manejo de datos CLR & 'orrar

Descripci%n& Acumulador

Esta +A, o

instruccin al registro

ad udica -ndice

cero o

como a una

valor

al

+X,

direccin

correspondiente a un registro de propsito general espec-fico. La operacin reali'ada es la siguiente* A ( ))* % X ( ))* % +,- ( ))* # . /egistro o posicin de #emoria Sinta.is&
INSTRUCCIN CLR OPR CLRA CLRX CLRH CLR OPR,X CLR,X Aclaracin OPR = Direccin de Memoria o Registro A = Acumulador X = Registro ndice No. CICLOS 3 1 1 1 3 "

P = tac! Pointer

Ejemp!os& CLRA CLRX CLR 12) / A ( ) / Acumu!ador ( ) / X ( ) / Re"istro 0ndice X ( ) / 3a!or a!macenado en !a direcci%n 2)* ( )

LDA & Car"a e! Acumu!ador desde !a memoria Descripci%n& Esta instruccin carga en el Acumulador +A, un valor almacenado a manera de una constante o previamente esta!lecido en un registro de propsito general. La operacin reali'ada es la siguiente* A ( +,# . 0onstante o valor almacenado en un /egistro o posicin de #emoria

Sinta.is&
INSTRUCCIN LDA #OPR LDA OPR LDA OPR,X LDA ,X LDA OPR, P Aclaracin #OPR = Constante$ OPR = Direccin de memoria o registro X = Registro ndice P = tac! Pointer o A%untador de Pila No. CICLOS " 3 3 " &

Ejemp!os& LDA 45)T / A ( 5) / Acumu!ador ( 5)

,O3 45)T612) / A!macena e! 7a!or 5) en !a direcci%n 2)* LDA 12) / A ( 5) / Car"a en A e! 7a!or e.istente en !a direcci%n 2)* ,O3 45)T6125 / A!macena e! 7a!or 5) en !a direcci%n 25* LDX 45 / X(5 LDA 12)6X / A ( 5)6 Car"a en A e! 7a!or e.istente en !a direcci%n 25* + 2)* 8 X -

LD9X & Car"a e! re"istro de 0ndice 9&X con !a memoria Descripci%n& Esta instruccin carga en el /egistro -ndice +9&X, un valor almacenado a manera de una constante o previamente esta!lecido en un registro de propsito general. 1ay que tener en cuenta que el registro 9&X es un registro de 12 !its. 0uando se indica que se desea almacenar en 9&X un dato almacenado previamente en una posicin de memoria y como los registros son de 3 4its$ en la direccin que se indica en la instruccin +#, se encuentran los 3 !its de m5s peso y en la direccin siguiente +#61, se encuentran los 3 !its de menos peso. La operacin reali'ada es la siguiente* 9&X ( +,&,85# . 0onstante o valor almacenado en un /egistro o posicin de #emoria Sinta.is&
INSTRUCCIN Aclaracin No. CICLOS

LDHX #OPR LDHX OPR

#OPR = Constante$ OPR = Direccin de memoria o registro

3 &

Ejemp!os& LD9X 41:2;< / 9&X ( :2;<* +5)3<; d-

,O3 41:2612) / A!macena e! 7a!or :2* en !a direcci%n 2)* ,O3 41;<6125 / A!macena e! 7a!or ;<* en !a direcci%n 25* LD9X 12) / 9&X ( :2;<* +5)3<; d-

LDX & Car"a e! re"istro de 0ndice X con !a memoria Descripci%n& Esta instruccin carga en el Acumulador +A, un valor almacenado a manera de una constante o previamente esta!lecido en un registro de propsito general. La operacin reali'ada es la siguiente* X ( +,# . 0onstante o valor almacenado en un /egistro o posicin de #emoria Sinta.is&
INSTRUCCIN LDX #OPR LDX OPR LDX OPR,X LDX ,X LDX OPR, P Aclaracin #OPR = Constante$ OPR = Direccin de memoria o registro X = Registro ndice P = tac! Pointer o A%untador de Pila No. CICLOS " 3 3 " &

Ejemp!os& LDX 45)T / X ( 5) / Re"istro 0ndice ( 5)

,O3 45)T612) / A!macena e! 7a!or 5) en !a direcci%n 2)* LDX 12) / X ( 5) / Car"a en X e! 7a!or e.istente en !a direcci%n 2)* ,O3 45)T6125 / A!macena e! 7a!or 5) en !a direcci%n 25* LDX 45 / X(5 LDX 12)6X / X ( 5)6 Car"a en X e! 7a!or e.istente en !a direcci%n 25* + 2)* 8 X -

,O3 & ,o7er Descripci%n& Esta instruccin permite mover un contenido de un lugar a otro$ puede ser de un registro a otro o una constante a un registro. La operacin reali'ada es la siguiente* +,-DESTINO ( +,-=UENTE # . 0onstante o valor almacenado en un /egistro o posicin de #emoria Sinta.is& ,O3 =UENTE6 DESTINO
No. CICLOS ( & & &

INSTRUCCIN Aclaracin MO' OPR,OPR Registro a Registro MO' OPR,X) MO' #OPR,OPR Constante a registro MO' X),OPR

Ejemp!os& ,O3 45)T612) / A!macena e! 7a!or 5) en !a direcci%n 2)* ,O3 45)T612) / A!macena e! 7a!or 5) en !a direcci%n 2)* ,O3 12)6125 / A!macena e! 7a!or de !a direcci%n 2)* en !a direcci%n 25*6 +Direcci%n 25* ( 5)NSA & Intercam ia !os ni !es de! Acumu!ador

Descripci%n& Esta instruccin reali'a un cam!io en los ni!!les presentes en el registro Acumulador +A,. Los ni!!les son los 7 !its de m5s peso o los 7 !its de menos peso. El intercam!io de ni!!les consiste en intercam!iar entre s- el contenido de los ni!!les presentes en el Acumulador$ es decir$ que los 7 !its de m5s peso pasan a ser a)ora los 7 !its de menos peso y viceversa. La operacin reali'ada es la siguiente* 8nicialmente Al e ecutar la instruccin A ( A>;&?@ & A>3&)@ A ( A>)&3@ & A>;&?@

A>;&?@ ( 7 4its de m5s peso A>)&3@ . 7 4its de menos peso

Sinta.is&
INSTRUCCIN * A Aclaracin +ntercam,iar *i,les de A -A=-A.3/01/A.2/&133 No. CICLOS 3

Ejemp!os& LDA 41=2 NSA LDA 41;< NSA / A ( =2* / A ( 2=* / A ( ;<* / A ( <;*

PS9A & Pone e! Acumu!ador en !a pi!a Descripci%n& Esta instruccin carga el Acumulador +A, en la direccin almacenada en el puntero de &ila +9tac:, y el puntero de pila es decrementado para apuntar a la direccin siguiente disponi!le. La operacin reali'ada es la siguiente* +SP- ( A SP ( SP A )))5*

Sinta.is&
INSTRUCCIN P HA Aclaracin +nsertar A en el tac! No. CICLOS "

Ejemp!os& LDA 45)T PS9A / A ( 5)/ Acumu!ador ( 5) / Buarda e! 7a!or de! Acumu!ador en !a direcci%n disponi !e de! SnacC6 es decir6 "uarda e! 5) en e! StacC o Pi!a

PS99 & Pone !a parte a!ta de! re"istro 9&X +9- en !a pi!a Descripci%n& Esta instruccin carga la parte alta del registro -ndice +9&X, en la direccin almacenada en el puntero de &ila +9tac:, y el puntero de pila es decrementado para apuntar a la direccin siguiente disponi!le. La operacin reali'ada es la siguiente* +SP- ( 9

SP ( SP A )))5* Sinta.is&
INSTRUCCIN P HH Aclaracin +nsertar H en el tac! No. CICLOS "

Ejemp!os& LD9X 41:2;< PS99 / 9&X ( :2;<*/ 9(:2*6 X(;<* / Buarda e! 7a!or correspondiente a !a parte a!ta de! re"istro 9&X en !a direcci%n disponi !e de! StacC6 es decir6 "uarda e! :2* en e! StacC o Pi!a

PS9X & Pone !a parte

aja de! re"istro 9&X +X- en !a pi!a

Descripci%n& Esta instruccin carga la parte !a a del registro -ndice +9&X, en la direccin almacenada en el puntero de &ila +9tac:, y el puntero de pila es decrementado para apuntar a la direccin siguiente disponi!le. La operacin reali'ada es la siguiente* +SP- ( X SP ( SP A )))5* Sinta.is&
INSTRUCCIN P HX Aclaracin +nsertar X en el tac! No. CICLOS "

Ejemp!os& LD9X 41:2;< PS9X / 9&X ( :2;<*/ / 9(:2*6 X(;<* / Buarda e! 7a!or correspondiente a !a parte aja de! re"istro 9&X en !a direcci%n disponi !e de! StacC6 es decir6 "uarda e! ;<* en e! StacC o Pi!a

PULA & Saca e! Acumu!ador de !a pi!a Descripci%n& Esta instruccin carga en el Acumulador +A, con el valor almacenado en la (ltima direccin apuntada por la &ila +9tac:, y el puntero de pila es incrementado para apuntar a la direccin siguiente. La operacin reali'ada es la siguiente*

A ( +SPSP ( SP 8 )))5*

Sinta.is&
INSTRUCCIN P4LA Aclaracin acar A del tac! No. CICLOS "

Ejemp!os& LDA 45)T PS9A LDA 4:)T PULA / A ( 5)/ Acumu!ador ( 5) / Buarda e! 7a!or de! Acumu!ador en !a direcci%n disponi !e de! SnacC6 es decir6 "uarda e! 5) en e! StacC o Pi!a / A ( :)/ Acumu!ador ( :) /Saca e! D!tima 7a!or a!macenado en !a pi!a $ !o "uarda en e! Acumu!ador6 para e! caso6 A(5)

PUL9 & Saca !a parte a!ta de! re"istro 9&X +9- de !a pi!a Descripci%n& Esta instruccin carga la parte alta del registro -ndice +9&X, con el valor almacenado en la (ltima direccin apuntada por la &ila +9tac:, y el puntero de pila es incrementado para apuntar a la direccin siguiente. La operacin reali'ada es la siguiente* 9 ( +SPSP ( SP 8 )))5* Sinta.is&
INSTRUCCIN P4LH Aclaracin acar H del tac! No. CICLOS "

Ejemp!os& LD9X 41:2;< PS99 / 9&X ( :2;<*/ 9(:2*6 X(;<* / Buarda e! 7a!or correspondiente a !a parte a!ta de! re"istro 9&X en !a direcci%n disponi !e de! StacC6 es decir6 "uarda e! :2* en e! StacC o Pi!a / 9&X ( 3<:)*/ 9(3<*6 X(:)* /Saca e! D!tima 7a!or a!macenado en !a pi!a $ !o "uarda en !a parte a!ta de! re"istro 0ndice +9&X-6 para e! caso6 9(:2*

LD9X 413<:) PUL9

PULX & Saca !a parte

aja de! re"istro 9&X +X- de !a pi!a

Descripci%n& Esta instruccin carga la parte !a a del registro -ndice +9&X, con el valor almacenado en la (ltima direccin apuntada por la &ila +9tac:, y el puntero de pila es incrementado para apuntar a la direccin siguiente. La operacin reali'ada es la siguiente* X ( +SPSP ( SP 8 )))5* Sinta.is&
INSTRUCCIN P4LX Aclaracin acar X del nac! No. CICLOS "

Ejemp!os& LD9X 41:2;< PS9X / 9&X ( :2;<*/ 9(:2*6 X(;<* / Buarda e! 7a!or correspondiente a !a parte aja de! re"istro 9&X en !a direcci%n disponi !e de! StacC6 es decir6 "uarda e! ;<* en e! StacC o Pi!a / 9&X ( 3<:)*/ 9(3<*6 X(:)* /Saca e! D!tima 7a!or a!macenado en !a pi!a $ !o "uarda en !a parte aja de! re"istro 0ndice +9&X-6 para e! caso6 X(;<*

LD9X 413<:) PULX

STA & Buarda e! Acumu!ador en !a memoria Descripci%n& Esta instruccin carga el Acumulador +A, en un registro de propsito general. La operacin reali'ada es la siguiente* +,- ( A # . /egistro o posicin de #emoria Sinta.is&
INSTRUCCIN 5A OPR 5A OPR,X 5A ,X 5A OPR, P Aclaracin OPR = Direccin de memoria o registro X = Registro ndice P = tac! Pointer o A%untador de Pila No. CICLOS 3 4 2 4

Ejemp!os& LDA 45)T / A ( 5)/ Acumu!ador ( 5)

STA 12) LDA 45)T LDX 45 STA 12)6X

/ Buarda en !a direcci%n 2)* e! 7a!or de! Acumu!ador/ Direcci%n 2)* ( 5) / A ( 5) / Acumu!ador ( 5) / X(5 / Car"a en !a direcci%n 25* + 2)* 8 X -6 e! 7a!or presente en e! Acumu!adorE Direcci%n 25*(5)

ST9X & Buarda e! re"istro 0ndice Descripci%n& Esta instruccin carga el valor presente en el /egistro -ndice +9&X, en un registro de propsito general. 1ay que tener en cuenta que el registro 9&X es un registro de 12 !its. 0uando se indica que se desea almacenar 9&X en una posicin de memoria y como los registros son de 3 4its$ en la direccin que se indica en la instruccin +#, se encuentran los 3 !its de m5s peso y en la direccin siguiente +#61, se encuentran los 3 !its de menos peso. La operacin reali'ada es la siguiente* +,&,85- ( 9&X # . 0onstante o valor almacenado en un /egistro o posicin de #emoria Sinta.is&
INSTRUCCIN 5HX OPR Aclaracin Asignar H/X en el registro OPR No. CICLOS &

Ejemp!o& LD9X 41:2;< ST9X 12) / 9&X ( :2;<* +5)3<; d/ A!macena e! 7a!or :2* en !a direcci%n 2)* / A!macena e! 7a!or ;<* en !a direcci%n 25*

STX & Buarda e! re"istro 0ndice X en !a memoria Descripci%n& Esta instruccin carga el registro -ndice +X, en un registro de propsito general. La operacin reali'ada es la siguiente*

+,- ( X # . /egistro o posicin de #emoria Sinta.is&


INSTRUCCIN 5X OPR 5X OPR,X 5X ,X 5X OPR, P Aclaracin OPR = Direccin de memoria o registro X = Registro ndice P = tac! Pointer o A%untador de Pila No. CICLOS 3 & " &

Ejemp!os& LDX 45)T STX 12) LDX 45 STA 12)6X / X ( 5)/ Re"istro 0ndice ( 5) / Buarda en !a direcci%n 2)* e! 7a!or de! re"istro 0ndice +X-/ Direcci%n 2)* ( 5) / X(5 / Car"a en !a direcci%n 25* + 2)* 8 X -6 e! 7a!or presente en e! re"istro 0ndiceE Direcci%n 25*(5

TAP & TransFiere e! Acumu!ador +A- a! Re"istro de c%di"o de condici%n +CCRDescripci%n& Esta instruccin carga el registro de cdigo de condicin +CCR, con el valor almacenado en el Acumulador +A,. El registro CCR es aquel en el que se encuentran las !anderas de Acarreo +C,$ 0ero +G,$ ;egativo +N,$ etc. &ara los que )an programado microcontroladores &80 es el equivalente al registro STATUSE La operacin reali'ada es la siguiente* CCR ( A

Sinta.is&
INSTRUCCIN Aclaracin No. CICLOS

5AP

5rans6erir A al CCR , CCR = A

"

Ejemp!os& LDA H)55))))) / A ( H)55))))) +IJ dTAP / Buarda en e! re"istro CCR6 e! 7a!or presente en e! Acumu!ador +A-/ CCR ( H)55))))) TAX& TrasFiere e! Acumu!ador +A- a! re"istro de 0ndice +XDescripci%n& Esta instruccin carga el registro -ndice +X, con el valor almacenado en el Acumulador +A,. La operacin reali'ada es la siguiente* X(A Sinta.is&
INSTRUCCIN 5AX Aclaracin 5rans6erir A a X ,X=A No. CICLOS 1

Ejemp!os& LDA 4:<T TAX / A ( :< / X ( :<

TPA & TransFiere e! re"istro de c%di"o de condici%n +CCR- a! Acumu!ador +ADescripci%n& Esta instruccin carga el Acumulador +A, con el valor almacenado en el registro de cdigo de condicin +CCR,. El registro CCR es aquel en el que se encuentran las !anderas de Acarreo +C,$ 0ero +G,$ ;egativo +N,$ etc. &ara los que )an programado microcontroladores &80 es el equivalente al registro STATUSE La operacin reali'ada es la siguiente* A ( CCR

Sinta.is&
INSTRUCCIN 5PA Aclaracin 5rans6erir CCR a A 7 A = CCR No. CICLOS 1

Ejemp!os& LDA H)55))))) TAP LDA H5555)))) TPA / A ( H)55))))) +IJ d/ Buarda en e! re"istro CCR6 e! 7a!or presente en e! Acumu!ador +A-/ CCR(H)55))))) / A ( H5555)))) +:?) d/ Buarda en e! Acumu!ador +A-6 e! 7a!or presente en e! re"istro +CCR-/ A(H)55)))))

TSX & TransFiere e! puntero de pi!a a! re"istro de 0ndice +9&XDescripci%n& Esta instruccin carga el registro -ndice +1*<, con el (ltimo valor almacenado en la pila +X, incrementado en 1. La operacin reali'ada es la siguiente* 9&X ( +SP- 8 5 Sinta.is&
INSTRUCCIN 5 X Aclaracin 5rans6erir P a H/X , H/X = P ) 1 No. CICLOS "

Ejemp!os& LDA 413< PS9A TSX / A ( 3<* / SP ( 3<*6 Buarda e! 7a!or de A en !a Pi!a / 9&X ( ))3J* ( 3<* 8 5

TXA & TransFiere e! re"istro de 0ndice +X- a! Acumu!ador +A-

Descripci%n& Esta instruccin carga el Acumulador +A, con el valor almacenado en el registro -ndice +X,. La operacin reali'ada es la siguiente* A(X Sinta.is&
INSTRUCCIN 5XA Aclaracin 5rans6erir X a A ,A=X No. CICLOS 1

Ejemp!os& LDX 43<T TXA / X ( 3< / A ( 3<

TXS& TransFiere e! re"istro de 0ndice +9&X- a! puntero de pi!a Descripci%n& Esta instruccin carga en la &ila el registro -ndice +9&X, decrementado en 1. La operacin reali'ada es la siguiente* +SP- ( 9&X K 5 Sinta.is&
INSTRUCCIN 5X Aclaracin 5rans6erir H/X a P , P = H/X 8 1 No. CICLOS "

Ejemp!os& LD9X 41:2;< TXS / 9&X ( :2;<* / Buarda en !a pi!a e! 7a!or presente en e! re"istro 9&XK5/ +SP- ( :2;<* A 5 ( :2;?*

INSTRUCCIONES LUE ,ANEMAN 'ITS 'CLR n & Pone en cero un it en !a memoria

Descripci%n& Esta instruccin pone en =>? el 4it n del registro +#,. &ara los que )an programado microcontroladores &80 es la instruccin equivalente a 'C=E La operacin reali'ada es la siguiente* +,-n ( ) Sinta.is&

INSTRUCCIN 9CLR n,OPR

Aclaracin 9orrar el ,it n del registro OPR

No. CICLOS &

Ejemp!os& ,O3 4H5555))))612) 'CLR ;612) ,O3 4H5555))))612) 'CLR J612) ,O3 4H5555))))612) 'CLR <612) / Direcci%n 2)* ( H5555)))) / Direcci%n 2)* ( H)555)))) / Direcci%n 2)* ( H5555)))) / Direcci%n 2)* ( H5)55)))) / Direcci%n 2)* ( H5555)))) / Direcci%n 2)* ( H55)5))))

'SET n& Poner en 5 e!

it n

Descripci%n& Esta instruccin pone en =1? el 4it n del registro +#,. &ara los que )an programado microcontroladores &80 es la instruccin equivalente a 'S=. La operacin reali'ada es la siguiente* +,-n ( 5 Sinta.is&
INSTRUCCIN 9 :5 n,OPR Aclaracin Poner en 1 el ,it n del registro OPR No. CICLOS &

Ejemp!os& ,O3 4H5555))))612) 'SET )612) ,O3 4H5555))))612) 'SET 5612) ,O3 4H5555))))612) 'SET :612) / Direcci%n 2)* ( H5555)))) / Direcci%n 2)* ( H5555)))5 / Direcci%n 2)* ( H5555)))) / Direcci%n 2)* ( H5555))5) / Direcci%n 2)* ( H5555)))) / Direcci%n 2)* ( H5555)5))

'IT & 'it de prue a de !a memoria con e! Acumu!ador Descripci%n& Efect(a una comparacin lgica A;" entre dos

cantidades@ la primera cantidad corresponde al Acumulador +/egistro A,$ la segunda cantidad puede ser una constante o un dato

almacenado previamente en un registro y la respuesta no afecta a ninguna de los dos registros. La operacin reali'ada es la siguiente* Comparaci%n ( A N +,# . 0onstante o %alor almacenado en una posicin de #emoria Los (nicos 4its afectados son A y ; as-* N & tomar5 valor 1 si al efectuar la operacin el 4it de m5s peso es =1?$ de lo contrario tomar5 valor =>? G & tomar5 valor =1? si al efectuar la operacin el resultado es >>)$ de lo contrario tomar5 valor =>? Sinta.is&
INSTRUCCIN 9+5 #OPR 9+5 OPR 9+5 OPR,X 9+5 ,X 9+5 OPR, P Aclaracin #OPR = Constante$ OPR = Direccin de memoria o registro X = Registro ndice P = tac! Pointer o A%untador de Pila No. CICLOS " 3 3 " &

Ejemp!os& LDA 4H5)5)5)5) 'IT 4H5555)))) / A . 1>1>1>1> +1B> d,$ Acumulador.1B> / Comparaci%n . A C +1111>>>>,

Entonces Comparaci%n ( 5)5))))) +5J) d- / G()6 N(5 ,O3 41=)612) / Almacena D>) +E7> d, en la direccin 3>) LDA 41)= / A . >D) +1F d, 'IT 12) / Comparaci%n . A C +%alor en direccin 3>), Entonces Comparaci%n ( ))* +) d- / G(56 N() ,O3 41=)612: LDX 4: LDA 41)= AND 12)6X / / / / Almacena D> en la direccin 3E) <.E A . >D) +1F d, Comparaci%n . A C +%alor en direccin 3E),

Entonces Comparaci%n ( ))* +) d- / G(56 N() CLC & Pone en cero e! it de acarreo

Descripci%n& Esta instruccin pone en =>? el 4it de Acarreo presente en el registro +00/,. Esta instruccin puede ser utili'ada para

preparar el 4it de Acarreo antes de utili'ar una instruccin de despla'amiento o rotacin que involucre este 4it. La operacin reali'ada es la siguiente* 'it C ( ) Sinta.is&
INSTRUCCIN CLC Aclaracin 9orrar el 9it de Carr; No. CICLOS 1

Ejemp!o& CLC / Carr$ ( ) it de mascara de !a interrupci%n

CLI & Pone en cero e!

Descripci%n& Esta instruccin pone en =>? el 4it de m5scara de 8nterrupcin presente en el registro +00/,. 0uando este 4it est5 en =>?$ el microcontrolador )a!ilita el servicio de interrupciones. La operacin reali'ada es la siguiente* 'it I ( ) Sinta.is&
INSTRUCCIN CL+ Aclaracin 9orrar el 9it de +nterru%cin No. CICLOS "

Ejemp!o& CLI / ,Oscara de Interrupci%n +I- ( )

SEC & Pone en 5 e!

it de acarreo

Descripci%n& Esta instruccin pone en =1? el 4it de Acarreo presente en el registro +00/,. Esta instruccin puede ser utili'ada para preparar el 4it de Acarreo antes de utili'ar una instruccin de despla'amiento o rotacin que involucre este 4it. La operacin reali'ada es la siguiente* 'it C ( 5 Sinta.is&
INSTRUCCIN :C Aclaracin Colocar el ,it de Carr; en 1 No. CICLOS 1

Ejemp!o& SEC / Carr$ ( 5

SEI & Pone en 5 e!

it de !a mascara de interrupcion

Descripci%n& Esta instruccin pone en =1? el 4it de m5scara de 8nterrupcin presente en el registro +00/,. 0uando este 4it est5 en =1?$ el microcontrolador des)a!ilita el servicio de interrupciones. La operacin reali'ada es la siguiente* 'it I ( 5

Sinta.is&
INSTRUCCIN :+ Aclaracin Colocar el ,it de +nterru%cin en 1 +=1 No. CICLOS "

Ejemp!o& SEI / ,Oscara de Interrupci%n +I- ( 5

INSTRUCCIONES PARA CONTROL DE PROBRA,AS 'CC & Sa!tar si e! it de acarreo esta en )

Descripci%n& Esta instruccin verifica el estado del 4it de Acarreo presente en el registro +00/,. 9i al verificar el estado del 4it est5 en =>?$ el microcontrolador salta a la etiqueta deseada por el usuario. La operacin reali'ada es la siguiente* PC ( PC 8 ))): 8 Direcci%n de Etiqueta6 Si C ( ) Sinta.is&
INSTRUCCIN 9CC :ti<ueta Aclaracin altar a la eti<ueta si el 9it de Carr; es 0 No. CICLOS 3

Ejemp!o& LDA 4:)T SU' 45)T / A . E>$ Acumulador . E> / A . E> G 1>

'CC SALTO5

0omo para el caso A +E>d, es mayor que la segunda cantidad +1>d,$ el resultado de la diferencia es positivo y el 4it de Acarreo +0, toma como valor =>?@ por ello el programa salta a la etiqueta =9ALHI1?$ por de lo contrario$ no se reali'a el salto y se contin(a en la l-nea siguiente.

'CS & Sa!tar si e!

it de acarreo estO en 5

Descripci%n& Esta instruccin reali'a el proceso contrario a la instruccin anterior$ verifica el estado del 4it de Acarreo presente en el registro +00/,. 9i al verificar el estado del 4it est5 en =1?$ el microcontrolador salta a la etiqueta deseada por el usuario. La operacin reali'ada es la siguiente* PC ( PC 8 ))): 8 Direcci%n de Etiqueta6 Si C ( 5 Sinta.is&
INSTRUCCIN 9C :ti<ueta Aclaracin altar a la eti<ueta si el 9it de Carr; es 1 No. CICLOS 3

Ejemp!o& LDA 45)T SU' 4:)T 'CS SALTO5 / A . 1>$ Acumulador . 1> / A . 1> G E> 0omo para el caso A +1>d, es menor que la segunda cantidad +E>d,$ el resultado de la diferencia es negativa y el 4it de Acarreo +0, toma como valor =1?@ por ello el programa salta a la etiqueta =9ALHI1?$ por de lo contrario$ no se reali'a el salto y se contin(a en la l-nea siguiente.

'EL & Sa!tar si es i"ua! Descripci%n& /eali'a un salto a una etiqueta o l-nea definida por el usuario si al efectuar una comparacin entre dos cantidades son iguales. Esta instruccin prue!a el estado del 4it A presente en el registro 00/ y si su estado es =1?$ reali'a el salto a la l-nea esta!lecida. La operacin reali'ada es la siguiente*

PC ( PC 8))): 8 Direcci%n 6 Si G(5

Sinta.is&
INSTRUCCIN 9:= :5+= Aclaracin altar a la eti<ueta si es igual , >=1 No. CICLOS 3

Ejemp!o& LDA 4?)T C,P 4?)T 'EL Sa!to5 / A . 7>$ Acumu!ador . 7> / Compara A con ?) / Si son i"ua!es sa!ta a !a etiqueta PSa!to5Q6 de !o contrario si"ue en !a si"uiente !0nea6 como para e! caso son i"ua!es se produce e! sa!toE

'BE & Sa!tar si es ma$or que o i"ua! a +Operandos con si"noDescripci%n& /eali'a un salto a una etiqueta o l-nea definida por el usuario si al efectuar una comparacin entre dos cantidades da como resultado que la primera cantidad es mayor o igual que la segunda cantidad. 1ay que tener en cuenta que esta instruccin tiene en cuenta los signos presentes en am!as cantidades. La operacin reali'ada es la siguiente* PC ( PC 8))): 8 Direcci%n 6 Si N Sinta.is&
INSTRUCCIN 9?: :5= Aclaracin altar si es Ma;or o +gual No. CICLOS 3

3()

Ejemp!o& LDA 4<)T C,P 4?)T 'BE Sa!to5 / A . F>$ Acumu!ador . F> / Compara A con ?) / Si e! Acumu!ador es ma$or o i"ua! que !a se"unda cantidad sa!ta a !a etiqueta PSa!to5Q6 de !o contrario si"ue en !a si"uiente !0nea6 como para e! caso e ma$or se produce e! sa!toE

'BT & Sa!tar si es ma$or que +Operandos con si"noDescripci%n& /eali'a un salto a una etiqueta o l-nea definida por el usuario si al efectuar una comparacin entre dos cantidades da como

resultado que la primera cantidad es mayor que la segunda cantidad. Esta instruccin reali'a la misma funcin que 418$ con la diferencia de que se tiene en cuenta a la )ora de la verificacin el estado del 4it A o del resultado de la operacin de N ; y % del registro 00/$ si A o N operacin reali'ada es la siguiente* PC ( PC 8))): 8 Direcci%n 6 Si G o N Sinta.is&
INSTRUCCIN 9?5 :5= Aclaracin altar si es Ma;or <ue -O%erandos con igno3 No. CICLOS 3

3 correspondiente a los 4its

3 es 0ero$ se produce el salto. La

3()

Ejemp!o& LDA 4I)T C,P 4?)T 'BT Sa!to5 / A . J>$ Acumu!ador . J> / Compara A con ?) / Si e! Acumu!ador es ma$or que !a se"unda cantidad sa!ta a !a etiqueta PSa!to5Q6 de !o contrario si"ue en !a si"uiente !0nea6 como para e! caso e ma$or se produce e! sa!toE

'9CC & Sa!tar si e!

it de carr$ medio es cero

Descripci%n& Esta instruccin verifica el estado del 4it de Acarreo medio +9, presente en el registro +CCR,. 9i al verificar el estado del 4it est5 en =>?$ el microcontrolador salta a la etiqueta deseada por el usuario. La operacin reali'ada es la siguiente* PC ( PC 8 ))): 8 Direcci%n de Etiqueta6 Si 9 ( ) Sinta.is&
INSTRUCCIN 9HCC :ti<ueta Aclaracin altar a la eti<ueta si el 9it de Carr; Medio es 0 No. CICLOS 3

Ejemp!o& LDA 4H5)))5))) / A . K1>>>5>>>

ADD 4H)5)5)))) / A . A 6 K>1>1)>>> '9CC SALTO5 @I!servese que al efectuar la suma de estas dos cantidades cuando se suman los 4its 3 +!its som!reados, de am!as cantidades se produce un acarreo$ este acarreo es el que se conoce como Acarreo #edio +1,$ como para el caso este acarreo tiene como valor =>?$se produce un salto a la etiqueta =9ALHI1?.

'9CS & Sa!tar si e!

it de carr$ medio es 5

Descripci%n& Esta instruccin verifica el estado del 4it de Acarreo medio +9, presente en el registro +CCR,. 9i al verificar el estado del 4it est5 en =1?$ el microcontrolador salta a la etiqueta deseada por el usuario. La operacin reali'ada es la siguiente* PC ( PC 8 ))): 8 Direcci%n de Etiqueta6 Si 9 ( 5 Sinta.is&
INSTRUCCIN 9HCC :ti<ueta Aclaracin altar a la eti<ueta si el 9it de Carr; Medio es 0 No. CICLOS 3

Ejemp!o& LDA 4H5)))5))) / A . K1>>>5>>> ADD 4H)5)55))) / A . A 6 K>1>15>>> '9CC SALTO5 @I!servese que al efectuar la suma de estas dos cantidades cuando se suman los 4its 3 +!its som!reados, de am!as cantidades se produce un acarreo$ este acarreo es el que se conoce como Acarreo #edio +1,$ como para el caso este acarreo tiene como valor =1?$se produce un salto a la etiqueta =9ALHI1?.

'9I & Sa!tar si es ma$or Descripci%n& /eali'a un salto a una etiqueta o l-nea definida por el usuario si al efectuar una comparacin entre dos cantidades da como resultado que la primera cantidad es mayor que la segunda cantidad. Esta instruccin reali'a la verificacin de acuerdo al estado de los 4its

A o 0 del registro 00/$ si cualquiera de estos dos !its es 0ero$ se produce el salto. La operacin reali'ada es la siguiente* PC ( PC 8))): 8 Direcci%n 6 Si C o G() Sinta.is&
INSTRUCCIN 9H+ :5= Aclaracin altar si es Ma;or No. CICLOS 3

Ejemp!o& LDA 4<)T C,P 4?)T '9I Sa!to5 / A . F>$ Acumu!ador . F> / Compara A con ?) / Si e! Acumu!ador es ma$or que !a se"unda cantidad sa!ta a !a etiqueta PSa!to5Q6 de !o contrario si"ue en !a si"uiente !0nea6 como para e! caso e ma$or se produce e! sa!toE

'9S & Sa!tar si es ma$or o i"ua! Descripci%n& /eali'a un salto a una etiqueta o l-nea definida por el usuario si al efectuar una comparacin entre dos cantidades da como resultado que la primera cantidad es mayor o igual que la segunda cantidad. Esta instruccin reali'a la misma operacin que 4LE pero !as5ndose no en el estado de los 4its ; y % sino en el estado del Acarreo +0,. La operacin reali'ada es la siguiente* PC ( PC 8))): 8 Direcci%n 6 Si C() Sinta.is&
INSTRUCCIN 9H :5= Aclaracin altar si es Ma;or o +gual No. CICLOS 3

Ejemp!o& LDA 4<)T / A . F>$ Acumu!ador . F>

C,P 4?)T '9S Sa!to5

/ Compara A con ?) / Si e! Acumu!ador es ma$or o i"ua! que !a se"unda cantidad sa!ta a !a etiqueta PSa!to5Q6 de !o contrario si"ue en !a si"uiente !0nea6 como para e! caso e ma$or se produce e! sa!toE

'I9 & Sa!tar si e! pin IRL estO en 5 Descripci%n& Esta instruccin verifica el estado del &in 8/M. 9i al verificar el estado del 4it est5 en =1?$ el microcontrolador salta a la etiqueta deseada por el usuario. La operacin reali'ada es la siguiente* PC ( PC 8 ))): 8 Direcci%n de Etiqueta6 Si IRL ( 5 Sinta.is&
INSTRUCCIN 9+H :ti<ueta Aclaracin altar a la eti<ueta si el Pin +R= es 1 No. CICLOS 3

Ejemp!o& 'I9 SALTO5 / Como IRL es un pin de entrada6 esta instrucci%n es mu$ uti! a !a *ora de 7eriFicar su estado/ si en e! momento de ejecuci%n su estado es P5Q6 e! microcontro!ador sa!ta a !a etiqueta PSALTO5Q

'IL & Sa!tar si e! pin IRL estO en ) Descripci%n& Esta instruccin verifica el estado del &in 8/M. 9i al verificar el estado del 4it est5 en =>?$ el microcontrolador salta a la etiqueta deseada por el usuario. La operacin reali'ada es la siguiente* PC ( PC 8 ))): 8 Direcci%n de Etiqueta6 Si IRL ( ) Sinta.is&
INSTRUCCIN 9+L :ti<ueta Aclaracin altar a la eti<ueta si el Pin +R= es 0 No. CICLOS 3

Ejemp!o&

'IL SALTO5 / Como IRL es un pin de entrada6 esta instrucci%n es mu$ uti! a !a *ora de 7eriFicar su estado/ si en e! momento de ejecuci%n su estado es P)Q6 e! microcontro!ador sa!ta a !a etiqueta PSALTO5Q

'LE & Sa!tar si es menor que o i"ua! a +OperOndos con si"noDescripci%n& /eali'a un salto a una etiqueta o l-nea definida por el usuario si al efectuar una comparacin entre dos cantidades da como resultado que la primera cantidad es menor o igual que la segunda cantidad. Esta instruccin reali'a la misma funcin que 4L9$ con la diferencia de que se tiene en cuenta a la )ora de la verificacin el estado del 4it A o del resultado de la operacin de N correspondiente a los 4its ; y % del registro 00/$ si A o N se produce el salto. La operacin reali'ada es la siguiente* PC ( PC 8))): 8 Direcci%n 6 Si G o N 3(5 3 3 es =1?$

Sinta.is&
INSTRUCCIN 9L: :5= Aclaracin altar si es Ma;or <ue -O%erandos con igno3 No. CICLOS 3

Ejemp!o& LDA 4?)T C,P 4I)T 'LE Sa!to5 / A . 7>$ Acumu!ador . 7> / Compara A con I) / Si e! Acumu!ador es menor que !a se"unda cantidad sa!ta a !a etiqueta PSa!to5Q6 de !o contrario si"ue en !a si"uiente !0nea6 como para e! caso e menor se produce e! sa!toE

'LO & Sa!tar si es menor

Descripci%n& /eali'a un salto a una etiqueta o l-nea definida por el usuario si al efectuar una comparacin entre dos cantidades da como resultado que la primera cantidad es menor que la segunda cantidad. Esta instruccin reali'a la verificacin de acuerdo al estado del 4it 0 del registro 00/$ si Nste !it es =1?$ se produce el salto. La operacin reali'ada es la siguiente* PC ( PC 8))): 8 Direcci%n 6 Si C (5 Sinta.is&
INSTRUCCIN 9LO :5= Aclaracin altar si es Menor No. CICLOS 3

Ejemp!o& LDA 4?)T C,P 4<)T 'LO Sa!to5 / A . 7>$ Acumu!ador . 7> / Compara A con <) / Si e! Acumu!ador es menor que !a se"unda cantidad sa!ta a !a etiqueta PSa!to5Q6 de !o contrario si"ue en !a si"uiente !0nea6 como para e! caso e menor se produce e! sa!toE

'LS &Sa!tar si es menor o i"ua! Descripci%n& /eali'a un salto a una etiqueta o l-nea definida por el usuario si al efectuar una comparacin entre dos cantidades da como resultado que la primera cantidad es menor o igual que la segunda cantidad. Esta instruccin reali'a la verificacin de acuerdo al estado de los 4its A o 0 del registro 00/$ si cualquiera de estos dos !its es =1?$ se produce el salto. La operacin reali'ada es la siguiente* PC ( PC 8))): 8 Direcci%n 6 Si C o G(5

Sinta.is&
INSTRUCCIN 9L :5= Aclaracin altar si es Menor o igual No. CICLOS 3

Ejemp!o&

LDA 4?)T C,P 4<)T 'LS Sa!to5

/ A . 7>$ Acumu!ador . 7> / Compara A con <) / Si e! Acumu!ador es menor o i"ua! que !a se"unda cantidad sa!ta a !a etiqueta PSa!to5Q6 de !o contrario si"ue en !a si"uiente !0nea6 como para e! caso e menor se produce e! sa!toE

'LT & Sa!tar si es menor que +OperOndos con si"noDescripci%n& /eali'a un salto a una etiqueta o l-nea definida por el usuario si al efectuar una comparacin entre dos cantidades da como resultado que la primera cantidad es menor que la segunda cantidad. Esta instruccin reali'a la misma funcin que 4LI$ con la diferencia de que se tiene en cuenta a la )ora de la verificacin el resultado de la operacin de N 00/$ si N siguiente* PC ( PC 8))): 8 Direcci%n 6 Si N 3(5 3 correspondiente a los 4its ; y % del registro 3 es =1?$ se produce el salto. La operacin reali'ada es la

Sinta.is&
INSTRUCCIN 9L5 :5= Aclaracin altar si es Menor <ue -O%erandos con igno3 No. CICLOS 3

Ejemp!o& LDA 4;)T C,P 42)T 'LT Sa!to5 / A . B>$ Acumu!ador . B> / Compara A con 2) / Si e! Acumu!ador es menor que !a se"unda cantidad sa!ta a !a etiqueta PSa!to5Q6 de !o contrario si"ue en !a si"uiente !0nea6 como para e! caso e menor se produce e! sa!toE

',C & Sa!tar si !a Descripci%n& Esta

andera de interrupci%n es ) instruccin verifica el estado del 4it de

interrupcin +I, presente en el registro +CCR,. 9i al verificar el estado

del 4it est5 en =)?$ el microcontrolador salta a la etiqueta deseada por el usuario. La operacin reali'ada es la siguiente* PC ( PC 8 ))): 8 Direcci%n de Etiqueta6 Si I ( ) Sinta.is&
INSTRUCCIN 9MC :ti<ueta Aclaracin altar a la eti<ueta si el 9it + del CCR es 0 No. CICLOS 3

Ejemp!o& ',S SALTO5 / Si en e! momento de ejecuci%n su estado es P)Q6 e! microcontro!ador sa!ta a !a etiqueta PSALTO5Q

',I & Sa!tar si es Ne"ati7o Descripci%n& Esta instruccin salta a una etiqueta en particular siempre y cuando despuNs de reali'ar una operacin el resultado sea ;egativo$ refle andose seg(n el estado del 4it de ;egativo +;, presente en el registro +00/,. 9i al verificar el estado del 4it est5 en =1?$ el microcontrolador salta a la etiqueta deseada por el usuario. La operacin reali'ada es la siguiente* PC ( PC 8 ))): 8 Direcci%n de Etiqueta6 Si N ( 5 Sinta.is&
INSTRUCCIN 9M+ :5+= Aclaracin altar si el resultado de una o%eracin es *egati@o No. CICLOS 3

Ejemp!o& LDA 45)T SU' 4:)T ',I SALTO5 / A . 1>$ Acumulador . 1> / A . 1> G E> 0omo para el caso A +1>d, es menor que la segunda cantidad +E>d,$ el resultado de la diferencia es ;egativo y el 4it de ;egativo +;, toma como valor =1?@ por ello el programa salta a la etiqueta =9ALHI1?$ por de lo contrario$ no se reali'a el salto y se contin(a en la l-nea siguiente.

',S & Sa!tar si !a Descripci%n& Esta

andera de interrupci%n es 5 instruccin verifica el estado del 4it de

interrupcin +I, presente en el registro +CCR,. 9i al verificar el estado del 4it est5 en =1?$ el microcontrolador salta a la etiqueta deseada por el usuario. La operacin reali'ada es la siguiente* PC ( PC 8 ))): 8 Direcci%n de Etiqueta6 Si I ( 5

Sinta.is&
INSTRUCCIN 9M :ti<ueta Aclaracin altar a la eti<ueta si el 9it + del CCR es 1 No. CICLOS 3

Ejemp!o& ',S SALTO5 / Si en e! momento de ejecuci%n su estado es P5Q6 e! microcontro!ador sa!ta a !a etiqueta PSALTO5Q

'NE & Sa!tar si no es i"ua! Descripci%n& /eali'a un salto a una etiqueta o l-nea definida por el usuario si al efectuar una comparacin entre dos cantidades no son iguales. Esta instruccin prue!a el estado del 4it A presente en el registro 00/ y si su estado es =>?$ reali'a el salto a la l-nea esta!lecida. La operacin reali'ada es la siguiente* PC ( PC 8))): 8 Direcci%n 6 Si G() Sinta.is&
INSTRUCCIN 9*: :5+= Aclaracin altar a la eti<ueta si no es igual No. CICLOS 3

Ejemp!o& LDA 4?)T C,P 43)T 'NE Sa!to5 / A . 7>$ Acumu!ador . 7> / Compara A con 3) / Si no son i"ua!es sa!ta a !a etiqueta PSa!to5Q6 de !o contrario si"ue en !a si"uiente !0nea6

como para e! caso no son i"ua!es se produce e! sa!toE

'PL & Sa!tar si es positi7o Descripci%n& Esta instruccin salta a una etiqueta en particular siempre y cuando despuNs de reali'ar una operacin el resultado sea &ositivo$ refle andose seg(n el estado del 4it de ;egativo +;, presente en el registro +00/,. 9i al verificar el estado del 4it est5 en =>?$ el microcontrolador salta a la etiqueta deseada por el usuario. La operacin reali'ada es la siguiente* PC ( PC 8 ))): 8 Direcci%n de Etiqueta6 Si N ( ) Sinta.is&
INSTRUCCIN 9PL :5+= Aclaracin altar si el resultado de una o%eracin es Positi@o No. CICLOS 3

Ejemp!o& LDA 4:)T SU' 45)T 'PL SALTO5 / A . E>$ Acumulador . E> / A . E> G 1> 0omo para el caso A +E>d, es mayor que la segunda cantidad +1>d,$ el resultado de la diferencia es positivo y el 4it de ;egativo +;, toma como valor =>?@ por ello el programa salta a la etiqueta =9ALHI1?$ por de lo contrario$ no se reali'a el salto y se contin(a en la l-nea siguiente.

'RA & Sa!to incondiciona! Descripci%n& Esta instruccin permite saltar a una etiqueta o l-nea en especial. La diferencia fundamental con la instruccin 'SR6 es que a travNs de Nsta instruccin se pueden reali'ar saltos a su!rutinas sin posi!ilidad de retorno. 0omo la gran mayor-a de los lectores )an tra!a ado con microcontroladores &80$ esta instruccin es la equivalente a BOTO. La operacin reali'ada es la siguiente*

PC ( PC 8 ))): 8 Direcci%n / Car"a e! PC +contador de Pro"rama-6 con !a direcci%n de inicio de !a su rutina o etiqueta so!icitada Sinta.is&
INSTRUCCIN 9RA :5+= Aclaracin altar a la :ti<ueta siem%re No. CICLOS 3

Ejemp!o&
En el siguiente e emplo se explica un programa que enciende un LE" y luego lo apaga$ para encenderlo se llama a la rutina PLEDRONQ y para apagarlo se llama la rutina PLEDRO==QE /OH8;A 9ALHI1 9ALHIE 'RA 'RA 'RA LE"PI; LE"PIDD /OH8;A @ Llama rutina para encender LE" @ Llama rutina para apagar LE" @ 9alta a etiqueta /OH8;A

@ /utina para Encender un LE" LE"PI; 49EH LE"$&I/H4 'RA 9ALHI1 @ /utina para Apagar un LE" LE"PIDD 40L/ LE"$&I/H4 'RA 9ALHI1

@Encender Led @/etorno

@Apagar Led @/etorno

'RCLR n& Sa!tar si e!

it n es )

Descripci%n& Esta instruccin efectua un salto en particular despuNs de verificar el estado del 4it n del registro de memoria +#,. 9i al verificar el estado del 4it est5 en =>?$ el microcontrolador salta a la etiqueta deseada por el usuario. La operacin reali'ada es la siguiente* PC ( PC 8 )))3 8 Direcci%n de Etiqueta6 Si ,n ( ) Sinta.is&
INSTRUCCIN 9RCLR *,OPR,:5+= Aclaracin altar a la eti<ueta si el ,it * del registro OPR esta en 0 No. CICLOS (

Ejemp!o& ,O3 4H5555))))612) / Direcci%n 2)* ( H5555))))

'RCLR )612)6Sa!to5 / Si e! 'it ) de! re"istro correspondiente a !a direcci%n 2)* estO en P)Q6 se produce un sa!to a !a etiqueta PSa!to5Q / $ como es e! caso6 sa!taSE 'RN & Nunca sa!tar Descripci%n& Esta instruccin nunca permite saltar a una etiqueta o l-nea en especial. &uede ser considerada como la e ecucin de E ;I& con una duracin de 3 ciclos para su e ecucin@ es utill durante el programa de depuracin para negar el efecto de otra instruccin de salto sin pertur!ar el 4yte de despla'amiento. La operacin reali'ada es la siguiente* PC ( PC 8 ))):

Sinta.is&
INSTRUCCIN 9R* :5+= Aclaracin *unca altar a la :ti<ueta No. CICLOS 3

Ejemp!o& LDA 45)T C,P 4:)T 'RN SALTO5 / A . 1>$ Acumulador . 1> / 0ompara 1> con E> / 8ndependiente de la comparacin reali'ada$ ;unca saltar5 a la etiqueta =9ALHI1?$ y continuar5 en la l-ne asiguiente it n es 5

'RSET n& Sa!tar si e!

Descripci%n& Esta instruccin efectua un salto en particular despuNs de verificar el estado del 4it n del registro de memoria +#,. 9i al verificar el estado del 4it est5 en =1?$ el microcontrolador salta a la etiqueta deseada por el usuario. La operacin reali'ada es la siguiente* PC ( PC 8 )))3 8 Direcci%n de Etiqueta6 Si ,n ( 5 Sinta.is&
INSTRUCCIN 9R :5 Aclaracin altar a la eti<ueta si el ,it * del registro OPR esta No. CICLOS (

*,OPR,:5+=

en 1

Ejemp!o& ,O3 4H5555))))612) / Direcci%n 2)* ( H5555)))) 'RCLR ;612)6Sa!to5 / Si e! 'it ; de! re"istro correspondiente a !a direcci%n 2)* estO en P5Q6 se produce un sa!to a !a etiqueta PSa!to5Q / $ como es e! caso6 sa!taSE 'SR & Sa!tar a su rutina Descripci%n& Esta instruccin permite saltar a una 9u!rutina. 0omo la gran mayor-a de los lectores )an tra!a ado con microcontroladores &80$ esta instruccin es la equivalente a 0ALL. La operacin reali'ada es la siguiente* PC SP SP PC ( ( ( ( PC SP SP PC 8 8 8 8 ))): / A7anTa e! PC para ir a !a Direcci%n )))5* / Buarda parte aja de! PCL en !a Pi!a )))5* / Buarda parte a!ta de! PCL en !a Pi!a Direcci%n / Car"a e! PC +contador de Pro"rama-6 con !a direcci%n de inicio de !a su rutina so!icitada

Sinta.is&
INSTRUCCIN 9 R :5+= Aclaracin altar a u,rutina No. CICLOS &

Ejemp!o&
En el siguiente e emplo se explica un programa que enciende un LE" y luego lo apaga$ para encenderlo se llama a la rutina PLEDRONQ y para apagarlo se llama la rutina PLEDRO==QE /OH8;A 'SR 'SR 'RA LE"PI; LE"PIDD /OH8;A @ Llama rutina para encender LE" @ Llama rutina para apagar LE" @ 9alta a etiqueta /OH8;A

@ /utina para Encender un LE" LE"PI; 49EH LE"$&I/H4 /H9 @ /utina para Apagar un LE" LE"PIDD 40L/ LE"$&I/H4 /H9

@Encender Led @ /etorno de 9u!rutina

@Apagar Led @/etorno de 9u!rutina

C'EL & Compara $ sa!ta si es i"ua! Descripci%n& /eali'a una comparacin entre dos cantidades@ La primera cantidad corresponde al valor que se encuentra almacenado en el Acumulador +A, o el registro -ndice +X,$ la segunda cantidad puede ser una constante o un dato almacenado previamente en un registro@ si al efectuar la comparacin las dos cantidades resultan iguales se produce un salto a una l-nea o etiqueta en especial definida por el usuario . La operacin reali'ada es la siguiente* Comparaci%n ( A A +,% Comparaci%n ( X A +,PC ( PC 8)))3 8 Direcci%n Si e! resu!tado de !a comparaci%n es ) SALTA # . 0onstante o %alor almacenado en un registro o posicin de #emoria Sinta.is&
INSTRUCCIN C9:= OPR,:5+= C9:=A #OPR,:5+= C9:=X #OPR,:5+= C9:= OPR,X),:5+= C9:= X),:5+= C9:= OPR, P,:5+= Aclaracin Com%arar el @alor de A con el @alor #OPR o el dato almacenado en OPR ; saltar si son iguales a la eti<ueta X) = Registro H/X No. Ciclos ( & & ( & (

Ejemp!os& LDA 4?)T / A . 7>$ Acumu!ador . 7> C'ELA 43)T6Sa!to5 / Compara ?) con 3) si son i"ua!es sa!ta a !a etiqueta PSa!to5Q6 de !o contrario si"ue en !a si"uiente !0nea

LDA ,O3 C'EL

4?)T 4?)T612) 12)6Sa!to5

/ A . 7>$ Acumu!ador . 7> /Direcci%n 2)* ( ?) / Compara e! 7a!or presente en e! Acumu!ador con e! 7a!or presente en !a direcci%n 2)* si son i"ua!es sa!ta a !a etiqueta PSa!to5Q6 de !o contrario si"ue en !a si"uiente !0nea6 como para e! caso son i"ua!es SALTAS

D'NG & Decrementa $ sa!ta si no es cero Descripci%n& Esta funcin como su nom!re lo indica$ decrementa en 1 el valor presente en una varia!le$ ya sea el Acumulador +A,$ el registro -ndice +<, o una posicin de memoria +#,$ con la singularidad de que adem5s de efectuar el decremento de la varia!le reali'a una comparacin del resultado o!tenido con 0E/I@ 9i al efectuar la comparacin del resultado con 0ero no son iguales efectua un salto a una etiqueta o l-nea en especial definida por el usuario. La operacin reali'ada es la siguiente* A(AA5 % X(XA5 % +,- ( +,- A 5 Compara resu!tado con ) $ si no es i"ua! SALTA # . %alor almacenado en un registro o posicin de #emoria Sinta.is&
INSTRUCCIN D9*> OPR,:5+= D9*>A :5+= D9*>X :5+= D9*> OPR,X,:5+= D9*> X,:5+= D9*> OPR, P,:5+= Aclaracin No. CICLOS ( 3 3 ( & (

Decrementar ; saltar si no es Cero

Ejemp!os&

LDA 4?)T D'NGA SALTO5

/ A . ?)$ / A ( A A 5 ( 3I6 compara A con ) $ como no son i"ua!es sa!ta a !a etiqueta PSALTO5Q

,O3 4?)T612) / Direcci%n 2)* . ?)$ D'NG 12)6 SALTO5 / Direcci%n 2)*(Direcci%n 2)* A 5 ( 3I6 compara e! 7a!or a!macenado en !a Direcci%n 2)* con ) $ como no son i"ua!es sa!ta a !a etiqueta PSALTO5Q

M,P & Sa!tar Descripci%n& Esta instruccin permite saltar a una etiqueta o l-nea en especial. La diferencia fundamental con la instruccin 'RA6 es que a travNs de Nsta instruccin se pueden reali'ar saltos m5s largos a su!rutinas sin posi!ilidad de retorno. 0omo la gran mayor-a de los lectores )an tra!a ado con microcontroladores &80$ esta instruccin es la equivalente a BOTO. La operacin reali'ada es la siguiente* PC ( PC 8 Direcci%n / Car"a e! PC +contador de Pro"rama-6 con !a direcci%n de inicio de !a su rutina o etiqueta so!icitada Sinta.is&
INSTRUCCIN AMP OPR AMP OPR,X AMP ,X Aclaracin altar a la direccin OPR No. CICLOS " 3 "

Ejemp!o&
En el siguiente e emplo se explica un programa que enciende un LE" y luego lo apaga$ para encenderlo se llama a la rutina PLEDRONQ y para apagarlo se llama la rutina PLEDRO==QE /OH8;A 9ALHI1 9ALHIE M,P M,P 4/A LE"PI; LE"PIDD /OH8;A @ Llama rutina para encender LE" @ Llama rutina para apagar LE" @ 9alta a etiqueta /OH8;A

@ /utina para Encender un LE"

LE"PI;

49EH

LE"$&I/H4 M,P 9ALHI1

@Encender Led @/etorno

@ /utina para Apagar un LE" LE"PIDD 40L/ LE"$&I/H4 M,P 9ALHIE

@Apagar Led @/etorno

INSTRUCCIONES ARIT,UTICAS V LWBICAS ADC & Suma con Acarreo Descripci%n& Efect(a la suma de dos cantidades incluyendo en la suma el valor presente en el 4it de 0arry@ la primera cantidad corresponde al Acumulador +/egistro A,$ la segunda cantidad puede ser una constante o un dato almacenado previamente en un registro y la respuesta queda almacenada en el registro Acumulador. La operacin reali'ada es la siguiente* A(A8+,-8C # . 0onstante o %alor almacenado en una posicin de #emoria 0 . 0arry o Acarreo Sinta.is&
INSTRUCCIN ADC #OPR ADC OPR ADC OPR,X ADC ,X ADC OPR, P Aclaracin #OPR = Constante$ OPR = Direccin de memoria o registro X = Registro ndice P = tac! Pointer o A%untador de Pila No. CICLOS " 3 3 " &

Ejemp!os& LDA 45)T / A . 1> $ 0arga el valor de 1> en el Acumulador ADC 4:)T / A.A6E>60 $ 9uma A con E> y con el 0arry Si C (5 entonces A ( 5) 8 :) 8 5 ( 35 Si C () entonces A ( 5) 8 :) 8 ) ( 3) ,O3 45)T612) / Almacena el valor 1> en la direccin 3>) LDA 4:)T / A . E> ADC 12) / A.A6+%alor almacenado en direccin 3>),60 Si C (5 entonces A ( :) 8 5) 8 5 ( 35

Si C () entonces A ( :) 8 5) 8 ) ( 3) ,O3 45)T6125 / Almacena el valor 1> en la direccin 31) LDX 45 / <.1 LDA 4:)T / A . E> ADC 12)6X / A.A6+%alor almacenado en direccin 3>)6<,60 Si C (5 entonces A ( :) 8 5) 8 5 ( 35 Si C () entonces A ( :) 8 5) 8 ) ( 3)

ADD & Suma sin Acarreo Descripci%n& Efect(a la suma de dos cantidades sin incluir en la suma el valor presente en el 4it de 0arry@ la primera cantidad corresponde al Acumulador +/egistro A,$ la segunda cantidad puede ser una constante o un dato almacenado previamente en un registro y la respuesta queda almacenada en el registro Acumulador. La operacin reali'ada es la siguiente* A(A8+,# . 0onstante o %alor almacenado en un registro o posicin de #emoria Sinta.is&
INSTRUCCIN ADD #OPR ADD OPR ADD OPR,X ADD ,X ADD OPR, P Aclaracin #OPR = Constante, %or eBem%lo #105 7 10 Decimal OPR = Direccin de memoria o registro X = Registro ndice P = tac! Pointer o A%untador de Pila No. CICLOS " 3 3 " &

Ejemp!os& LDA 45)T ADD 4:)T / A . 1> $ 0arga el valor de 1> en el Acumulador / A.A6E> $ 9uma A con E>

Entonces A ( 5) 8 :) ( 3) ,O3 41)A612) / Almacena el valor >A) +1>d, en la direccin 3>) LDA 4:)T / A . E> ADD 12) / A.A6+%alor almacenado en direccin 3>), Entonces A ( :) 8 5) ( 3)

,O3 45)T6125 / Almacena el valor 1> en la direccin 31) LDX 45 / <.1 LDA 4:)T / A . E> ADD 12)6X / A.A6+%alor almacenado en direccin 3>)6<, Entonces A ( :) 8 5) ( 3)

AND& =unci%n !%"ica AND Descripci%n& Efect(a la funcin lgica A;" entre dos cantidades@ la primera cantidad corresponde al Acumulador +/egistro A,$ la segunda cantidad puede ser una constante o un dato almacenado previamente en un registro y la respuesta queda almacenada en el registro Acumulador. La operacin reali'ada es la siguiente* A ( A N +,# . 0onstante o %alor almacenado en un registro o posicin de #emoria Sinta.is&
INSTRUCCIN A*D #OPR A*D OPR A*D OPR,X A*D ,X A*D OPR, P Aclaracin #OPR = Constante OPR = Direccin de memoria o registro X = Registro ndice P = tac! Pointer o A%untador de Pila No. CICLOS " 3 3 " &

Ejemp!os& LDA 4H5)5)5)5) AND 4H5555)))) / A . 1>1>1>1> +1B> d,$ Acumulador.1B> / A . A C +1111>>>>,

Entonces A ( 5)5))))) +5J) d,O3 41=)612) / Almacena D>) +E7> d, en la direccin 3>) LDA 41)= / A . >D) +1F d, AND 12) / A . A C +%alor almacenado en direccin 3>), Entonces A ( ))* +) d,O3 41=)612: / Almacena D> en la direccin 3E)

LDX 4: LDA 41)= AND 12)6X

/ <.E / A . >D) +1F d, / A . A C +%alor almacenado en direccin 3E),

Entonces A ( ))* +) dAIS & Suma e! 7a!or inmediato a! puntero de pi!a con si"no Descripci%n& Efect(a la suma entre dos cantidades@ la primera cantidad corresponde al valor inmediato al puntero de pila +9& 9tac: &ointer,$ la segunda cantidad de!e ser una constante y la respuesta queda almacenada en el puntero de pila como valor inmediato. La operacin reali'ada es la siguiente* SP ( SP 8 +ConstanteSinta.is&
INSTRUCCIN A+ #OPR Aclaracin P= P)DA5O No. CICLOS "

Ejemp!o& LDA 45)T PS9A AIS 4:)T PULA / / / / A . 1>$ Acumulador . 1> 8nserta A en el 9tac: o &ila$ 9& . 1> SP ( SP 8 :) ( 3) 9aca el (ltimo valor del 9tac: y lo guarda en A

Entonces A ( 3) AIX & Suma e! 7a!or inmediato a! re"istro de 0ndice con si"no Descripci%n& Efect(a la suma entre dos cantidades@ la primera cantidad corresponde al valor inmediato al registro -ndice 1*<$ considerando que al efectuar Nsta suma se tiene en cuenta el signo de las cantidades a sumar@ la segunda cantidad de!e ser una constante y la respuesta queda almacenada en el registro -ndice 1*< como valor inmediato. La operacin reali'ada es la siguiente* 9&X ( 9&X 8 +ConstanteSinta.is&

INSTRUCCIN A+X #OPR

Aclaracin H/X = H/X ) DA5O

No. CICLOS "

Ejemp!o& LD9X 45)T AIX 4:)T / 9&X . 1>$ Re"istro 0ndice 9&X . 1> / 9&X ( 9&X 8 :) ( 3)

Entonces 9&X ( 3)

ASL & Desp!aTamiento Aritm#tico a !a ITquierda Descripci%n& Efect(a un despla'amiento aritmNtico a la i'quierda. Este tipo de despla'amiento consiste en rotar a la i'quierda todo el registro una posicin$ quedando el 4it que se encontra!a en la posicin de m5s peso +4it B, en el 4it de 0arry y el 4it menos peso +4it >, ser5 llenado con un >$ tal como se ilustra a continuacin.

Sinta.is&
INSTRUCCIN A L OPR A LA A LX A L OPR,X A L,X A L OPR, P Aclaracin OPR = Direccin de Memoria o Registro A = Acumulador X = Registro ndice No. CICLOS & 1 1 & 3 (

P = tac! Pointer

Ejemp!o& LDA 4H5)5)5)5) / A . 1>1>1>1> +1B> d,$ Acumulador.1B> ASLA / A . )5)5)5)) / Carr$ ( 5 Entonces A ( )5)5)5)) +2? dI!sNrvese que en el e emplo$ el valor inicial cargado en el Acumulador fue el 1>1>1>1> !inario y al reali'ar la rotacin a la i'quierda el =1? que se encontra!a en el 4it B$ paso al 4it de 0arry$ todos los !its se trasladaron una posicin a la i'quierda y el 4it > o 4it de menos peso tomo el valor > por corresponder a un despla'amiento aritmNtico.

ASR & Desp!aTamiento aritm#tico a !a derec*a Descripci%n& Efect(a un despla'amiento aritmNtico a la derec)a. Este tipo de despla'amiento consiste en rotar a la derec)a todo el registro una posicin$ quedando el 4it que se encontra!a en la posicin de menos peso +4it >, en el 4it de 0arry y el 4it m5s peso +4it B, ser5 llenado de manera consecutiva con el mismo valor que ten-a inicialmente$ tal como se ilustra a continuacin.

Sinta.is&
INSTRUCCIN A R OPR A RA A RX A R OPR,X A R OPR, P Aclaracin OPR = Direccin de Memoria o Registro A = Acumulador X = Registro ndice P = tac! Pointer No. CICLOS & 1 1 & (

Ejemp!o& LDA 4H5)5)5)5) / A . 1>1>1>1> +1B> d,$ Acumulador.1B> ASRA / A . 11>1>1>1 / Carr$ ( ) Entonces A ( 55)5)5)5 +:53 dI!sNrvese que en el e emplo$ el valor inicial cargado en el Acumulador fue el 1>1>1>1> !inario y al reali'ar la rotacin a la redec)a el =>? que se encontra!a en el 4it >$ paso al 4it de 0arry$ todos los !its se trasladaron una posicin a la derec)a y el 4it B o 4it de m5s peso tomo nuevamente el valor que ten-a antes de la rotacin.

C,P & Compara e! Acumu!ador con !a memoria Descripci%n& /eali'a una comparacin entre dos cantidades@ La primera cantidad corresponde al valor que se encuentra almacenado en el Acumulador +A,$ la segunda cantidad puede ser una constante o un dato almacenado previamente en un registro y la respuesta queda disposicin del usuario$ seg(n lo que desee sa!er al respecto de Nsta operacin$ por e emplo$ si una cantidad es mayor$ menor o igual que la otra$ entre otras preguntas que se pueden formular. La operacin reali'ada es la siguiente* Comparaci%n ( A A +,# . 0onstante o %alor almacenado en un registro o posicin de #emoria Sinta.is&
INSTRUCCIN CMP #OPR CMP OPR CMP OPR,X CMP ,X CMP OPR, P Aclaracin #OPR = Constante OPR = Direccin de Memoria o Registro X = Registro ndice P = tac! Pointer No. CICLOS " 3 3 " &

Ejemp!os& LDA 45)T C,P 4:)T / A . 1>$ Acumulador . 1> / Compara 5) con :)

Entonces 0omparacin . 1> Q E>$ a)ora se pregunta lo que desea conocer el programador con respecto a la comparacin de Nstas dos cantidades$ por e emplo$ si se quiere que el programa salte a una etiqueta llamada =#enor? cuando la cantidad que est5 en el Acumulador +A, sea menor que la cantidad con la que se reali'o la comparacin. "e!a o de la l-nea de comparacin se coloca la condicin de salto seg(n el resultado tal como se ilustra a continuacin* LDA 45)T / A . 1>$ Acumulador . 1>

C,P 4:)T 'LO ,enor

/ 0ompara 1> con E> 0omo para el caso A +1>d, es menor que la cantidad con la que se comparo +E>d,$ el programa salta a la etiqueta =#enor?$ de lo contrario$ no se reali'a el salto y se contin(a en la l-nea siguiente.

,O3 41)A612) / Almacena >A) +1> d, en la direccin 3>) LDA 41)= / A . >D) +1F d, C,P 12) 0ompara el contenido de la direccin 3>) +>A), con el valor almacenado en el Acumulador +>D), '9I ,a$or 0omo para el caso el Acumulador A +1Fd, es mayor que la cantidad con la que se comparo +1>d,$ el programa salta a la etiqueta =#ayor?$ de lo contrario$ no se reali'a el salto y se contin(a en la l-nea siguiente. CO, & Comp!emento a uno Descripci%n& /eempla'a el contenido del Acumulador +A,$ el registro -ndice +<,$ o el registro de memoria +#, con su complemento a uno. Este complemento consiste en reempla'ar cada 4it perteneciente al registro correspondiente por su respectivo complemento$ es decir$ que todos los !its que se encontra!an en el registro con valor =1? tendr5n como nuevo valor =>? y que todos los !its que se encontra!an en el registro con valor =>? tendr5n como nuevo valor =1?. La operacin correspondiente a tal complemento es la siguiente* A ( :<< A A % +,- ( ==* K +,- / +,- ( :<< K +,% X ( ==* A X / X ( :<< K X # . %alor almacenado en un registro o posicin de #emoria Sinta.is&
INSTRUCCIN COM OPR COMA COMX COM OPR,X COM ,X COM OPR, P Aclaracin OPR = Direccin de Memoria o Registro A = Acumulador X = Registro ndice No. CICLOS & 1 1 & 3 (

A ( ==* A A /

P = tac! Pointer

Ejemp!os& LDA 4H5555)))) CO,A / A . 1111>>>> +E7> d, / A ( :<< A :?) ( 5< ( )=*

Entonces A ( )=* ( ))))5555 I!sNrvese en el e emplo que el valor inicial del Acumulador era 1111>>>> E7>d y al efectuar la operacin de complemento a uno$ el resultado fue >>>>1111 1Fd lo cual ilustra que todos los !its que ten-an valor =1? tomaron como nuevo valor =>? y viceversa. ,O3 45;)612) / Almacena el valor 1B>d en la direccin 3>) CO, 12) /eali'a el complemento a uno del valor existente en la direccin 3>) Entonces$ el nuevo valor almacenado en la direccin 3>) de la memoria ser5* Nue7o 3a!or ( :<< A 5;) ( 2< 9i se anali'a un poco$ se puede o!servar que 1B>d es 1>1>1>1> y 3Fd es >1>1>1>1$ lo cual concuerda con lo mencionado en el e emplo anterior. CP9X & Compara e! 7a!or de! re"istro 9&X con !a memoria Descripci%n& /eali'a una comparacin entre dos cantidades@ La primera cantidad corresponde al valor que se encuentra almacenado en el registro -ndice +1*<, considerando que el registro 1*< es un registro de 12 4its$ la segunda cantidad puede ser una constante o un dato almacenado previamente en un registro y la respuesta queda disposicin del usuario$ seg(n lo que desee sa!er al respecto de Nsta operacin$ por e emplo$ si una cantidad es mayor$ menor o igual que la otra$ entre otras preguntas que se pueden formular. La operacin reali'ada es la siguiente* Comparaci%n ( 9&X A +,# . 0onstante o %alor almacenado en un registro o posicin de #emoria

Sinta.is&
INSTRUCCIN CPHX #OPR CPHX OPR Aclaracin #OPR = Constante OPR = Direccin de Memoria o Registro No. CICLOS 3 &

Ejemp!os& LD9X 4?)T CP9X 43)T / 9&X . 7>$ Re"istro Xndice . 7> / Compara ?) con 3)

Entonces 0omparacin . 7> Q 3>$ a)ora se pregunta lo que desea conocer el programador con respecto a la comparacin de Nstas dos cantidades$ por e emplo$ si se quiere que el programa salte a una etiqueta llamada =#ayor? cuando la cantidad que est5 en el /egistro Rndice +1*<, sea mayor que la cantidad con la que se reali'o la comparacin. "e!a o de la l-nea de comparacin se coloca la condicin de salto seg(n el resultado tal como se ilustra a continuacin* LD9X 4?)T CP9X 43)T '9I ,a$or / 9&X . 7>$ Re"istro Xndice . 7> / Compara ?) con 3) 0omo para el caso 1*< +7>d, es menor que la cantidad con la que se comparo +3>d,$ el programa salta a la etiqueta =#enor?$ de lo contrario$ no se reali'a el salto y se contin(a en la l-nea siguiente.

,O3 41)=612) / Almacena >D) +1F d, en la direccin 3>) LD9X 41)A / 9&X . >A) +1> d, CP9X 12) 0ompara el contenido de la direccin 3>) +>D), con el valor almacenado en el /egistro Rndice +>A), 'LO ,enor 0omo para el caso 1*< +1>d, es menor que la cantidad con la que se comparo +1Fd,$ el programa salta a la etiqueta =#enor?$ de lo contrario$ no se reali'a el salto y se contin(a en la l-nea siguiente.

CPX & Compara e! 7a!or de! re"istro X con !a memoria Descripci%n& /eali'a una comparacin entre dos cantidades@ La primera cantidad corresponde al valor que se encuentra almacenado

en el registro -ndice +<, considerando que el registro < es un registro de 3 4its a diferencia de la instruccin anterior que era de 12 4its$ la segunda cantidad puede ser una constante o un dato almacenado previamente en un registro y la respuesta queda disposicin del usuario$ seg(n lo que desee sa!er al respecto de Nsta operacin$ por e emplo$ si una cantidad es mayor$ menor o igual que la otra$ entre otras preguntas que se pueden formular. La operacin reali'ada es la siguiente* Comparaci%n ( X A +,# . 0onstante o %alor almacenado en un registro o posicin de #emoria Sinta.is&

INSTRUCCIN CPX #OPR CPX OPR CPX ,X CPX OPR,X CPX OPR, P

Aclaracin #OPR = Constante OPR = Direccin de Memoria o Registro X = Registro ndice P = tac! Pointer

No. CICLOS
" 3 3 " &

Ejemp!o& LDX 4?)T CPX 43)T / X . 7>$ Re"istro Xndice . 7> / Compara ?) con 3)

9e de!e tener en cuenta que para esta instruccin el procedimiento de comparacin es seme ante a los mencionados anteriormente con las instrucciones C,P $ CP9XE

DAA & Ajuste decima! de! Acumu!ador Descripci%n& 0uando se efect(a una suma de dos cantidades utili'ando instrucciones como A"" y A"0$ muc)as veces es necesario

seg(n el proceso que se desee reali'ar un a uste a "ecimal. Las cantidades con las que se reali'o la operacin est5n en formato 40" +"ecimal 0odificado en 4inario,. Esta instruccin a usta tanto el contenido del Acumulador +A, como el estado del 4it de Acarreo medio +00/, despuNs de reali'ada una suma. Sinta.is&

INSTRUCCIN DAA

Aclaracin ABustar a decimal el registro A

No. CICLOS
"

&ara entender me or este tipo de a uste$ es necesario tener en cuenta la siguiente ta!la$ la cual es aplicada seg(n los resultados o!tenidos en el Acumulador despuNs de reali'ar una suma en formato 40"E

I!servando la ta!la anterior se puede esta!lecer que* La columna 1 corresponde al valor inicial del 4it 0 o Acarreo$ este acarreo proviene de operaciones anteriormente reali'adas@ puede tener como valor tanto =>? como =1?. La columna 3 0orresponde al 4it de Acarreo medio$ el cual puede tomar valores de =>? y =1? seg(n el resultado de una suma$ teniendo en cuenta que este acarreo aparece entre los 4its 3 y 7 del registro Acumulador. La columna 2 corresponde al Acarreo final$ el cual puede tam!iNn tomar valores de =>? y =1?$ este acarreo tomara valor =1? cuando en el momento de reali'ar el a uste la suma sea mayor a JJ

Las columnas E y 7 corresponden a los cuatro 4its de mas peso y a los cuatro !its de menos peso del registro Acumulador respectivamente. La columna F o!edece a unos valores que se suman al resultado o!tenido seg(n los valores presentes en los cuatro !its de mas y menos peso para )acer efectivo el a uste a 40". Ejemp!os& LDA 41:2 ADD 41:: Como :2* 8 ::* ?A* / A . E3) o A.E3 +40", / A.A6EE) $ 9uma A con EE) o EE +40", Pero :2 8 :: <) instrucci%n DAA despu#s de !a

entonces ap!icamos !a instrucci%n de suma asi& LDA 41:2 ADD 41:: DAA

/ A . E3) o A.E3 +40", / A.A6EE) $ 9uma A con EE) o EE +40",

Al efectuar la suma utili'ando la instruccin A""$ en el Acumulador quedo almacenado el valor 7A) +A.7A),$ pero al momento de e ecutar la instruccin "AA o!servamos que* ?A* Se descompone de !a si"uiente manera& ? & 'its de mas peso A & 'its de menos peso 9eg(n la ta!la anterior$ el valor de correccin seria el correspondiente al presente en la segunda fila. Esto o!edece a que los cuatro !its de mas peso tienen un valor entre >G3 y los cuatro !its de menos peso tienen un valor entre AGD. Aplicando el factor de correccin a 40" +>2, se tiene que* Sumando ?A* !o que corresponde a 8 )J* 8 <)* :2 :: <) +'CD-

1ay que tener en cuenta que este factor de correccin es aplicado autom5ticamente por la instruccin "AA seg(n el resultado o!tenido en el Acumulador al reali'ar la suma de dos cantidades. Lo cual indica

que al e ecutar la instruccin "AA en el Acumulador queda el valor corregido y a ustado a formato 40" tal como se ilustra a continuacin LDA 41:2 ADC 41:: DAA / A . E3) o A . E3 +40", / A . A 6 EE) @ A . 7A) / A ( <)* es decir A ( <) +'CD-

DEC & Decremento Descripci%n& Esta funcin como su nom!re lo indica$ decrementa en 1 el valor presente en una varia!le$ ya sea el Acumulador +A,$ el registro -ndice +<,$ o una posicin de memoria +#,. La operacin reali'ada es la siguiente* A(AA5 % X(XA5 % +,- ( +,- A 5 # . %alor almacenado en un registro o posicin de #emoria

Sinta.is&
INSTRUCCIN D:C OPR D:CA D:CX D:C OPR,X D:C ,X D:C OPR, P Aclaracin OPR = Direccin de Memoria o Registro A = Acumulador X = Registro ndice No. CICLOS & 1 1 & 3 (

P = tac! Pointer

Ejemp!os& LDA 4?)T DECA LDX 4:)T DECX / A . 7>$ / A ( A A 5 ( 3I / X . E>$ / X ( X A 5 ( 5I

DI3 & Di7isi%n Descripci%n& Esta funcin reali'a la divisin sin signo entre dos cantidades@ la primera cantidad corresponde a un n(mero de 12 !its$ de los cuales los 3 !its de m5s peso se almacenan en el registro 9 o parte alta del registro -ndice +9&X- y los 3 !its de menos peso se registran en el Acumulador +/egistro A,$ quedando el dividendo en el registro +9&A-$ la segunda cantidad corresponde al divisor y es almacenado en el registro -ndice +X-$ lo cual indica que el divisor tiene una longitud m5xima de 3 !its. La respuesta a la operacin de divisin queda almacenada en el registro Acumulador +A-$ es decir$ el cociente queda almacenado all- y finalmente el residuo queda almacenado en el registro +9- o parte alta del registro -ndice +9&X-. La operacin reali'ada es la siguiente* A ( +9&A- Y +XSinta.is&
INSTRUCCIN D+' Aclaracin Di@idir A=-H/A3CX -A = Cociente , H = Residuo3 No. CICLOS 2

/ +9- ( Residuo

Ejemp!o& 9e desea reali'ar la divisin entre dos cantidades 1>>>> +"ie' #il, y E>> +"oscientos,. Al convertir 5))))d en )exadecimal +:;5)*- se puede o!servar que los 3 !its de m5s peso corresponden al valor +:;*- y los 3 de menos peso corresponden al valor +5)*-E Este valor 1>) se encuentra en el registro +X- y de!e ser almacenado en el Acumulador +A-@ finalmente en el registro +X- se de!e almacenar el valor :))d correspondiente al divisor. El proceso entonces es el siguiente* LD9X 45))))T TXA LDX 4:))T DI3 / / / / 9&X ( 5))))6 9 ( :;* $ X ( 5)* A ( X 6 A ( 5)* KZ 9&A ( :;5)* X ( :)) Di7idir A ( +9&A-YX +A ( Cociente6 9 ( Residuo-

E! resu!tado de !a operaci%n es& A ( <) $ 9 ( )

EOR & =unci%n !%"ica OR E.c!usi7a Descripci%n& Efect(a la funcin lgica I/ Exclusiva entre dos cantidades@ la primera cantidad corresponde al Acumulador +/egistro A,$ la segunda cantidad puede ser una constante o un dato almacenado previamente en un registro y la respuesta queda almacenada en el registro Acumulador. La operacin reali'ada es la siguiente* A(A +,-

# . 0onstante o %alor almacenado en un registro o posicin de #emoria Sinta.is&


INSTRUCCIN :OR #OPR :OR OPR :OR OPR,X :OR ,X :OR OPR, P Aclaracin #OPR = Constante OPR = Direccin de memoria o registro X = Registro ndice P = tac! Pointer o A%untador de Pila No. CICLOS " 3 3 " &

;ota* Ono de los usos de esta funcin es a la )ora de comparar dos cantidades$ si al efectuar la funcin I/ Exclusiva entre las dos cantidades el resultado es 0ero$ se puede decir que las dos cantidades son IBUALESE Ejemp!os& LDA 4H5)5)5)5) EOR 4H5)5)5)5) / A . 1>1>1>1> +1B> d,$ Acumulador.1B> /A.A +1111>>>>, ( ))))))))

Entonces A ( )))))))) +) d,O3 41=)612) / Almacena D>) +E7> d, en la direccin 3>) LDA 41)= / A . >D) +1F d, EOR 12) /A.A +%alor almacenado en direccin 3>), Entonces A ( ==* +:<< d-

,O3 41=)612: LDX 4: LDA 41)= AND 12)6X

/ / / /

Almacena D> en la direccin 3E) <.E A . >D) +1F d, A.A +%alor almacenado en direccin 3E),

Entonces A ( ==* +:<< d-

INC & Incrementar Descripci%n& Esta funcin como su nom!re lo indica$ incrementa en 1 el valor presente en una varia!le$ ya sea el Acumulador +A,$ el registro -ndice +<,$ o una posicin de memoria +#,. La operacin reali'ada es la siguiente* A(A85 % X(X85 % +,- ( +,- 8 5 # . %alor almacenado en un registro o posicin de #emoria Sinta.is&
INSTRUCCIN +*C OPR +*CA +*CX +*C OPR,X +*C ,X +*C OPR, P Aclaracin OPR = Direccin de Memoria o Registro A = Acumulador X = Registro ndice No. CICLOS & 1 1 & 3 (

P = tac! Pointer

Ejemp!os& LDA 4?)T INCA LDX 4:)T INCX / A . 7>$ / A ( A 8 5 ( ?5 / X . E>$ / X ( X 8 5 ( :5

LSL & Desp!aTamiento !%"ico a !a iTquierda

Descripci%n& Efect(a un despla'amiento lgico a la i'quierda$ este tipo de despla'amiento es exactamente igual al despla'amiento aritmNtico a la i'quierda. 0onsiste en rotar a la i'quierda todo el registro una posicin$ quedando el 4it que se encontra!a en la posicin de m5s peso +4it B, en el 4it de 0arry y el 4it menos peso +4it >, ser5 llenado con un >$ tal como se ilustra a continuacin.

Sinta.is&
INSTRUCCIN L L OPR L LA L LX L L OPR,X L L ,X L L OPR, P Aclaracin OPR = Direccin de Memoria o Registro A = Acumulador X = Registro ndice No. CICLOS & 1 1 & 3 (

P = tac! Pointer

Ejemp!o& LDA 4H5)5)5)5) / A . 1>1>1>1> +1B> d,$ Acumulador.1B> LSLA / A . )5)5)5)) / Carr$ ( 5 Entonces A ( )5)5)5)) +2? dI!sNrvese que en el e emplo$ el valor inicial cargado en el Acumulador fue el 1>1>1>1> !inario y al reali'ar la rotacin a la i'quierda el =1? que se encontra!a en el 4it B$ paso al 4it de 0arry$ todos los !its se trasladaron una posicin a la i'quierda y el 4it > o 4it de menos peso tomo el valor > por corresponder a un despla'amiento lgico.

LSR & Desp!aTamiento !%"ico a !a derec*a Descripci%n& Efect(a un despla'amiento lgico a la derec)a$ este tipo de despla'amiento si es diferente al despla'amiento aritmNtico a la derec)a. 0onsiste en rotar a la derec)a todo el registro una

posicin$ quedando el 4it que se encontra!a en la posicin de menos peso +4it >, en el 4it de 0arry y el 4it m5s peso +4it B, ser5 llenado con un >$ tal como se ilustra a continuacin.

Sinta.is&
INSTRUCCIN L R OPR L RA L RX L R OPR,X L R ,X L R OPR, P Aclaracin OPR = Direccin de Memoria o Registro A = Acumulador X = Registro ndice No. CICLOS & 1 1 & 3 (

P = tac! Pointer

Ejemp!o& LDA 4H5)5)5)5) / A . 1>1>1>1> +1B> d,$ Acumulador.1B> LSRA / A . )5)5)5)5 / Carr$ ( ) Entonces A ( )5)5)5)5 +2< dI!sNrvese que en el e emplo$ el valor inicial cargado en el Acumulador fue el 1>1>1>1> !inario y al reali'ar la rotacin a la derec)a el =>? que se encontra!a en el 4it >$ paso al 4it de 0arry$ todos los !its se trasladaron una posicin a la derec)a y el 4it B o 4it de m5s peso tomo el valor > por corresponder a un despla'amiento lgico.

,UL & ,u!tip!icaci%n sin si"no Descripci%n& Esta funcin reali'a la multiplicacin sin signo entre dos cantidades de 3 !its cada una@ la primera cantidad +#ultiplicando, corresponde al registro Acumulador +A-$ la segunda cantidad +#ultiplicador, corresponde al registro -ndice +X-. La respuesta a la operacin de multiplicacin corresponde a una cantidad de 12 !its$ donde los 3 !its de m5s peso quedan almacenados en el

registro -ndice +X- y los 3 !its de menos peso quedan almacenados en el registro Acumulador +A-$ es decir$ el producto queda almacenado en el registro +X&A-. La operacin reali'ada es la siguiente* X&A ( A [ X Sinta.is&
INSTRUCCIN M4L Aclaracin Multi%licacin sin igno -X/A = A D X3 No. CICLOS (

Ejemp!o& 9e desea reali'ar la multiplicacin +0incuenta, y E>> +"oscientos,. LDA 4<) LDX 4:))T ,UL entre dos cantidades F>

/ A ( <) / X ( :)) / ,u!tip!icar X&A ( A [ X ( 5))))

E! resu!tado de !a operaci%n es& X&A ( 5)))) +DieT ,i!Al convertir 5))))d en )exadecimal +:;5)*- se puede o!servar que los 3 !its de m5s peso corresponden al valor +:;*- y los 3 de menos peso corresponden al valor +5)*-E El valor EB) se queda almacenado en el registro +X- y el valor 1>) queda almacenado en el registro +A-E

NEB & Comp!emento a dos Descripci%n& Esta funcin como su nom!re lo indica$ reali'a el complemento a E o negacin de una cantidad$ ya sea el Acumulador +A,$ el registro -ndice +<,$ o una posicin de memoria +#,. La operacin reali'ada es la siguiente* A ( KA %

X ( KX % +,- ( K+,# . %alor almacenado en un registro o posicin de #emoria

Sinta.is&
INSTRUCCIN *:? OPR *:?A *:?X *:? OPR,X *:? ,X *:? OPR, P Aclaracin OPR = Direccin de Memoria o Registro A = Acumulador X = Registro ndice No. CICLOS & 1 1 & 3 (

P = tac! Pointer

Ejemp!os& LDA 4?)T NEBA LDX 4:)T NEBX / A . 7>$ / A ( K?) / X . E>$ / X ( K:)

NOP & Sin operaci%n Descripci%n& Esta funcin de un solo 4yte provoca que el contador de programa sea incrementado en 1. ;ing(n otro registro es afectado@ es decir$ es una instruccin que no reali'a ninguna funcin en particular pero genera un retardo correspondiente a 1 0iclo. Esta instruccin es muy utili'ada para escri!ir rutinas de retardos !asados en instrucciones. Sinta.is&
INSTRUCCIN *OP Aclaracin *o O%eracin No. CICLOS 1

Ejemp!o&

NOP

/ Pro7oca un retardo de 5 Cic!o de ,Oquina

ORA & =unci%n !%"ica OR Descripci%n& Efect(a la funcin lgica I/ entre dos cantidades@ la primera cantidad corresponde al Acumulador +/egistro A,$ la segunda cantidad puede ser una constante o un dato almacenado previamente en un registro y la respuesta queda almacenada en el registro Acumulador. La operacin reali'ada es la siguiente* A ( A | +,# . 0onstante o %alor almacenado en un registro o posicin de #emoria Sinta.is&
INSTRUCCIN ORA #OPR ORA OPR ORA OPR,X ORA ,X ORA OPR, P Aclaracin #OPR = Constante OPR = Direccin de memoria o registro X = Registro ndice P = tac! Pointer o A%untador de Pila No. CICLOS " 3 3 " &

Ejemp!os& LDA 4H5)5)5)5) ORA 4H5)5)5)5) / A . 1>1>1>1> +1B> d,$ Acumulador.1B> / A . A E +1>1>1>1>,

Entonces A ( 5)5)5)5) +5;) d,O3 41=)612) / Almacena D>) +E7> d, en la direccin 3>) LDA 41)= / A . >D) +1F d, EOR 12) / A . A E +%alor almacenado en direccin 3>), Entonces A ( ==* +:<< d,O3 41=)612: LDX 4: LDA 412) AND 12)6X / / / / Almacena D> +E7> d, en la direccin 3E) <.E A . 3>) +1E3 d, A . A E +%alor almacenado en direccin 3E),

Entonces A ( =)* +:?) d-

ROL & Rotaci%n a !a iTquierda por acarreo Descripci%n& Efect(a la rotacin en una posicin de todo un registro a la i'quierda con la diferencia de que la posicin que queda en !lanco es ocupada por el valor presente en el 4it de Acarreo@ es decir$ que utili'a el !it de Acarreo como puente para reali'ar la rotacin de los !its pertenecientes a un registro. El 4it que se encontra!a en la posicin de m5s peso +4it B, pasa al 4it de 0arry y el 4it menos peso +4it >, ser5 ocupado con el valor que se encontra!a en el 4it de 0arry$ tal como se ilustra a continuacin.

Sinta.is&
INSTRUCCIN ROL OPR ROLA ROLX ROL OPR,X ROL ,X ROL OPR, P Aclaracin OPR = Direccin de Memoria o Registro A = Acumulador X = Registro ndice No. CICLOS & 1 1 & 3 (

P = tac! Pointer

Ejemp!o& LDA 4H5)5)5)5) / A . 1>1>1>1> +1B> d,$ ROLA 9i en el momento de efectuar la rotacin Carr$ ( 5 A ( )5)5)5)5 / Carr$ ( 5

&ero$ 9i en el momento de efectuar la rotacin Carr$ ( ) A ( )5)5)5)) / Carr$ ( 5

I!sNrvese que en el e emplo$ el valor inicial cargado en el Acumulador fue el 1>1>1>1> !inario y al reali'ar la rotacin a la i'quierda el =1? que se encontra!a en el 4it B$ paso al 4it de 0arry$

todos los !its se trasladaron una posicin a la i'quierda y el 4it > o 4it de menos peso tomo el valor que presenta!a el 4it de Acarreo.

ROR & Rotaci%n a !a derec*a por acarreo Descripci%n& Efect(a la rotacin en una posicin de todo un registro a la derec)a con la diferencia de que la posicin que queda en !lanco es ocupada por el valor presente en el 4it de Acarreo@ es decir$ que utili'a el !it de Acarreo como puente para reali'ar la rotacin de los !its pertenecientes a un registro. El 4it que se encontra!a en la posicin de menos peso +4it >, pasa al 4it de 0arry y el 4it m5s peso +4it B, ser5 ocupado con el valor que se encontra!a en el 4it de 0arry$ tal como se ilustra a continuacin.

Sinta.is&
INSTRUCCIN ROR OPR RORA RORX ROR OPR,X ROR ,X ROR OPR, P Aclaracin OPR = Direccin de Memoria o Registro A = Acumulador X = Registro ndice No. CICLOS & 1 1 & 3 (

P = tac! Pointer

Ejemp!o& LDA 4H5)5)5)5) / A . 1>1>1>1> +1B> d,$ RORA 9i en el momento de efectuar la rotacin Carr$ ( 5 A ( 55)5)5)5 / Carr$ ( )

&ero$ 9i en el momento de efectuar la rotacin Carr$ ( )

A ( )5)5)5)5

/ Carr$ ( )

I!sNrvese que en el e emplo$ el valor inicial cargado en el Acumulador fue el 1>1>1>1> !inario y al reali'ar la rotacin a la derec)a el =>? que se encontra!a en el 4it >$ paso al 4it de 0arry$ todos los !its se trasladaron una posicin a la derec)a y el 4it B o 4it de m5s peso tomo el valor que presenta!a el 4it de Acarreo.

S'C & Resta con acarreo Descripci%n& Efect(a la operacin de su!straccin o resta de dos cantidades incluyendo en la su!straccin el valor presente en el 4it de 0arry@ la primera cantidad corresponde al Acumulador +/egistro A,$ la segunda cantidad puede ser una constante o un dato almacenado previamente en un registro y la respuesta queda almacenada en el registro Acumulador. La operacin reali'ada es la siguiente* A ( AK+,-K+C# . 0onstante o %alor almacenado en un registro o posicin de #emoria 0 . 4it de Acarreo Sinta.is&
INSTRUCCIN 9C #OPR 9C OPR 9C OPR,X 9C ,X 9C OPR, P Aclaracin #OPR = Constante, %or eBem%lo #105 7 10 Decimal OPR = Direccin de memoria o registro X = Registro ndice P = tac! Pointer o A%untador de Pila No. CICLOS " 3 3 " &

Ejemp!os& LDA 4:)T SU' 45)T / A . E> $ 0arga el valor de 1> en el Acumulador / A.A61> $ /esta A con 1>

Si C (5 Entonces A ( :) K 5) K 5 ( I Si C () Entonces A ( :) K 5) K )( 5)

,O3 4:))612) / Almacena el valor E>> en la direccin 3>) LDA 4:)T / A . E> SU' 12) / A.AG+%alor almacenado en direccin 3>), Si C (5 Entonces A ( :) K :)) A 5 ( K525 Si C () Entonces A ( :) K :)) A ) ( K52) ,O3 4<)T6125 / Almacena el valor F> en la direccin 31) LDX 45 / <.1 LDA 45))T / A . 1>> SU' 12)6X/ A.AG+%alor almacenado en direccin 3>)6<, Si C (5 Entonces A ( 5)) K <) K 5 ( ?I Si C () Entonces A ( 5)) K <) K ) ( <)

SU' & Resta Descripci%n& Efect(a la operacin de su!straccin o resta de dos cantidades sin incluir en la su!straccin el valor presente en el 4it de 0arry@ la primera cantidad corresponde al Acumulador +/egistro A,$ la segunda cantidad puede ser una constante o un dato almacenado previamente en un registro y la respuesta queda almacenada en el registro Acumulador. 9i el resultado de la su!straccin es negativo$ el 4it de Acarreo tomar5 como valor =1?$ de lo contrario tomar5 como valor =>?. La operacin reali'ada es la siguiente* A(AK+,# . 0onstante o %alor almacenado en un registro o posicin de #emoria Sinta.is&
INSTRUCCIN 49 #OPR 49 OPR 49 OPR,X 49 ,X 49 OPR, P Aclaracin #OPR = Constante, %or eBem%lo #105 7 10 Decimal OPR = Direccin de memoria o registro X = Registro ndice P = tac! Pointer o A%untador de Pila No. CICLOS " 3 3 " &

Ejemp!os&

LDA 4:)T SU' 45)T

/ A . E> $ 0arga el valor de 1> en el Acumulador / A.A61> $ /esta A con 1>

Entonces A ( :) K 5) ( 5) ,O3 4:))612) / Almacena el valor E>> en la direccin 3>) LDA 4:)T / A . E> SU' 12) / A.AG+%alor almacenado en direccin 3>), Entonces A ( :) K :)) ( K52) ,O3 4<)T6125 / Almacena el valor F> en la direccin 31) LDX 45 / <.1 LDA 45))T / A . 1>> SU' 12)6X/ A.AG+%alor almacenado en direccin 3>)6<, Entonces A ( 5)) K <) ( <)

TST & Pro ar si !a cantidad es ne"ati7a o cero Descripci%n& Esta instruccin coloca en 1 los !its ; y A del registro !andera cuando al comparar una cantidad se verifica que es ;egativa o 0ero respectivamente$ sin afectar el contenido de ning(n registro. La operacin reali'ada es la siguiente* Comparaci%n ( AK))* % Comparaci%n ( XK))* % Comparaci%n ( +,-K))*

Sinta.is&
INSTRUCCIN 5 5 OPR 5 5A 5 5X 5 5 OPR,X 5 5 ,X 5 5 OPR, P Aclaracin OPR = Direccin de Memoria o Registro A = Acumulador X = Registro ndice No. CICLOS 3 1 1 3 " &

P = tac! Pointer

Ejemp!os&

LDA 45)T TSTA

/ A . 1>$ Acumulador . 1> /%erifica si el contenido del ;egativo o cero

Acumulador

es

Entonces 0omparacin . 1> Q >>)$ a)ora se pregunta lo que desea conocer el programador con respecto a la comparacin de Nstas dos cantidades$ por e emplo$ si se quiere que el programa salte a una etiqueta llamada =0ero? si la cantidad que est5 en el Acumulador +A, es 0ero. "e!a o de la l-nea de comparacin se coloca la condicin de salto seg(n el resultado tal como se ilustra a continuacin* LDA 45)T TSTA 'EL Cero / A . 1>$ Acumulador . 1> /%erifica si el contenido del Acumulador 0omo para el caso A +1>d, es diferente de 0ero$ el programa no salta a la etiqueta =0ero? continuando en la l-nea siguiente$ de lo contrario$ se reali'a el salto.

,O3 41)A612) / Almacena >A) +1> d, en la direccin 3>) TST 12) 0ompara el contenido de la direccin 3>) +>A), 'PL Positi7o 0omo para el caso la cantidad con la que se encontra!a en la direccin 3>) es positiva$ el programa salta a la etiqueta =&ositivo?$ de lo contrario$ no se reali'a el salto y se contin(a en la l-nea siguiente.

INSTRUCCIONES DE OPERANDOS ESPECIALES RSP & Reset de! puntero de pi!a Descripci%n& Esta instruccin aplica /eset a la &ila en la parte alta de la &ila$ es decir$ On registro de la pila tiene un tamaSo de 12 4its@ los 3 4its de m5s peso son colocados en >. La operacin reali'ada es la siguiente* SP ( ))==* Sinta.is&
INSTRUCCIN Aclaracin No. CICLOS

R P

Reset al tac! Pointer

RTI & Retorno de !a interrupci%n Descripci%n& Esta instruccin permite retornar de una interrupcin a la l-nea siguiente del programa principal donde se encontra!a en el momento de )a!er sido llamado para atender una interrupcin. 9iempre$ despuNs de atender una interrupcin y se desee continuar con la e ecucin normal del programa se utili'a esta instruccin. 0omo la gran mayor-a de los lectores )an tra!a ado con microcontroladores &80$ esta instruccin es la equivalente a /EHD8E. La operacin reali'ada es la siguiente* SP SP SP SP SP ( ( ( ( ( SP SP SP SP SP 8 8 8 8 8 )))5* )))5* )))5* )))5* )))5* / / / / / Resta Resta Resta Resta Resta !ece !ece !ece !ece !ece e! e! e! e! e! CCR de !a Pi!a Acumu!ador de !a Pi!a X de !a Pi!a PC9 de !a Pi!a PCL de !a Pi!a

Sinta.is&
INSTRUCCIN R5+ Aclaracin Retornar de una +nterru%cin No. CICLOS 2

Ejemp!o& En el siguiente programa se puede o!servar que la interrupcin por TI,ER est5 esta!lecida en la direccin ===:* TI,ER ELU 1===:

;ormalmente el programa se mantendr5 e ecutando el programa principal 8;808I salidas 9ALHI 49EH #I% #I% 40L/ 49/ 49EH 49/ 0I&"$0I;D8L1 TU>>$&I/H4 TU3>$""/4 @8n)a!ilita el 0I&" @&H4B . > @0onfig. el &H4B .> 1 9egundo .1 1 9egundo

B$&I/H4 /EHA/"I B$&I/H4 /EHA/"I

@&H4B @/etardo de @&H4B @/etardo de

4/A /EHA/"I 40L/ 0I;DPH8# #I%

9ALHI

@8r a 9alto

0L8 E9&E/A

LE"$4A;"E/A @;o )a transcurrido 1 9eg. TU32$H90 @4V>>11>11>V al H90 #I% TU3"$H#I"1 @H#I"1 . U3" #I% TU>J$H#I"L @H#I"L . U>J #I% TU72$H90 @4V>1>>>11>V al H90 @1a!ilita 8nterrupciones

4/9EH LE"$4A;"E/A$D8; @9i transcurrio 1 9eg. D8; 4/A E9&E/A @9i n$ ir a Espera D8; /H9 @/etorno de 9u!rutina 0uando el H8#E/ se re!ose$ provocar5 interrupcin por H8#E/$ saliendo del programa principal y dirigiNndose a la direccin ===:*6 para atender la interrupcin. I/L H8#E/ "W H8#E/ H8# @8nterrupcin por

Atiende la interrupcin y cuado ya se desea volver al programa principal para continuar con su e ecucin$ se e ecuta la instruccin /H8$ dando por finali'ado la atencin a la interrupcin. H8# 9egundo D8;P8;H interrup &911 49EH 40L/ &OL1 RTI @Luarda el registro 1 LE"$4A;"E/A @Xa transcurri B$H90 @4orra !andera

1 de

@9acar 1 del 9tac:

El cdigo completo del programa es el siguiente y ser5 explicado en detalle en el cap0tu!o 5)E U 8;0LO"E VJL3/EL9.8;0V DLA91 /E9EH TI,ER /A# 0I&" LE" 4A;"E/A EMO EMO ELU EMO EMO EMO I/L /#4 UE0E> UDDDE 1===: U3> > B /A# 1 @/egistro 4andera de 1 9eg.

8;808I 9ALHI

I/L 49EH #I% #I% 40L/ 49/ 49EH 49/ 4/A

DLA91 0I&"$0I;D8L1 @8n)a!ilita el 0I&" TU>>$&I/H4 @&H4B . > TU3>$""/4 @0onfig. el &H4B salidas B$&I/H4 @&H4B . > /EHA/"I @/etardo de 1 9egundo B$&I/H4 @&H4B . 1 /EHA/"I @/etardo de 1 9egundo 9ALHI @8r a 9alto LE"$4A;"E/A TU32$H90 TU3"$H#I"1 TU>J$H#I"L TU72$H90 @;o )a transcurrido 1 9eg. @4V>>11>11>V al H90 @H#I"1 . U3" @H#I"L . U>J @4V>1>>>11>V al H90 @1a!ilita 8nterrupciones @9i transcurrio 1 9eg. D8; @9i n$ ir a Espera @/etorno de 9u!rutina @Luarda el registro 1 @Xa transcurri 1 9egundo @4orra !andera de interrup @9acar 1 del 9tac: @0uando se energi'aY @8r a 8;808I @8nterrupcin por H8#E/

/EHA/"I 40L/ 0I;DPH8# #I% #I% #I% #I% 0L8 E9&E/A D8; H8# D8;P8;H

4/9EH LE"$4A;"E/A$D8; 4/A E9&E/A /H9 &911 49EH 40L/ &OL1 /H8 I/L "W I/L "W LE"$4A;"E/A B$H90

/E9EH 8;808I H8#E/ H8#

RTS & Retorno de su rutina Descripci%n& Esta instruccin permite retornar de una 9u!rutina a la l-nea siguiente del programa principal donde se encontra!a en el momento de )a!er sido llamada por la instruccin 'SR. 9iempre$ despuNs de e ecutar una su!rutina y se desee continuar con la e ecucin del programa principal se utili'a esta instruccin. 0omo la gran mayor-a de los lectores )an tra!a ado con microcontroladores

&80$ esta instruccin es la equivalente a /EHO/;. reali'ada es la siguiente*

La operacin

SP ( SP 8 )))5* / Resta !ece e! PC9 de !a Pi!a SP ( SP 8 )))5* / Resta !ece e! PCL de !a Pi!a Sinta.is&
INSTRUCCIN R5 Aclaracin Retornar de una u,rutina No. CICLOS &

Ejemp!o&
En el siguiente e emplo se explica un programa que enciende un LE" y luego lo apaga$ para encenderlo se llama a la rutina PLEDRONQ y para apagarlo se llama la rutina PLEDRO==QE /OH8;A 49/ 49/ 4/A LE"PI; LE"PIDD /OH8;A @ Llama rutina para encender LE" @ Llama rutina para apagar LE" @ 9alta a etiqueta /OH8;A

@ /utina para Encender un LE" LE"PI; 49EH LE"$&I/H4 RTS @ /utina para Apagar un LE" LE"PIDD 40L/ LE"$&I/H4 RTS

@Encender Led @/etorno de 9u!rutina

@Apagar Led @/etorno de 9u!rutina

MSR & Sa!to a su rutina Descripci%n& Esta instruccin permite saltar a una 9u!rutina. La diferencia fundamental con la instruccin 'SR6 es que a travNs de Nsta instruccin se pueden reali'ar saltos a su!rutinas m5s ale adas$ es decir$ efectuar saltos m5s largos. 0omo la gran mayor-a de los lectores )an tra!a ado con microcontroladores &80$ esta instruccin es la equivalente a 0ALL. La operacin reali'ada es la siguiente* PC ( PC 8 n / n( 56: o 3 Se"Dn modo de Direccionamiento SP ( SP 8 )))5* / Buarda parte aja de! PCL en !a Pi!a SP ( SP 8 )))5* / Buarda parte a!ta de! PCL en !a Pi!a

PC ( Direcci%n

/ Car"a e! PC +contador de Pro"rama-6 con !a direcci%n de inicio de !a su rutina so!icitada

Sinta.is&
INSTRUCCIN A R OPR A R OPR,X A R ,X Aclaracin OPR = Direccin inicial de u,rutina No. CICLOS & ( &

Ejemp!o&
En el siguiente e emplo se explica un programa que enciende un LE" y luego lo apaga$ para encenderlo se llama a la rutina PLEDRONQ y para apagarlo se llama la rutina PLEDRO==QE /OH8;A J9/ J9/ 4/A LE"PI; LE"PIDD /OH8;A @ Llama rutina para encender LE" @ Llama rutina para apagar LE" @ 9alta a etiqueta /OH8;A

@ /utina para Encender un LE" LE"PI; 49EH LE"$&I/H4 RTS @ /utina para Apagar un LE" LE"PIDD 40L/ LE"$&I/H4 RTS

@Encender Led @/etorno de 9u!rutina

@Apagar Led @/etorno de 9u!rutina

STOP & 9a i!ita !a IRL $ Para e! osci!ador Descripci%n& Esta instruccin resulta por* 9e coloca en > el prescalador del tempori'ador "es)a!ilita interrupcin por H8#E/ permite reducir el consumo de

potencia$ eliminando toda disipacin de potencia din5mica. Esto

&one en > la !andera de interrupcin por Hempori'ador 1a!ilita interrupcin Externa + X des)a!ilita el oscilador 0uando un o la entrada de se pone en !a o$ se )a!ilita del ,

el oscilador$ comien'a un retardo de 1JE> ciclos de relo

procesador$ permitiendo que el oscilador se esta!ilice$ se saca el vector de peticin de interrupcin o el vector de /eset y se e ecuta la rutina de servicio$ dependiendo del signo que fue e ecutado Sinta.is&
INSTRUCCIN 5OP Aclaracin Ha,ilitar el %in +R=, detener el Oscilador No. CICLOS 1

S\I & Interrupci%n por soFt]are Descripci%n& Esta instruccin permite generar una interrupcin especial que ofrece grandes venta as a la )ora de desarrollar aplicaciones. La interrupcin por softZare permite al programador interrumpir en un momento deseado la e ecucin de una rutina. 9iempre$ despuNs de atender esta interrupcin y se desee continuar con la e ecucin normal del programa se utili'a la instruccin RTI. La operacin reali'ada es la siguiente* PC ( PC 8 )))5* / A7anTa e! PC para de7o!7er !a direcci%n SP ( SP K )))5* / Buarda e! PCL en !a Pi!a SP ( SP K )))5* / Buarda e! PC9 en !a Pi!a SP ( SP K )))5* / Buarda a X en !a Pi!a SP ( SP K )))5* / Buarda e! Acumu!ador en !a Pi!a SP ( SP K )))5* / Buarda e! CCR en !a Pi!a 'it I ( 5 / 'it de Interrupci%n en 5 PC9 ( ==C* / 3ector direcci%n para interrupci%n PCL ( ==D* / por SoFt]are Sinta.is&
INSTRUCCIN F+ Aclaracin +nterru%cin %or o6tGare No. CICLOS H

You might also like