UNIVERSIDAD TECNICA DEL NORTE FICA – CIME JAV JA VIER CABASCANGO CABASCAN GO SISTEMAS MICROPROCESADOS INSTRUCCIONES INSTRUCCIONES DEL MICROCRONTROLADOR 164P •
INSTRUCCIONES DE ARITMETICA Y LOGICA
ADC DESCRIPCION Suma dos registros y el contenido de la C lag y coloca el resultado en el registro del destino Rd!
OPERACIÓN Rd " Rd # Rr # C
SINTAXIS
OPERANDOS
CONTADOR DE INSTRUCCION
ADC Rd$ Rr
% & d & ' ($ % & r & ' (
)C " )C # (
EJEMPLO add r,$ r% adc r'$ r(
* Add R(+R% to R'+R, * Add lo- .yte * Add -it/ carry /ig/ .yte
PALABRAS: ( 0, .ytes1 CICLOS: ( ADD CON ARRASTRE DESCRIPCION Suma dos registros sin la C lag y coloca el resultado en el registro del destino Rd!
OPERACIÓN Rd " Rd # Rr
SINTAXIS
OPERANDOS
CONTADOR DE INSTRUCCION
ADC Rd$ Rr
% & d & ' ($ % & r & ' (
)C " )C # (
EJEMPLO
add add
r($ r, r,3$ r,3
* Add r, to r( 0r(2r(#r,1 * Add r,3 to itsel4 0r,32r,3#r,31
PALABRAS: ( 0, .ytes1 CICLOS: ( ADIW DESCRIPCION Le a5ade un 6alor inmediato 0% 7 8'1 a un 9ar de registro y coloca el resultado en el 9ar de registro! Esta instrucci:n inter6iene en los cuatro 9ares de registro su9erior$ y est; .ien u.icada 9ara o9eraciones o 9eraciones en los registros regis tros del 9untero! Esta instrucci:n ins trucci:n no est; dis9oni.le en todos los dis9ositi6os!
OPERACIÓN Rd#(+ Rd " Rd#(+ Rd # <
SINTAXIS
OPERANDOS
ADI= Rd#(+ Rd$ <
d ∈ >,?$ ,8$ ,3$ '%@$ % & < & 8'
CONTADOR DE INSTRUCCIÓN: )C " )C # ( EJEMPLO adiadi-
r,+,?$( B+ BL$ 8'
* Add ( to r,+r,? * Add 8' to t/e B79ointer 0r'(+r'%1
PALABRAS: ( 0, .ytes1 CICLOS: , AND – AND LOGICO DESCRIPCION Realia el o9erador .ooleano AND l:gico entre el contenido de Rr de registro Rd y de registro y coloca el resultado en el registrador del destino Rd!
OPERACION Rd " Rd Rr
SINTAXIS: OPERANDOS: CONTADOR DE INSTRUCCIÓN: EJEMPLO
AND Rd$ Rr! % & d & '($ % & r & '( )C " )C # (
and ldi and
r,$ r' r(8$ ( r,$ r(8
* Fit-ise and r, and r'$ result in r, * Set .itmas %%%% %%%( in r(8 * Isolate .it % in r,
PALABRAS: ( 0, .ytes1 CICLOS: ( ANDI – AND LOGICO CON INMEDIATO DESCRIPCION Realia el o9erador .ooleano AND l:gico entre el contenido de registro Rd y una constante y coloca el resultado en el registrador del destino Rd!
OPERACION Rd " Rd <
SINTAXIS: OPERANDOS: CONTADOR DE INSTRUCCIÓN:
ANDI Rd$ < (8 & d & '($ % & < & , )C " )C # (
EJEMPLO andi andi andi
r(H$ % r(3$ (% r(J$ AA
* Clear u99er ni..le o4 r(H * Isolate .it ? in r(3 * Clear odd .its o4 r(J
PALABRAS: ( 0, .ytes1 CICLOS: ( ASR – DESPLAZAMIENTO DERECHO ARITMETICO DESCRIPCION Se /ace a todos los 9edacitos en el lugar un Rd la derec/a! El 9edacito H es constante sustentada! El 9edacito % est; cargado en la C lag del SREG! Esta o9eraci:n e4icamente di6ide un 6alor 4irmado a las dos sin cam.iar su signo! La Fandera de Arrastre 9uede usarse 9ara redondear el resultado!
OPERACION
SINTAXIS: OPERANDOS: CONTADOR DE INSTRUCCIÓN:
ASR Rd % & d & '( )C " )C # (
EJEMPLO ldi asr ldi asr
r(8$ (% r(8 r(H$ C r(H
* Load decimal (8 into r(8 * r(82r(8 K , * Load 7? in r(H * r(H2r(HK,
PALABRAS: ( 0, .ytes1 CICLOS: ( BCLR DESCRIPCION Des9ea una Fandera sola en SREG!
OPERACION SREG0s1 " %
SINTAXIS: OPERANDOS: CONTADOR DE INSTRUCCIÓN:
FCLR s %&s&H )C " )C # (
EJEMPLO .clr .clr
% H
* Clear Carry lag * Disa.le interru9ts
PALABRAS: ( 0, .ytes1 CICLOS: ( BLD DESCRIPCION Co9ia la T lag en el SREG 0el Registro de Estatus1 9ara el .it . en el registro Rd!
OPERACION Rd 0.1 " T
SINTAXIS: OPERANDOS: CONTADOR DE INSTRUCCIÓN: EJEMPLO .st .ld
r($ , r%$ ?
* Co9y .it * Store .it , o4 r( in T lag * Load T lag into .it ? o4 r%
FLD Rd$ . % & d & '($ % & . & H )C " )C # (
PALABRAS: ( 0, .ytes1 CICLOS: ( BRBC DESCRIPCION La rama relati6a condicional! )rue.as ue un solo .it en SREG y ramas relati6amente 9ara )C si el 9edacito es des9eado! Esta instrucci:n se rami4ica relati6amente 9ara )C en ya sea la direcci:n 0la )C 7 8' )C d destino d # 8?1! La de 9ar;metro es el o44set de )C y es re9resentado en 4orma de com9lemento de dos!
OPERACIÓN I4 SREG0s1 2 % t/en )C " )C # # ($ else )C " )C # ( FRFC s$ SINTAXIS: OPERANDOS: % & s & H$ 78? & & #8' )C " )C # # ( CONTADOR DE INSTRUCCIÓN: )C " )C # ($ i4 condition is 4alse
EJEMPLO c9i r,%$ .r.c ($ note !!! note+ no9
* Com9are r,% to t/e 6alue * Franc/ i4 Bero lag cleared * Franc/ destination 0do not/ing1
PALABRAS: ( 0, .ytes1 CICLOS: ( si la condici:n es 4alsa$ , si la condici:n es 6erdadera BRBS DESCRIPCION La rama relativa condicional. Pruebas que un solo bit en SREG y ramas relativamente para PC si el pedacito está colocado. Esta instrucción se ramifca relativamente para PC en ya sea la dirección la PC ! "# PC d destino d $ "%&. La ' de parámetro es el o(set de PC y es representado en )orma de complemento de dos.
OPERACIÓN I4 SREG0s1 2 ( t/en )C " )C # # ($ else )C " )C # (
SINTAXIS+ OPERANDOS: CONTADOR DE INSTRUCCIÓN: )C " )C # ($ si la condici:n es 4alsa!
EJEMPLO
FRFS s$ % & s & H$ 78? & & #8' )C " )C # # (
.st r%$ ' .r.s 8$ .itset !!! .itset+ no9
* Load T .it -it/ .it ' o4 r% * Franc/ T .it -as set * Franc/ destination 0do not/ing1
PALABRAS: ( 0, .ytes1 CICLOS: ( si la condici:n es 4alsa$ , si la condici:n es 6erdadera! BRCC DESCRIPCION La rama relativa condicional. Prueba la *andera de +rrastre C& y las ramas relativamente para PC si la C es despe,ada. Esta instrucción se ramifca relativamente para PC en ya sea la dirección la PC ! "# PC d destino d $ "%&. La ' de parámetro es el o(set de PC y es representada en )orma de complemento de dos. El equivalente para instrucción *R*C - '&.
OPERACIÓN I4 C 2 % t/en )C " )C # # ($ else )C " )C # (
SINTAXIS: OPERANDOS+ CONTADOR DE INSTRUCCIÓN:
FRCC 78? & & #8' )C " )C # # (
)C " )C # ($ si la condici:n es 4alsa
EJEMPLO add r,,$ r,' .rcc nocarry !!! nocarry+ no9
* Add r,' to r,, * Franc/ i4 carry cleared * Franc/ destination 0do not/ing1
PALABRAS: ( 0, .ytes1 CICLOS: ( si la condici:n es 4alsa$ , si la condici:n es 6erdadera! BRCS DESCRIPCION La rama relativa condicional. Prueba la *andera de +rrastre C& y las ramas relativamente para PC si la C está colocada. Esta instrucción se ramifca relativamente para PC en ya sea la dirección la PC ! "# PC d destino d $ "%&. La ' de parámetro es el o(set de PC y es representada en )orma de complemento de dos. El equivalente para instrucción *R*S - '&.
OPERACIÓN I4 C 2 ( t/en )C " )C # # ($ else )C " )C # (
SINTAXIS: OPERANDOS: CONTADOR DE INSTRUCCIONES:
FRCS 78? & & #8' )C " )C # # (
)C " )C # ($ si la condici:n es 4alsa!
EJEMPLO c9i r,8$ 8 .rcs carry !!! carry+ no9
* Com9are r,8 -it/ 8 * Franc/ i4 carry set * Franc/ destination 0do not/ing1
PALABRAS: ( 0, .ytes1 CICLOS: ( si la condici:n es 4alsa , si la condici:n es 6erdadera
BREAK DESCRIPCION La instrucción de S/SPE0S120 es usada en el sistema del c3ip 4ebu5 y no es normalmente usada en la aplicación. Cuando la instrucción de S/SPE0S120 es e,ecutada el +6R CP/ es incrustado en el 7odo *loqueado. Esto cede lo En el acceso del 4epurador del c3ip para los medios internos. Si cualquier pedacito del Cerro,o está colocados o ya sea el 89+GE0 u :C4E0 ;uses es no sistemático la /PC tratará la instrucción de S/SPE0S120 como un 0:P y no introducirá el modo *loqueado. Esta instrucción no está disponible en todos los dispositivos. Ref
OPERACIÓN On7c/i9 De.ug system .rea!
SINTAXIS: FREA< OPERANDOS: Ninguno CONTADOR DE INSTRUCCIONES: )C " )C # ( PALABRAS: ( 0, .ytes1 CICLOS: ( BRE DESCRIPCION La rama relativa condicional. Prueba la *andera de Cero >& y las ramas relativamente para PC si la > está colocada. Si la instrucción es e,ecutada inmediatamente despu
OPERACIÓN
I4 Rd 2 Rr 0B 2 (1 t/en )C " )C # # ($ else )C " )C # ( FRE SINTAXIS: OPERANDOS: 78? & & #8' CONTADOR DE INSTRUCCIONES: )C " )C # # ( )C " )C # ($ si la condici:n es 4alsa
EJEMPLO c9 r($ r% * Com9are registers r( and r% .re eual * Franc/ i4 registers eual !!! eual+ no9 * Franc/ destination 0do not/ing1
PALABRAS: ( 0, .ytes1 CICLOS: ( si la condici:n es 4alsa , si la condici:n es 6erdadera
BRGE DESCRIPCION La rama relati6a condicional! )rue.a las ramas y Fandera irmada 0S1 relati6amente 9ara )C si la S es des9eada! Si la instrucci:n es eecutada inmediatamente des9us de cualuier del instrucciones C)$ C)I$ UNPA COMO SUFSTITUTO o SUFI$ la rama ocurrir; si y s:lo si lo 4irmado .inario el nQmero re9resentado en Rd 4ue mayor o igual 9ara el 4irmado nQmero .inario re9resentado en Rr! Esta instrucci:n se rami4ica relati6amente 9ara )C en ya sea la direcci:n 0la )C 7 8' )C d destino d # 8?1! La de 9ar;metro es el o44set de )C y es re9resentado en 4orma de com9lemento de dos! 0El eui6alente 9ara instrucci:n FRFC ?$ 1!
OPERACIÓN I4 Rd Rr 0N
A 2 %1 t/en )C " )C # # ($ else )C " )C # (
FRGE SINTAXIS: 78? & & #8' OPERANDOS: CONTADOR DE INSTRUCCIONES: )C " )C # # ( )C " )C # ($ si la condici:n es 4alsa
EJEMPLO c9 r(($ r(, .rge greate !!! greate+ no9
* Com9are registers r(( and r(, * Franc/ i4 r(( r(, 0signed1 * Franc/ destination 0do not/ing1
PALABRAS: ( 0, .ytes1 CICLOS: ( si la condici:n es 4alsa , si la condici:n es 6erdadera
BRHC DESCRIPCION La rama relati6a condicional! )rue.a la Media Fandera de Arrastre 01 y las ramas relati6amente 9ara )C si la es des9eada! Esta instrucci:n se rami4ica relati6amente 9ara )C en ya sea la direcci:n 0la )C 7 8' )C d destino d # 8?1! La de 9ar;metro es el o44set de )C y es re9resentada en 4orma de com9lemento de dos! 0El eui6alente 9ara instrucci:n FRFC $ 1!
OPERACIÓN I4 2 % t/en )C " )C # # ($ else )C " )C # (
SINTAXIS: FRC OPERANDOS: 78? & & #8' CONTADOR DE INSTRUCCIONES: )C " )C # # ( )C " )C # ($ si la condici:n es 4alsa!
EJEMPLO .r/c /clear * Franc/ i4 al4 Carry lag cleared !!! /clear+ no9 * Franc/ destination 0do not/ing1
PALABRAS: ( 0, .ytes1 CICLOS: ( si la condici:n es 4alsa , si la condici:n es 6erdadera!
BRHS DESCRIPCION La rama relati6a condicional! )rue.a la Media Fandera de Arrastre 01 y las ramas relati6amente 9ara )C si la est; colocada! Esta instrucci:n se rami4ica relati6amente 9ara )C en ya sea la direcci:n 0la )C 7 8' )C d destino d # 8?1! La de 9ar;metro es el o44set de )C y es re9resentada en 4orma de com9lemento de dos! 0El eui6alente 9ara instrucci:n FRFS $ 1!
OPERACIÓN I4 2 ( t/en )C " )C # # ($ else )C " )C # (
SINTAXIS: FRS OPERANDOS: 78? & & #8' CONTADOR DE INSTRUCCIONES: )C " )C # # ( )C " )C # ($ si la condici:n es 4alsa!
EJEMPLO:
.r/s !!! /set+
/set
* Franc/ i4 al4 Carry lag set
no9
* Franc/ destination 0do not/ing1
PALABRAS: ( 0, .ytes1 CICLOS: ( si la condici:n es 4alsa , si la condici:n es 6erdadera!
BRID DESCRIPCION La rama relati6a condicional! )rue.a la Fandera Glo.al 0yo1 de Interru9ci:n y las ramas relati6amente 9ara )C si soy des9eado! Esta instrucci:n se rami4ica relati6amente 9ara )C en ya sea la direcci:n 0la )C 7 8' )C d destino d # 8?1! La de 9ar;metro es el o44set de )C y es re9resentado en 4orma de com9lemento de dos! 0El eui6alente 9ara instrucci:n FRFC H$ 1!
OPERACIÓN I4 I 2 % t/en )C " )C # # ($ else )C " )C # (
SINTAXIS: FRID OPERANDOS: 78? & & #8' CONTADOR DE INSTRUCCIONES: )C " )C # # ( )C " )C # ($ si la condici:n es 4alsa
EJEMPLO: .rid intdis * Franc/ i4 interru9t disa.led !!! intdis+ no9 * Franc/ destination 0do not/ing1
PALABRAS: ( 0, .ytes1 CICLOS: ( si la condici:n es 4alsa , si la condici:n es 6erdadera
BRIE DESCRIPCION La rama relati6a condicional! )rue.a la Fandera Glo.al 0yo1 de Interru9ci:n y las ramas relati6amente 9ara )C si es el set! Esta instrucci:n se rami4ica relati6amente 9ara )C en ya sea la direcci:n 0la )C 7 8' )C d destino d # 8?1! La de 9ar;metro es el o44set de )C y es re9resentado en 4orma de com9lemento de dos! 0El eui6alente 9ara instrucci:n FRFS H$ 1!
OPERACIÓN 0i1 I4 I 2 ( t/en )C " )C # # ($ else )C " )C # (
SINTAXIS: FRIE OPERANDOS: 78? & & #8' CONTADOR DE INSTRUCCIONES: )C " )C # # ( )C " )C # ($ si la condici:n es 4alsa
EJEMPLO: .rie inten !!! inten+ no9
* Franc/ i4 interru9t ena.led * Franc/ destination 0do not/ing1
PALABRAS: ( 0, .ytes1 CICLOS: ( si la condici:n es 4alsa , si la condici:n es 6erdadera
BRLO DESCRIPCION La rama relati6a condicional! )rue.a la Fandera de Arrastre 0C1 y las ramas relati6amente 9ara )C si la C est; colocada! Si la instrucci:n es eecutada inmediatamente des9us de cualuier del instrucciones C)$ C)I$ UNPA COMO SUFSTITUTO o SUFI$ la rama ocurrir; si y s:lo si el nQmero sin 4irmar y .inario re9resentado en Rd 4ue m;s 9eue5o ue el nQmero sin 4irmar y .inario re9resentado en Rr! Esta instrucci:n se rami4ica relati6amente 9ara )C en ya sea la direcci:n 0la )C 7 8' )C d destino d # 8?1! La de 9ar;metro es el o44set de )C y es re9resentada en 4orma de com9lemento de dos! 0El eui6alente 9ara instrucci:n FRFS %$ 1!
OPERACION I4 Rd Rr 0C 2 (1 t/en )C " )C # # ($ else )C " )C # (
SINTAXIS: FRLO OPERANDOS: 78? & & #8' CONTADOR DE INSTRUCCIONES: )C " )C # # ( )C " )C # ($ si la condici:n es 4alsa
EJEMPLO: eor r(J$ r(J loo9+ inc r(J !!! c9i r(J$ (% .rlo loo9 no9
* Clear r(J * Increase r(J * Com9are r(J -it/ (% * Franc/ i4 r(J (% 0unsigned1 * Eit 4rom loo9 0do not/ing1
PALABRAS: ( 0, .ytes1 CICLOS: ( si la condici:n es 4alsa , si la condici:n es 6erdadera
BRLT DESCRIPCION La rama relati6a condicional! )rue.a las ramas y Fandera irmada 0S1 relati6amente 9ara )C si la S est; colocada! Si la instrucci:n es eecutada inmediatamente des9us de cualuier del instrucciones C)$ C)I$ UNPA COMO SUFSTITUTO o SUFI$ la rama ocurrir; si y s:lo si el nQmero .inario 4irmado re9resentado en Rd esta.a menos del 4irmado nQmero .inario re9resentado en Rr! Esta instrucci:n se rami4ica relati6amente 9ara )C en cualuier direcci:n 0la )C 7 8' )C d destino d # 8?1! La de 9ar;metro es el o44set de )C y es re9resentada en el com9lemento de dos la 4orma! 0El eui6alente 9ara instrucci:n FRFS ?$ 1!
OPERACIÓN I4 Rd Rr 0N A 2 (1 t/en )C " )C # # ($ else )C " )C # (
SINTAXIS: FRLT OPERANDOS: 78? & & #8' CONTADOR DE INSTRUCCIONES: )C " )C # # ( )C " )C # ($ si la condici:n es 4alsa
EJEMPLO: c9 .rlt !!! less+
r(8$ r( * Com9are r(8 to r( less * Franc/ i4 r(8 r( 0signed1 no9
* Franc/ destination 0do not/ing1
PALABRAS: ( 0, .ytes1 CICLOS: ( si la condici:n es 4alsa , si la condici:n es 6erdadera
BRMI DESCRIPCION La rama relati6a condicional! )rue.a las ramas y Fandera Negati6a 0N1 relati6amente 9ara )C si la N est; colocada! Este .ranc/esrelati6ely de instrucci:n 9ara )C en cualuier direcci:n 0la )C 7 8' )C d destino d # 8?1! La de 9ar;metro es el o44set de )C y es re9resentada en 4orma de com9lemento de dos! 0El eui6alente 9ara instrucci:n FRFS ,$ 1!
OPERACIÓN I4 N 2 ( t/en )C " )C # # ($ else )C " )C # (
SINTAXIS: FRMI OPERANDOS: 78? & & #8' CONTADOR DE INSTRUCCIONES: )C " )C # # (
)C " )C # ($ si la condici:n es 4alsa
EJEMPLO: su.i r(3$ ? .rmi negati6e !!! negati6e+ no9
* Su.tract ? 4rom r(3 * Franc/ i4 result negati6e * Franc/ destination 0do not/ing1
PALABRAS: ( 0, .ytes1 CICLOS: ( i4 condition is 4alse , i4 condition is true
BRNE DESCRIPCION La rama relativa condicional. Prueba la *andera de Cero >& y las ramas relativamente para PC si la > está colocada. Si la instrucción es e,ecutada inmediatamente despu
OPERACIÓN I4 Rd V Rr 0B 2 %1 t/en )C " )C # # ($ else )C " )C # (
SINTAXIS: FRNE OPERANDOS: 78? & & #8' CONTADOR DE INSTRUCCIONES: )C " )C # # ( )C " )C # ($ si la condici:n es 4alsa
EJEMPLO: eor r,H$ r,H loo9+ inc r,H !!! c9i r,H$ .rne loo9 no9
* Clear r,H * Increase r,H * Com9are r,H to * Franc/ i4 r,HW * Loo9 eit 0do not/ing1
PALABRAS: ( 0, .ytes1 CICLOS: ( i4 condition is 4alse , i4 condition is true
BRPL DESCRIPCION
La rama relativa condicional. Prueba las ramas y *andera 0e5ativa 0& relativamente para PC si la 0 es despe,ada. Esta instrucción se ramifca relativamente para PC en ya sea la dirección la PC ! "# PC d destino d $ "%&. La ' de parámetro es el o(set de PC y es representada en )orma de complemento de dos. El equivalente para instrucción *R*C B '&.
OPERACIÓN I4 N 2 % t/en )C " )C # # ($ else )C " )C # (
SINTAXIS: FR)L OPERANDOS: 78? & & #8' CONTADOR DE INSTRUCCIONES: )C " )C # # ( )C " )C # ($ si la condici:n es 4alsa
EJEMPLO: su.i r,8$ % .r9l 9ositi6e !!! 9ositi6e+ no9
* Su.tract % 4rom r,8 * Franc/ i4 r,8 9ositi6e * Franc/ destination 0do not/ing1
PALABRAS: ( 0, .ytes1 CICLOS: ( i4 condition is 4alse , i4 condition is true
BRSH DESCRIPCION La rama relati6a condicional! )rue.a la Fandera de Arrastre 0C1 y las ramas relati6amente 9ara )C si la C es des9eada! Si la instrucci:n es eecutada inmediatamente des9us de la eecuci:n de cualuier del instrucciones C)$ C)I$ UNPA COMO SUFSTITUTO o SUFI la rama ocurrir; si y s:lo si lo el nQmero sin 4irmar y .inario re9resentado en Rd 4ue mayor o igual 9ara el nQmero sin 4irmar y .inario re9resentado en Rr! Esta instrucci:n se rami4ica relati6amente 9ara )C en ya sea la direcci:n 0la )C 7 8' )C d destino d # 8?1! La de 9ar;metro es el o44set de )C y es re9resentado en 4orma de com9lemento de dos! 0El eui6alente 9ara instrucci:n FRFC %$ 1!
OPERACIÓN I4 Rd Rr 0C 2 %1 t/en )C " )C # # ($ else )C " )C # (
SINTAXIS: FRS OPERANDOS: 78? & & #8' CONTADOR DE INSTRUCCIONES: )C " )C # # ( )C " )C # ($ si la condici:n es 4alsa
EJEMPLO:
su.i r(J$ ? .rs/ /ig/sm !!! /ig/sm+ no9
* Su.tract ? 4rom r(J * Franc/ i4 r(J W2 ? 0unsigned1 * Franc/ destination 0do not/ing1
PALABRAS: ( 0, .ytes1 CICLOS: ( i4 condition is 4alse , i4 condition is true
BRTC DESCRIPCION La rama relati6a condicional! )rue.a la T lag y ramas relati6amente 9ara )C si la T es des9eada! Esta instrucci:n se rami4ica relati6amente 9ara )C en cualuier direcci:n 0la )C 7 8' )C d destino d # 8?1! La de 9ar;metro es el o44set de )C y es re9resentada en 4orma de com9lemento de dos! 0El eui6alente 9ara instrucci:n FRFC 8$ 1!
OPERACION I4 T 2 % t/en )C " )C # # ($ else )C " )C # (
SINTAXIS: FRTC OPERANDOS: 78? & & #8' CONTADOR DE INSTRUCCIONES: )C " )C # # ( )C " )C # ($ si la condici:n es 4alsa
EJEMPLO: .st r'$ .rtc tclear !!! tclear+ no9
* Store .it o4 r' in T lag * Franc/ i4 t/is .it -as cleared * Franc/ destination 0do not/ing1
PALABRAS: ( 0, .ytes1 CICLOS: ( i4 condition is 4alse , i4 condition is true
BRTS DESCRIPCION La rama relati6a condicional! )rue.a la T lag y ramas relati6amente 9ara )C si la T est; colocada! Esta instrucci:n se rami4ica relati6amente 9ara )C en ya sea la direcci:n 0la )C 7 8' )C d destino d # 8?1! La de 9ar;metro es el o44set de )C y es re9resentada en 4orma de com9lemento de dos! 0El eui6alente 9ara instrucci:n FRFS 8$ 1!
OPERACIÓN
0i1 I4 T 2 ( t/en )C " )C # # ($ else )C " )C # (
SINTAXIS: FRTS OPERANDOS: 78? & & #8' CONTADOR DE INSTRUCCIONES: )C " )C # # ( )C " )C # ($ si la condici:n es 4alsa
EJEMPLO: .st .rts !!! tset+
r'$ tset
* Store .it o4 r' in T lag * Franc/ i4 t/is .it -as set
no9
* Franc/ destination 0do not/ing1
PALABRAS: ( 0, .ytes1 CICLOS: ( i4 condition is 4alse , i4 condition is true
BRVC DESCRIPCION La rama relati6a condicional! )rue.a la Fandera de Re.alse 01 y las ramas relati6amente 9ara )C si la es des9eada! Esta instrucci:n se rami4ica relati6amente 9ara )C en ya sea la direcci:n 0la )C 7 8' )C d destino d # 8?1! La de 9ar;metro es el o44set de )C y es re9resentada en 4orma de com9lemento de dos! 0El eui6alente 9ara instrucci:n FRFC '$ 1!
OPERACIÓN 0i1 I4 2 % t/en )C " )C # # ($ else )C " )C # (
SINTAXIS: FRC OPERANDOS: 78? & & #8' CONTADOR DE INSTRUCCIONES: )C " )C # # ( )C " )C # ($ si la condici:n es 4alsa
EJEMPLO: add r'$ r? .r6c noo6er !!! noo6er+ no9
* Add r? to r' * Franc/ i4 no o6er4lo* Franc/ destination 0do not/ing1
PALABRAS: ( 0, .ytes1 CICLOS: ( i4 condition is 4alse , i4 condition is true
BRVS DESCRIPCION
La rama relati6a condicional! )rue.a la Fandera de Re.alse 01 y las ramas relati6amente 9ara )C si la est; colocada! Esta instrucci:n se rami4ica relati6amente 9ara )C en ya sea la direcci:n 0la )C 7 8' )C d destino d # 8?1! La de 9ar;metro es el o44set de )C y es re9resentada en 4orma de com9lemento de dos! 0El eui6alente 9ara instrucci:n FRFS '$ 1!
OPERACION 0i1 I4 2 ( t/en )C " )C # # ($ else )C " )C # (
SINTAXIS: FRS OPERANDOS: 78? & & #8' CONTADOR DE INSTRUCCIONES: )C " )C # # ( )C " )C # ($ si la condici:n es 4alsa
EJEMPLO: add r'$ r? * Add r? to r' .r6s o6er4l * Franc/ i4 o6er4lo!!! o6er4l+ no9 * Franc/ destination 0do not/ing1
PALABRAS: ( 0, .ytes1 CICLOS: ( i4 condition is 4alse , i4 condition is true
BSET DESCRIPCION Incrusta un 9edacito o Fandera sola en SREG!
OPERACIÓN 0i1 SREG0s1 " (
SINTAXIS: FSET s OPERANDOS: % & s & H CONTADOR DE INSTRUCCIONES: )C " )C # ( EJEMPLO: .set 8* Set T lag .set H* Ena.le interru9t
PALABRAS: ( 0, .ytes1 CICLOS: ( BST
DESCRIPCION Almacena un .it . de Rd 9ara la T lag en SREG 0el Registro de Estatus1!
OPERACIÓN 0i1 T " Rd 0.1
SINTAXIS: FST Rd$ . OPERANDOS: % & d & '($ % & . & H CONTADOR DE INSTRUCCIONES: )C " )C # ( EJEMPLO: .st r($ , .ld r%$ ?
* Co9y .it * Store .it , o4 r( in T lag * Load T into .it ? o4 r%
PALABRAS: ( 0, .ytes1 CICLOS: ( CALL DESCRIPCION Llama 9ara una su.rutina dentro de la memoria entera de )rograma! La direcci:n del remitente 09ara la instrucci:n des9us de la LLAMADA1 se guardar; encima de la )ila! 0ea tam.in a RCALL1! El )untero de la )ila usa un esuema de 9ostdecremento durante la LLAMADA! Esta instrucci:n no est; dis9oni.le en todos los dis9ositi6os! Re4irase al dis9ositi6o ue la instrucci:n es9ecX4ica coloc: resumen!
OPERACIÓN 0i1 )C " De6ices -it/ (8 .its )C$ (,3< .ytes )rogram memory maimum! 0ii1 )C " De6ices -it/ ,, .its )C$ 3M .ytes )rogram memory maimum!
SINTAXIS 0i1 CALL 0ii1 CALL
OPERANDOS % & 8?< % & ?M
CONTADOR )C " )C "
STACK STAC< " )C#, S) " S)7,$ 0, .ytes$ (8 .its1
STAC< " )C#, S) " S)7' 0' .ytes$ ,, .its1
EJEMPLO: mo6 r(8$ r% call c/ec no9 !!! c/ec+ c9i r(8$ ?, .re error ret !!! error+ rm9 error
* Co9y r% to r(8 * Call su.routine * Continue 0do not/ing1 * C/ec i4 r(8 /as a s9ecial 6alue * Franc/ i4 eual * Return 4rom su.routine * In4inite loo9
PALABRAS: , 0? .ytes1 CICLOS: ?$ de6ices -it/ (8 .it )C $ de6ices -it/ ,, .it )C CICLOS XMEGA: '$ de6ices -it/ (8 .it )C ?$ de6ices -it/ ,, .it )C
CBI DESCRIPCION 4espe,a un especifcado pedacito en uno o el Re5istro de la D :. Esta instrucción opera en lo más ba,o #B o los Re5istros de la D : el -!#@ de direcciones.
OPERACIÓN IKO0A$ .1 " %
SINTAXIS+ CFI A$ . OPERANDOS: % & A & '($ % & . & H CONTADOR: )C " )C # ( EJEMPLO: c.i
(,$H * Clear .it H in )ort D
PALABRAS: ( 0, .ytes1 CICLOS: , CICLOS XMEGA: ( CICLOS R!"#$!" C%&! '()*AVR: ( CBR DESCRIPCION
Des9ea los es9eci4icados 9edacitos en el registro Rd! Realia el o9erador .ooleano AND l:gico entre el contenido de registro Rd y el com9lemento del constante ilo.yte de la m;scara! El resultado ser; colocado en registro Rd!
OPERACIÓN 0i1 Rd " Rd 0 7 <1
SINTAXIS: CFR Rd$ < OPERANDOS: (8 & d & '($ % & < & , CONTADOR: )C " )C # ( EJEMPLO: c.r c.r
r(8$ % r(3$ (
* Clear u99er ni..le o4 r(8 * Clear .it % in r(3
PALABRAS: ( 0, .ytes1 CICLOS: ( CLC DESCRIPCION Des9ea la Fandera de Arrastre 0C1 en SREG 0el Registro de Estatus1!
OPERACIÓN 0i1 C " %
SINTAXIS: CLC OPERANDOS: Ninguno CONTADOR: )C " )C # ( EJEMPLO: add clc
r%$ r% * Add r% to itsel4 * Clear Carry lag
PALABRAS: ( 0, .ytes1 CICLOS: ( CLH DESCRIPCION Des9ea la Media Fandera de Arrastre 01 en SREG 0el Registro de Estatus1!
OPERACIÓN
0i1 " %
SINTAXIS: CL OPERANDOS: Ninguno CONTADOR: )C " )C # ( EJEMPLO: cl/
* Clear t/e al4 Carry lag
PALABRAS: ( 0, .ytes1 CICLOS: ( SUB D!+$&(,$(-) Resta dos registros y coloca el resultado en la Calle de registro de destino!
O,!&.$(-) Rd " Rd 7 Rr
S*)'./(+:
O,!&.)"%+:
SUF Rd$ Rr
% & d & '($ % & r & '(
C%)'."%&: )C " )C # (
CLI OPERACIÓN I"%
SINTAXIS: CLI OPERANDOS: Ninguno CONTADOR: )C " )C # ( EJEMPLO in cli s.i s.i out
tem9$ SREG EECR$ EEM=E EECR$ EE=E SREG$ tem9
PALABRAS: ( 0, .ytes1 CICLOS: ( CLN OPERACIÓN N " %
* Store SREG 6alue 0tem9 must .e de4ined .y user1 * Disa.le interru9ts during timed seuence * Start EE)ROM -rite * Restore SREG 6alue 0I7lag1
SINTAXIS: CLN OPERANDOS: Ninguno CONTADOR: )C " )C # ( EJEMPLO add cln
r,$ r' * Add r' to r, * Clear Negati6e lag
PALABRAS: ( 0, .ytes1 CICLOS: ( SUBI O,!&.$(-) Rd " Rd 7 <
S()'./(+: 0i1 SUFI Rd$ <
O,!&.)"%+: (8 & d & '($ % & < & ,
C%)'."%& "!0 P&%&.2.: )C " )C # (
D!+$&(,$(-) Resta un registro y una constante y coloca el resultado en el registro de destino Rd! Esta instrucci:n se est; tra.aando en el Registro R(8 a R'( y est; muy .ien ada9tado 9ara las o9eraciones en la Z$ Y B de los 9unteros!
SBC O,!&.$(-) Rd " Rd 7 Rr 7 C
S*)'./(+: 0i1 SFC Rd$ Rr
O,!&.)"%+: % & d & '($ % & r & '(
C%)'."%& "!0 P&%&.2.: )C " )C # (
D!+$&(,$(-) Resta dos registros y resta con la .andera C y coloca el resultado en la Calle de registro de destino!
SBCI O,!&.$(-) Rd " Rd 7 < 7 C
S()'./(+: 0i1 SFCI Rd$ <
O,!&.)"%+: (8 & d & '($ % & < & ,
C%)'."%& "!0 P&%&.2.: )C " )C # (
D!+$&(,$(-) Resta una constante a 9artir de un registro y resta con la .andera C y coloca el resultado en el registro de destino Rd!
SBIW
O,!&.$(-): Rd#(+ Rd " Rd#(+ Rd 7 <
S()'./(+: SFI= Rd#(+ Rd$
O,!&.)"%+: C%)'."%& "!0 P&%&.2.: < d ∈ >,?$ ,8$ ,3$'%@$ % & < & 8' )C " )C # (
D!+$&(,$(-): Resta un 6alor inmediato 0%78'1 a 9artir de un 9ar de registro y coloca el resultado en el 9ar de registros! Esta instrucci:n o9era so.re los 9ares de registro su9erior cuatro$ y se ada9ta .ien 9ara las o9eraciones en los Registros de 9untero! Esta instrucci:n no est; dis9oni.le en todos los dis9ositi6os! Consulte el resumen de un dis9ositi6o es9ecX4ico conunto de instrucciones!
ORI O,!&.$(-) 0i1 Rd " Rd 6 <
S()'./(+:
O,!&.)"%+:
ORI Rd$ <
(8 & d & '($ % & < & ,
C%)'."%& "! P&%&.2.: )C " )C # (
D!+$&(,$(-) Realia la o9eraci:n l:gica OR entre el contenido del registro Rd! y una constante y coloca el resultado en el registro de destino Rd!
EOR O,!&.$(-) 0i1 RD " Rd!
A Rr
S()'./(+:
O,!&.)"%+:
C%)'."%& "! P&%&.2.:
0i1 EOR Rd!$ RR
% & d & '($ % & r & '(
)C " )C # (
D!+$&(,$(-) Lle6a a ca.o la recu9eraci:n asistida del OR eclusi6o entre el contenido del registro Rd y Rr registro y coloca el resultado en el registro de destino Rd!
COM O,!&.$(-) 0i1 Rd " 7 Rd!
S()'./(+:
O,!&.)"%+:
C%)'."%& "! P&%&.2.:
COM Rd!
% & d & '(
)C " )C # (
D!+$&(,$(-) Esta instrucci:n se lle6a a ca.o un com9lemento Uno de registro Rd!
NEG O,!&.$(-) RD " %% 7 Calle
S()'./(+:
O,!&.)"%+:
C%)'."%& "! P&%&.2.:
NEG Rd!
% & d & '(
)C " )C # (
D!+$&(,$(-) Reem9laa el contenido del registro Rd con com9lemento de sus dos mueres* el 6alor de 3% se mantiene sin cam.ios!
SBR SBR O,!&.$(-) RD " Rd! 6 <
S()'./(+:
O,!&.)"%+:
C%)'."%& "! P&%&.2.:
SFR Rd$
< (8 & d & '($ % & < & ,
)C " )C # (
D!+$&(,$(-) Esta.lece .its es9eci4icado en el registro Rd!!! Realia la l:gica ORI entre el contenido del registro Rd! y una m;scara constante < y coloca el resultado en RD registro de destino
INC O,!&.$(-) R Rd! " Rd (
S()'./(+:
O,!&.)"%+:
INC Rd!
% & d & '(
C%)'."%& "! P&%&.2.: )C " )C (
D!+$&(,$(-) A5ade un 7( 7 9ara el contenido del registro Rd! y coloca el resultado en el registro de destino Rd!!! La .andera C en SREG no se 6e a4ectada 9or la o9eraci:n$ 9ermitiendo asX ue la instrucci:n INC 9ara ser utiliado en un contador de .ucle en los c;lculos de 9recisi:n mQlti9le! Cuando se o9era en nQmeros sin signo$ s:lo ramas FRE y Frne se 9uede es9erar ue un rendimiento consistente! Cuando se tra.aa con 6alores de com9lemento a dos$ todas las ramas 4irmados est;n dis9oni.les!
DEC O,!&.$(-) Rd! " Rd! 7 (
S()'./(+:
O,!&.)"%+:
C%)'."%& "! P&%&.2.:
DEC Rd!
% & d & '(
)C " )C (
D!+$&(,$(-) Resta un 7( 7 de los contenidos de registro Rd! y coloca el resultado en el registro de destino Road! La .andera C en SREG no se 6e a4ectada 9or la o9eraci:n$ 9ermitiendo asX ue la instrucci:n diciem.re 9ara ser utiliado en un contador de .ucle en los c;lculos de 9recisi:n mQlti9le! Cuando se o9era en 6alores sin signo$ s:lo ramas FRE y Frne se 9uede es9erar ue un rendimiento consistente! Cuando se tra.aa con 6alores de com9lemento a dos$ todas las ramas 4irmadas est;n dis9oni.les!
TST O,!&.$(-) 0i1 R Rd! " Rd! RD
S()'./(+:
O,!&.)"%+:
C%)'."%& "! P&%&.2.:
TST Rd!
% & d & '(
)C " )C (
D!+$&(,$(-) Com9rue.a si un registro es cero o negati6o! Realia una o9eraci:n l:gica AND entre un registro y sX mismo! El registro se mantendr; sin cam.ios!
CLR O,!&.$(-) R Rd! " Rd!
A Rd!
S()'./(+:
O,!&.)"%+:
C%)'."%& "! P&%&.2.:
CLR Rd!
% & d & '(
)C " )C (
D!+$&(,$(-) Forra un registro! Esta instrucci:n realia un OR eclusi6o entre un registro y sX mismo! Esto .orrar; todos los .its en el registro!
SER O,!&.$(-) Rd "
S()'./(+:
O,!&.)"%+:
C%)'."%& "! P&%&.2.:
SER Rd!
(8 & d & '(
)C " )C (
D!+$&(,$(-): Carga directamente al registro de Calle! MUL O,!&.$(-) R(+ R% " Rd! [ RR 0sin signo " sin signo signo1
S()'./(+:
O,!&.)"%+:
C%)'."%& "! P&%&.2.:
MUL Rd!$ RR
% & d & '($ % & r & '(
)C " )C (
D!+$&(,$(-) Esta instrucci:n realia de 37.its 37.its \ (87.its sin signo de multi9licaci:n! El RD multi9licando y el multi9licador del RR son dos registros ue contienen nQmeros sin signo! El 9roducto entero de (8 .its se encuentra en R( 0.yte alto1 y R% 0lo-1! Tenga en cuenta ue si el multi9licando o el multi9licador se selecciona de R% o R( el resultado se so.re9onen a los ue des9us de la multi9licaci:n! Esta instrucci:n no est; dis9oni.le en todos los dis9ositi6os! Consulte el resumen de un dis9ositi6o es9ecX4ico conunto de instrucciones!
MULS
O,!&.$(-) R(+ R% " Rd! [ Rr 04irmado " 4irmado [ 4irmado1
S()'./(+:
O,!&.)"%+:
C%)'."%& "! P&%&.2.:
Muls Rd$ Rc
(8 & d & '($ (8 & r & '(
)C " )C (
D!+$&(,$(-) Esta instrucci:n realia de 37.its 37.its \ (87.its multi9licaci:n 4irmado! El RD multi9licando y el multi9licador del RR son dos registros ue contienen nQmeros con signo! El 9roducto de (8 .its con signo se coloca en R( 0.yte alto1 y R% 0lo-1! Esta instrucci:n no est; dis9oni.le en todos los dis9ositi6os! Consulte el resumen de un dis9ositi6o es9ecX4ico conunto de instrucciones!
MULSU O,!&.$(-) R(+ R% " Rd! [ Rr 04irmado " 4irmado [ sin signo1
S()'./(+:
O,!&.)"%+:
C%)'."%& "! P&%&.2.:
MULSU Rd$ Rc
(8 & d & ,'$ (8 & r & ,'
)C " )C (
D!+$&(,$(-) Esta instrucci:n realia de 37.its 37.its \ (87.its multi9licaci:n de una 4irma y un nQmero sin signo! El RD multi9licando y el multi9licador del RR son dos registros! El RD multi9licando es un nQmero con signo$ y el multi9licador Rr no tiene signo! El 9roducto de (8 .its con signo se coloca en R( 0.yte alto1 y R% 0lo-1! Esta instrucci:n no est; dis9oni.le en todos los dis9ositi6os! Consulte el resumen de un dis9ositi6o es9ecX4ico conunto de instrucciones!
FMUL O,!&.$(-) R(+ R% " Rd! [ RR 0sin signo 0($(1 " sin signo 0($H1 [ sin signo 0(!H11
S()'./(+:
O,!&.)"%+:
MUL Rd!$ Rr
(8 & d & ,'$ (8 & r & ,'
C%)'."%& "! P&%&.2.: )C " )C (
D!+$&(,$(-) Esta instrucci:n se lle6a a ca.o de 37.its 37.it \ (87.it sin signo de multi9licaci:n y cam.ia el resultado de un .it a la iuierda! Sea 0N1 indican un nQmero 4raccionario con los dXgitos .inarios de N a la iuierda del 9unto de .ase$ y los dXgitos .inarios derec/a del 9unto de .ase! Una multi9licaci:n de dos nQmeros en los 4ormatos 0N(!(1 y 0N,!,1 resultados en el 4ormato 00N($ N,1!
FMULS O,!&.$(-) R(+ R% " Rd! [ Rr 04irmado 0($(1 " 4irmado 0($H1 [ 4irmado 0($H11
S()'./(+:
O,!&.)"%+:
MULS Rd$ Rc
(8 & d & ,'$ (8 & r & ,'
C%)'."%& "! P&%&.2.: )C " )C # (
D!+$&(,$(-) Esta instrucci:n se lle6a a ca.o de 37.its 37.it \ (87.it de multi9licaci:n 4irmado y cam.ia el resultado de un .it a la iuierda! Sea 0N1 indican un nQmero 4raccionario con los dXgitos .inarios de N a la iuierda del 9unto de .ase$ y los dXgitos .inarios derec/a del 9unto de .ase! Una multi9licaci:n de dos nQmeros en los 4ormatos 0N(!(1 y 0N,!,1 resultados en el 4ormato 00N( # N,1! 0( # ,11!
FMULSU O,!&.$(-) R(+ R% " Rd! [ Rr 04irmado 0($(1 " 4irmado 0($H1 [ sin signo 0(!H11
S()'./(+:
O,!&.)"%+:
C%)'."%& "! P&%&.2.:
MULSU Rd$ Rc
(8 & d & ,'$ (8 & r & ,'
)C " )C (
D!+$&(,$(-) Esta instrucci:n se lle6a a ca.o de 37.its 37.it \ (87.it de multi9licaci:n 4irmado y cam.ia el resultado de un .it a la iuierda! Sea 0N1 indican un nQmero 4raccionario con los dXgitos .inarios de N a la iuierda del 9unto de .ase$ y los dXgitos .inarios derec/a del 9unto de .ase! Una multi9licaci:n de dos nQmeros en los 4ormatos 0N(!(1 y 0N,!,1 resultados en el 4ormato 00N($ N,1! 0T( T,11
DES O,!&.$(-) Si 2 %$ entonces Ci4rar ronda 0RH7R%$ R(7R3$ <1 Si 2 ( entonces desci4rar ronda 0RH7R%$ R(7R3$ <1
S()'./(+:
O,!&.)"%+:
DES %%%
< & < & %%
C%)'."%& "! P&%&.2.: )C " )C (
D!+$&(,$(-) El m:dulo es una etensi:n del conunto de instrucciones a la C)U AR$ la realiaci:n de iteraciones DES! El .loue 8?7.it de datos 0teto o teto ci4rado1 se coloca en el arc/i6o de registro de la C)U$ registros R%7RH$ donde LSF de datos se colocan en LSF de R% y MSF de datos se colocan en MSF de RH! El total de 8?7.its 0incluyendo los .its de 9aridad1 se coloca en los registros R37R($ organiado en el arc/i6o de registro con el LSF de cla6e en la LSF y MSF de la R3 de la cla6e en el MSF del R(! Eecuci:n de una instrucci:n DES realiar; un ciclo en el algoritmo DES! Diecisis rondas de.en ser eecutadas en orden creciente 9ara 4ormar la correcta ci4rado DES o teto 9lano! Los resultados intermedios se almacenan en el registro de arc/i6o 0R%7R(1 o9erando DES de instrucciones 0<1 determina ue todo se eecuta$ y la .andera de acarreo de la mitad 01 determina si el ci4rado o desci4rado se realia
RJMP O,!&.$(-) )C " )C # # (
S()'./(+:
O,!&.)"%+:
RPM) 7,
< & ,<
C%)'."%& "! P&%&.2.: P(0. )C " )C # # ( sin cam.ios
D!+$&(,$(-) Salto relati6o a una direcci:n dentro de )C 7 ,< #( y )C # ,< 09ala.ras1! )ara los microcontroladores AR con memoria de 9rograma ue no eceda de ? < 9ala.ras 03< .ytes1 esta instrucci:n 9uede a.ordar toda la memoria de todas las u.icaciones de direcciones! ase tam.in el PM)!
IJMP O,!&.$(-) 0I1 " )C B 0(+%%1 Los dis9ositi6os con )C de (8 .its$ el m;imo de (,3 <. de memoria de 9rograma! 0Ii1 )C 0(+%%1 " B 0(+%%1 Los dis9ositi6os con )C ,, .its$ .ytes )rograma 3M de memoria m;ima! )C 0,(+(81 " %
S()'./(+:
O,!&.)"%+:
C%)'."%& "! P&%&.2.: P(0.:
0I1$ 0ii1 Ninguna IPM) Consulte O9eraci:n no a4ectada
D!+$&(,$(-) Salto indirecto a la direcci:n a9untada 9or la B 0(8 .its1 un registro 9untero en el arc/i6o de Registro! El Registro de B79untos es de (8 .its de anc/o y 9ermite saltar dentro de los m;s .aos 9ala.ras 8?< 0(,3< .ytes1 9arte de la memoria de 9rograma! Esta instrucci:n no est; dis9oni.le en todos los dis9ositi6os! Consulte el resumen de un dis9ositi6o es9ecX4ico conunto de instrucciones!
EIJMP O,!&.$(-) )C 0(+%%1 " B 0(+%%1 )C 0,(+(81 " Eind
S()'./(+:
O,!&.)"%+:
C%)'."%& "! P&%&.2.: P(0.:
0I1 Ninguna EIPM) Consulte O9eraci:n no a4ectada
D!+$&(,$(-) Salto indirecto a la direcci:n a9untada 9or la B 0(8 .its1 un registro 9untero en el Arc/i6o de Registro y el Registro Eind en el es9acio de E K S! Esta instrucci:n 9ermite saltos indirectos a la totalidad ?M 09ala.ras1 el es9acio de memoria del 9rograma! ase tam.in IPM)! Esta instrucci:n no est; dis9oni.le en todos los dis9ositi6os! Consulte el resumen de un dis9ositi6o es9ecX4ico conunto de instrucciones!
JMP O,!&.$(-) 0I1 " )C
S()'./(+:
O,!&.)"%+:
C%)'."%& "! P&%&.2.: P(0.:
0I1 PM)
% &
)C " ?M sin cam.ios
D!+$&(,$(-) Ir a una direcci:n dentro de la totalidad ?M 09ala.ras1 de memoria de 9rograma! ase tam.in RPM)! Esta instrucci:n no est; dis9oni.le en todos los dis9ositi6os! Consulte el resumen de un dis9ositi6o es9ecX4ico conunto de instrucciones
RCALL O,!&.$(-) 0I1 )C " )C # # ( Los dis9ositi6os con )C de (8 .its$ .ytes )rograma de (,3< de memoria m;ima! 0Ii1 )C " )C # # ( Los dis9ositi6os con )C ,, .its$ .ytes m;imo de 3M de memoria de 9rograma!
S()'./(+:
O,!&.)"%+:
C%)'."%& "! P&%&.2.: P(0.:
0I1 rcall 7,
< & ,<
0Ii1 rcall 7,
< & ,<
)C " )C # # ( )ILA " )C # ( S) " S) 7 , 0, .ytes$ (8 .its1 )C " )C # # ( )ILA " )C # ( S) " S) 7 ' 0' .ytes$ ,, .its
D!+$&(,$(-) Llamada relati6a a una direcci:n dentro )C 7 ,< # ( # ,< y )C 0las 9ala.ras1! La direcci:n de retorno 0la instrucci:n des9us de la rcall1 se almacena en la 9ila! ase tam.in el LLAMADO! )ara AR microcontroladores con memoria de 9rograma ue no eceda de ? < 9ala.ras 03< .ytes1 esta instrucci:n 9uede a.ordar toda la memoria de todas las u.icaciones de direcciones! El 9untero de 9ila utilia un esuema de decremento 9osterior durante rcall! EICALL Operación
PC @F--& H > @F--& PC B@@"& H Eind Sintaxis: Contador de Programa: Pila:
E1C+LL de operación H PC $ @ H SP ! # # BB bits& Descripción
Operandos:
pila SP
Llamada indirecta de una subrutina a la que apunta la > @" bits& un re5istro puntero en el +rc3ivo de Re5istro y el Re5istro Eind en el espacio de E D S. Esta instrucción permite llamadas indirectas a la totalidad %7 palabras& el espacio de memoria del pro5rama. 6