Está en la página 1de 5

INSTRUCCIN: Descripcin: Operacin:

ADDWF f,d (hex = 07 ff) Suma el acumulador y el registro f. d = W + f (d puede ser W f). sta instruccin suma el contenido del acumulado con el registro f! y el resultado se guarda dependiendo del "alor de d. Si d = #! se guarda en W. Si d = $! se guarda en f. Si no se pone nada! el "alor por defecto es $ y se guarda en f. %am&i'n se puede indicar directamente W f.

(emplo:

Si tomamos como "alores iniciales W = ) y D*%O = $#. *DDW+ D*%O , D*%O = $) y W = ). *DDW+ D*%O! $, D*%O = $) y W = ). *DDW+ D*%O! #, W = $) y D*%O = $#. *DDW+ D*%O! W, W = $) y D*%O = $#. /odifica los &its 0! D1 y 1. 0 "ale $ si el resultado de la operacin es #.

-egistro S%*%.S:


INSTRUCCIN: Descripcin: Operacin:

D1 "ale $ si el resultado de la operacin es un n2mero superior a $). 1 "ale $ si el resultado de la operacin es positi"o o el &it 3 del registro 4ue contiene el resultado "ale #. n caso contrario 1 "ale # (resultado negati"o).

ANDWF f,d (hex = 0! ff) Operacin lgica *5D entre el acumulador y el registro f. d = W *5D f (d puede ser W o f). sta instruccin reali6a una operacin lgica AND entre el contenido del acumulador W y el registro f. l resultado se guarda seg2n sea el "alor de d. Si d = #! se guarda en W. Si d = $! se guarda en f. Si no se pone nada! el "alor por defecto es $ y se guarda en f. %am&i'n se puede indicar directamente W f.

(emplo:

Si 4ueremos e7traer los 8 &its menos significati"os de un registro! podremos utili6ar una m9scara para o&tenerlos. .samos el "alor ####$$$$: para reali6ar la operacin *D5 y as; o&tenerlos (para los 8 &its m9s significati"os utili6ar;amos el "alor $$$$####:). 1argamos el "alor del cual 4ueremos e7traer los 8 &its menos significati"os en f (f = $#$#$#$#:). 1argamos el acumulador con la m9scara (W = ####$$$$:). *5DW+ f!W l resultado 4ueda guardado en el acumulador (W = ####$#$#:). "x#l$cac$%& de la o#e ac$%& AND: Te&emo' ( #o'$)le' com)$&ac$o&e' e&* e do' )$*' # *5D # = # # *5D $ = # $ *5D # = # $ *5D $ = $ <emos 4ue solamente en el caso de 4ue am&os &its sean $! el resultado ser9 $. sta instruccin compara dos &ytes! &it a &it. /odifica el &it 0. 0 "ale $ si el resultado de la operacin es #. C+RF f (hex = 0, -f) =one a cero el registro f. + = #. sta instruccin pone a cero el "alor contenido en el registro direccionado por el par9metro f. =uede decirse 4ue &orra el registro f.

-egistro S%*%.S: INSTRUCCIN: Descripcin: Operacin:

(emplo:

Si 4ueremos poner a cero el registro T.R0! cuya direccin es #$>! tendr;amos 4ue utili6ar C+RF 0,/ Si ?emos incluido al inicio del cdigo fuente el fic?ero 0IC,1F-(2INC! podemos utili6ar el nom&re sim&lico de dic?o registro: 1@-+ %/-# /odifica el &it 0 y lo pone a $ (ya 4ue el resultado de la operacin es #). C+RW (hex = 0, 00) =one el acumulado a cero. W=# sta instruccin pone a cero el "alor contenido en el registro W (acumulado ) 5o es necesarioA /odifica el &it 0 y lo pone a $ (ya 4ue el resultado de la operacin es #). C3.F f,d (hex = 04 ff) 1omplementa el registro f. d = 5O% f (d puede ser W f). sta instruccin efect2a el complemento del "alor contenido en el registro direccionado por el par9metro f. @a operacin de com#leme&*a consiste en in"ertir los &its: poner los ceros a unos y los unos a ceros.

-egistro S%*%.S: INSTRUCCIN: Descripcin: Operacin: (emplo: -egistro S%*%.S: INSTRUCCIN: Descripcin: Operacin:

l par9metro d determina el destino del "alor o&tenido. Si d = W! el resultado se almacena en el acumulado . Si d = f! el resultado se almacena en el propio registro f. (emplo: Si tenemos en =O-%* el "alor ####$$$$:! al e(ecutar: 1O/+ =O-%* l resultado ser9 =O-%* = $$$$####:. Si aplicamos para el mismo "alor inicial! la instruccin: 1O/+ =O-%*! W l resultado ser9 W = $$$$####: y =O-%* = ####$$$$:. /odifica el &it 0. 0 "ale $ si el resultado de la operacin es #. D"CF f,d (hex = 05 ff) Decrementa en $ el registro f. d = f B $ (d puede ser W f). sta instruccin decrementa en uno el contenido del registro direccionado por el par9metro f. l par9metro d determina el destino del "alor o&tenido. Si d = W! el resultado se almacena en el acumulado . Si d = f! el resultado se almacena en el propio registro f. (emplo: Si tenemos un registro DC* = 3. *plicando la instruccin D 1+ DC*! #! tendremos W = D y DC* = 3. Si aplicamos esta otra D 1+ DC*! $! tendremos DC* = D. /odifica el &it 0. 0 "ale $ si el resultado de la operacin es #. D"CFS6 f,d (hex = 07 ff) Decrementa en $ a f! y si f = # salta la siguiente instruccin. d = f B $! si d = # S*@%* (d puede ser W f). sta instruccin decrementa el contenido del registro direccionado por el par9metro f! y si el resultado es # se salta la instruccin siguiente. l par9metro d determina el destino del "alor o&tenido. Si d = W! el resultado se almacena en el acumulado . Si d = f! el resultado se almacena en el propio registro f. (emplo: D 1+S0 <*@O-! W C5S%-.11CO5 $ C5S%-.11CE5 F Si el contenido del registro <*@O- al decrementarlo en $ es igual a #! se guarda el resultado en el acumulador y sigue con la C5S%-.11CO5F! salt9ndose la C5S%-.11CO5$. Si el resultado 4ue guardamos en W &o es #! sigue con la C5S%-.11CO5$ y despu's con la C5S%-.11CO5F (no se salta la inmediata siguiente). 5o modifica ning2n &it de estado. INCF f,d (hex = 0A ff) Cncrementa en $ el registro f. d = f + $ (d puede ser W f). sta instruccin incrementa en uno el contenido del registro direccionado por el par9metro f. l par9metro d determina el destino del "alor o&tenido. Si d = W! el resultado se almacena en el acumulado . S$ d = 8f9, el e'ul*ado 'e almace&a e& el # o#$o e:$'* o 8f92 (emplo: Si tenemos un registro DC* = 3. *plicando la instruccin C51+ DC*! #! tendremos W = G y DC* = 3. Si aplicamos esta otra C51+ DC*! $! tendremos DC* = G. /odifica el &it 0. 0 "ale $ si el resultado de la operacin es #. INCFS6 f,d (hex = 0F ff) Cncrementa en $ a f! y si f = # salta la siguiente instruccin d = f + $! si d = # S*@%* (d puede ser W f). sta instruccin incrementa en uno el contenido del registro direccionado por el par9metro f! y si el resultado es # se salta la instruccin siguiente. l par9metro d determina el destino del "alor o&tenido. Si d = W! el resultado se almacena en el acumulado . Si d = f! el resultado se almacena en el propio registro f. (emplo: C51+S0 <*@O-! W C5S%-.11CO5 $ C5S%-.11CE5 F Si el contenido del registro <*@O- al incrementarlo en $ es igual a #! se guarda el resultado en el acumulador y sigue con la C5S%-.11CO5F! salt9ndose la C5S%-.11CO5$.

-egistro S%*%.S: INSTRUCCIN: Descripcin: Operacin:

-egistro S%*%.S: INSTRUCCIN: Descripcin: Operacin:

-egistro S%*%.S: INSTRUCCIN: Descripcin: Operacin:

-egistro S%*%.S: INSTRUCCIN: Descripcin: Operacin:

Si el resultado 4ue guardamos en W &o es #! sigue con la C5S%-.11CO5$ y despu's con la C5S%-.11CO5F (no se salta la inmediata siguiente). -egistro S%*%.S: INSTRUCCIN: Descripcin: Operacin: 5o modifica ning2n &it de estado. I3RWF f,d (hex = 0( ff) Operacin lgica 3R $&clu'$;o entre el acumulado y un registro d = W O- f (d puede ser W f). sta instruccin reali6a una operacin lgica 3R $&clu'$;o entre el acumulador W y el registro direccionado por el par9metro f. l par9metro d determina donde se almacenar9 el resultado de la operacin. Si d = #! se guarda en W. Si d = $! se guarda en f. Si no se pone nada! el "alor por defecto es $ y se guarda en f. %am&i'n se puede indicar directamente W f. (emplo: Si asignamos los "alores W = $#$#$#$#: y f = #$#$#$#$:. CO-W+ f , W = $#$#$#$#: y f = $$$$$$$$:. CO-W+ f! $, W = $#$#$#$#: y f = $$$$$$$$:. CO-W+ f! #, f = #$#$#$#$: y W = $$$$$$$$:. CO-W+ f! W, f = #$#$#$#$: y W = $$$$$$$$:. /odifica el &it 0. 0 "ale $ si el resultado de la operacin es #. .3<F f,d, (hex = 0- ff) /ue"e el contenido de f al acumulado o al propio registro f. d = f (d puede ser W f). sta instruccin copia el contenido del registro direccionado por el par9metro f en el acumulador W o en el mismo registro f. l par9metro d determina el destino. Si d = #! se guarda en W. Si d = $! se guarda en f. Si no se pone nada! el "alor por defecto es $ y se guarda en f. %am&i'n se puede indicar directamente W f. l moti"o para copiar el contenido de un registro so&re si mismo! no es otro 4ue poder compro&ar en el registro STATUS el estado del &it 0. (emplo: Si tenemos el registro D*D = HG. /O<+ D*D! # , ?ace 4ue W = HG. /O<+ D*D! $ , ?ace 4ue D*D = HG. /O<+ D*D! W , ?ace 4ue W = HG. /O<+ D*D , ?ace 4ue D*D = HG. /odifica el &it 0. 0 "ale $ si el resultado de la operacin es #. .3<WF f (hex = 00 -f) /ue"e el contenido de W al registro f. f = W. sta instruccin copia el contenido del acumulador W en el registro direccionado por el par9metro f. (emplo: Si 4ueremos escri&ir el "alor $#> en el registro T.R0! 4ue est9 situado en la direccin #$>! tendremos 4ue cargar primero el "alor en el acumulado y despu's copiarlo al registro. /O<W+ $#> , cargar el "alor $#> en el acumulado . /O<W+ #$> , copia el acumulado en la direccin #$>. 1on los registros utili6ados por el =C1 para funciones espec;ficas! es ?a&itual no escri&ir directamente su direccin! sino el nom&re sim&lico definido en el fic?ero 0IC,1F-(2INC. n el e(emplo anterior nos 4uedar;a as;: /O<W+ $#> , cargar el "alor $#> en el acumulado . /O<W+ %/-# , copia el acumulado en el registro T.R0. 5o modifica ning2n &it de estado. N30 (hex = 00 00) 5o opera. IBIBII sta instruccin no reali6a ninguna funcin espec;fica! pero consume ( c$clo' de elo= completos. s 2til para insertar un retardo igual a un ciclo de m94uina. (emplo: .tili6ando un cristal de cuar6o de 8 /?6. en el oscilador! podremos o&tener un retardo igual a un microsegundo por cada instruccin N30 4ue insertemos en el cdigo del programa: - %*-DO 5O= 5O= 5O= - %.-5 1ada "e6 4ue llamemos a la su&rutina - %*-DO! o&tendremos H microsegundos de demora. 5o modifica ning2n &it de estado. R+F f,d (hex = 0D ff) -ota a la i64uierda el registro f.

-egistro S%*%.S: INSTRUCCIN: Descripcin: Operacin:

-egistro S%*%.S: INSTRUCCIN: Descripcin: Operacin:

-egistro S%*%.S: INSTRUCCIN: Descripcin: Operacin:

-egistro S%*%.S: INSTRUCCIN: Descripcin:

Operacin:

d = JJ $ (d puede ser W f). sta instruccin rota a la i64uierda todos los &its del registro direccionado en el par9metro f pasando por el &it CARR> del registro STATUS (o si se prefiere! desde los &its menos significati"os a los m9s significati"os). s como si mul*$#l$c? amo' #o do' el contenido del registro. l D3 pasa al CARR> del registro STATUS! el contenido del CARR> pasa al D#! el D# al D$! etc. l par9metro d determina el destino. Si d = #! se guarda en W. Si d = $! se guarda en f. Si no se pone nada! el "alor por defecto es $ y se guarda en f. %am&i'n se puede indicar directamente W f.

(emplo:

Si tenemos el registro <*@O- = #######$: y aplicamos la instruccin -@+ <*@Oel resultado ser9 <*@O- = ######$#: y el &it 1 = #. Si tenemos el registro <*@O- = $#######: y aplicamos la instruccin -@+ <*@Ol resultado ser9 <*@O- = ########: y el &it 1 = $. /odifica el &it C (CARR>). RRF f,d (hex = 0C ff) -ota a la derec?a el registro f. d = f @@ , (d #uede 'e 8W9 % 8f9)2 sta instruccin rota a la derec?a todos los &its del registro direccionado en el par9metro f pasando por el &it CARR> del registro STATUS (o si se prefiere! desde los &its m9s significati"os a los menos significati"os). s como si d$;$d$A amo' #o do' el contenido del registro. l &it C del registro STATUS pasa al D3! el D# pasa al &it C! el D$ al D#! etc. l par9metro d determina el destino. Si d = #! se guarda en W. Si d = $! se guarda en f. Si no se pone nada! el "alor por defecto es $ y se guarda en f. %am&i'n se puede indicar directamente W f.

-egistro S%*%.S: INSTRUCCIN: Descripcin: Operacin:

(emplo:

Si tenemos el registro <*@O- = #######$: y aplicamos la instruccin --+ <*@Oel resultado ser9 <*@O- = ########: y el &it 1 = $. Si tenemos el registro <*@O- = $#######: y aplicamos la instruccin --+ <*@Ol resultado ser9 <*@O- = #$######: y el &it 1 = #. /odifica el &it C (CARR>). SU7WF f,d (hex = 0B ff) -esta el acumulado del registro f. d = f C W (d #uede 'e 8W9 % 8f9)2 sta instruccin resta el "alor contenido en el acumulador W del "alor contenido en el registro direccionado por el par9metro f. l par9metro d determina el destino. Si d = #! se guarda en W. Si d = $! se guarda en f. Si no se pone nada! el "alor por defecto es $ y se guarda en f. %am&i'n se puede indicar directamente W f.

-egistro S%*%.S: INSTRUCCIN: Descripcin: Operacin:

(emplo:

Seg2n sean los "alores de W y el registro DAT3! si aplicamos S.:W+ D*%O! o&tendremos diferentes resultados en el &it CARR>. Si D*%O = H y W = F, el resultado ser9 D*%O = $ y 1 = $. Si D*%O = F y W = F, el resultado ser9 D*%O = # y 1 = $. Si D*%O = $ y W = F, el resultado ser9 D*%O = ++> y 1 = #. <emos 4ue 1 = $ por4ue el resultado es positi"o y 1 = # cuando el resultado es negati"o. /odifica los &its 0! D1 y 1. 0 "ale $ si el resultado de la operacin es #.

-egistro S%*%.S:

D1 "ale $ si el resultado de la operacin es un n2mero superior a $). 1 "ale $ si el resultado de la operacin es positi"o o el &it 3 del registro 4ue contiene el resultado "ale #. n caso contrario 1 "ale # (resultado negati"o).
INSTRUCCIN: Descripcin: Operacin: SWA0F f,d (hex = 0" ff) Cntercam&ia los 8 &its m9s significati"os con los 8 menos (ni&&les) f = 0,B5 SWA0 (!17 de 8f92 sta instruccin intercam&ia el "alor de los 8 &its m9s significati"os (D3ID8) contenidos en el registro direccionado por el par9metro f! con los 8 &its menos significati"os (DHID#) del mismo. l par9metro d determina el destino. Si d = #! se guarda en W. Si d = $! se guarda en f. Si no se pone nada! el "alor por defecto es $ y se guarda en f. %am&i'n se puede indicar directamente W f. (emplo: Si tenemos <*@O- = ####$$$$: y W = ########:! al aplicar SW*=+ <*@O- , <*@O- = $$$$####: y W = ########:. SW*=+ <*@O-! W, <*@O- = ####$$$$: y W = $$$$####:.

1on la primera instruccin modificamos el "alor del registro D*%O! y en la segunda instruccin modificamos el "alor del acumulado sin 4ue "ar;e el registro D*%O . -egistro S%*%.S: INSTRUCCIN: Descripcin: Operacin: 5o modifica ning2n &it de estado. D3RWF f,d (hex = 01 ff) Operacin lgica D3R entre el acumulado y f. d = f D3R W (d #uede 'e 8W9 % 8f9)2 sta instruccin efect2a la operacin lgica D3R (O- e7clusi"o) entre el "alor contenido en el acumulador W y el "alor contenido en el registro direccionado por el par9metro f. l par9metro d determina el destino. Si d = #! se guarda en W. Si d = $! se guarda en f. Si no se pone nada! el "alor por defecto es $ y se guarda en f. %am&i'n se puede indicar directamente W f. (emplo: Si tenemos el registro <*@O- = $$$$####: y W = $$$$$$$$:! al aplicar la instruccin KO-W+ <*@O- , ?ace <*@O- = ####$$$$: y W no "ar;a. KO-W+ <*@O-! W , ?ace W = ####$$$$: y <*@O- no "ar;a. "x#l$cac$%& de la o#e ac$%& D3R: Te&emo' ( #o'$)le' com)$&ac$o&e' e&* e do' )$*' # KO- # = ## ,KO- $ = $$ KO- # = $$ KO- $ = # <emos 4ue si am&os &its son iguales el resultado ser9 #. L si am&os son diferentes! el resultado ser9 $. sta instruccin compara dos &ytes! &it a &it. sto nos sir"e para comparar dos "alores y compro&ar si son iguales o no. Supongamos 4ue tenemos el registro 5./ -O y 4ueremos compro&ar si es igual a FD>. %endr;amos 4ue efectuar las siguientes instrucciones: /O<@W FD>, carga el acumulador con el "alor a comparar. KO-W+ 5./ -O! W , compara el acumulador con 5./ -O. :%+SS S%*%.S! 0 , salta la instruccin siguiente si KO- = #. MO%O DCS%C5%O , salta a DCS%C5%O si KO- no es #. MO%O CM.*@ , salta a CM.*@. /odifica el &it 0. 0 "ale $ si el resultado de la operacin es #.

-egistro S%*%.S:

También podría gustarte