juego de instrucciones pic

Upload: sucheful-ly

Post on 07-Jul-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/18/2019 Juego de Instrucciones PIC

    1/6

    Set

    de

    Instrucciones

    PIC

  • 8/18/2019 Juego de Instrucciones PIC

    2/6

    ADDLW Suma un literal

    Sintaxis: [label] ADDLW k 

    Operandos: 0 ≤ k ≤ 255

    Operación: : (W) (k)⇒ (W)

    Flags afectados: C! DC! "

    Código OP: ## ###$ kkkk kkkk 

    Descripción: Suma el contenido del

    re%istro W & k! %uardando el

    resultado en W'

    Ejemplo:  ADDLW 0$C2

      Antes W 0$#*

      Des u,s W 0$D-

    A.DLW W A.D literal

    Sintaxis: [label] A.DLW k 

    Operandos: 0 ≤ k ≤ 255

    Operación: : (W) A.D (k)⇒ (W)

    Flags afectados: "

    Código OP: ## #00# kkkk kkkk 

    Descripción: /ealia la o+eraci1n

    l1%ica A.D entre  el contenido del

    re%istro W & k! %uardando el

    resultado en W'

    Ejemplo:  ADDLW 0$C2

      Antes W 0$#*

      Des u,s W 0$D-

    ADDW W

    Sintaxis: [label] ADDW 3!d

    Operandos: d ∈ [0!#]! 0 ≤ 3 ≤ #2*

    Operación: (W) (3)⇒ (dest)

    Flags afectados: C! DC! "

    Código OP: 00 0### d333 3333 

    Descripción: Suma el contenido del

    re%istro W & el re%istro 3' Si d es 0! el

    resultado se almacena en W! si d es #se almacena en 3'

    Ejemplo:  ADDW /4!0

      Antes W 0$#*'! /4 0$C2  Des u,s W 0$D- /4 0$C2

    67SS 7est de bit & salto

    Sintaxis: [label] 67SS 3!d

    Operandos: d ∈ [0!#]! 0 ≤ 3 ≤ #2*

    Operación: Salto si (38b9) #

    Flags afectados: .in%uno

    Código OP: 0# ##bb b333 3333 

    Descripción: Si el bit b del re%istro 3 

    es #! se salta una instrucci1n & se

    contin:a con la e;ecuci1n' 4n caso desalto! ocu+ar< dos ciclos de relo;'

    Ejemplo:  67SS /4!=

      >7> .>?4S?0

      SI?4S?0 Instrucci1n 

    A.DW W A.D

    Sintaxis: [label] A.DW 3!d

    Operandos: d ∈ [0!#]! 0 ≤ 3 ≤ #2*

    Operación:  (W) A.D (3)⇒ (dest)

    Flags afectados: "

    Código OP: 00 0#0# d333 3333 

    Descripción: /ealia la o+eraci1n

    l1%ica A.D entre los re%istros W & 3'

    Si d es 0! el resultado se almacena en

    W! si d es # se almacena en 3'

    Ejemplo: :  A.DW /4!0

      Antes W 0$#*'! /4 0$C2

      Des+u,s W 0$#*! /4 0$02

    6C 6orra un bit

    Sintaxis: [label] 6C 3!b

    Operandos:  0 ≤ 3 ≤ #2*! 0 ≤ b ≤ *

    Operación: : 0⇒ (38b9)

    Flags afectados: .in%uno

    Código OP: 0# 00bb b333 3333 

    Descripción: 6orra el bit b del

    re%istro 3 

    Ejemplo: :  6C /4!*

      Antes /4 0$C*

      Des+u,s /4 0$@*

    67SC 7est de bit & salto

    Sintaxis: [label] 67SC 3!d

    Operandos: d ∈ [0!#]! 0 ≤ 3 ≤ #2*

    Operación: Salto si (38b9) 0

    Flags afectados: .in%uno

    Código OP: 0# #0bb b333 3333 

    Descripción: Si el bit b del re%istro 3 

    es 0! se salta una instrucci1n & se

    contin:a con la e;ecuci1n' 4n caso desalto! ocu+ar< dos ciclos de relo;'

    Ejemplo:  67SC /4!=

      >7> .>?4S?0

      SI?4S?0 Instrucci1n 

    6S Actia un bit

    Sintaxis: [label] 6S 3!b

    Operandos: 0 ≤ 3 ≤ #2*! ! 0 ≤ b ≤ *

    Operación:  #⇒ (38b9)

    Flags afectados: .in%uno

    Código OP: 0# 0#bb b333 3333 

    Descripción: Actia el bit b del

    re%istro 3 

    Ejemplo: :  6S /4!*

      Antes /4 0$0A

      Des+u,s /4 0$BA

    CALL Salto a subrutina

    Sintaxis: [label] CALL k 

    Operandos: 0 ≤  k ≤ 20@*

    Operación: PC⇒ Pila k⇒ PC

    Flags afectados: .in%uno

    Código OP: #0 0kkk kkkk kkkk 

    Descripción: Salto a una subrutina'La +arte ba;a de k se car%a en PCL! &

    la alta en PCLA7C' >cu+a 2 ciclos

    de relo;'

    Ejemplo:>/I4. CALL D4S7I.>

      Antes PC >/I4. 

  • 8/18/2019 Juego de Instrucciones PIC

    3/6

    CL/ 6orra un re%istro

    Sintaxis: [label] CL/ 3 

    Operandos: 0 ≤ 3 ≤ #2*

    Operación: : 0$00⇒ (3)! # ⇒ "

    Flags afectados: "Código OP: 00 000# #333 3333 

    Descripción: 4l re%istro 3 se car%a

    con 0$00' 4l 3la% " se actia'

    Ejemplo: :  CL/ /4

      Antes /4 0$5A

      Des+u,s /4 0$00! " #

    CL/W 6orra el re%istro W

    Sintaxis: [label] CL/W

    Operandos: .in%uno

    Operación: : 0$00⇒ W! #⇒ "

    Flags afectados: "Código OP: 00 000# 0$$$ $$$$

    Descripción: 4l re%istro de traba;o

    W se car%a con 0$00' 4l 3la% " se

    actia'

    Ejemplo: :  CL/W

      Antes W 0$5A

      Des+u,s W 0$00! " #

    CL/WD7 6orra el WD7

    Sintaxis: [label] CL/WD7

    Operandos: .in%uno

    Operación: 0$00⇒ WD7! #⇒ E7>

      #⇒ EPDFlags afectados: E7>! EPD

    Código OP: 00 0000 0##0 0#00

    Descripción: 4sta instrucci1n borra

    tanto el WD7 como su +reescaler'

    Los bits E7> & EPD del re%istro deestado se +onen a #'

    Ejemplo: :  CL/WD7

      Des+u,s Contador WD7 0!

    Preescales WD7 0!

    E7> #! EPD #

    I.CS" Incremento & salto

    Sintaxis: [label] I.CS" 3!d

    Operandos: d ∈ [0!#]! 0 ≤ 3 ≤ #2*

    Operación:  (3) F#⇒ d Salto si /0

    Flags afectados: .in%uno

    Código OP: 00 #### d333 3333 

    Descripción: Incrementa el

    contenido del re%istro 3' Si d es 0! el

    resultado se almacena en W! si d es #

    se almacena en 3' Si la resta es 0 saltala si%uiente instrucci1n! en cu&o caso

    costarGa 2 ciclos'

    Ejemplo:  I.CSC /4!0

      >7> .>?4S?0  SI?4S?0 Instrucci1n

     

    C>H Com+lemento de 3 

    Sintaxis: [label] C>H 3!d

    Operandos: d ∈ [0!#]! 0 ≤ 3 ≤ #2*

    Operación: : (E 3)! #⇒  (dest)

    Flags afectados: "

    Código OP: 00 #00# d333 3333 

    Descripción: 4l re%istro 3 escom+lementado' 4l 3la% " se actia si

    el resultado es 0' Si d es 0! el

    resultado se almacena en W! si d es #

    se almacena en 3''

    Ejemplo: :  C>H /4!0

      Antes /4 0$#

      Des+u,s /4 0$#! W 0J4C

    I.C Decremento de 3 

    Sintaxis: [label] I.C 3!d

    Operandos: d ∈ [0!#]! 0 ≤ 3 ≤ #2*

    Operación: : (3 ) #⇒ (dest)

    Flags afectados: "

    Código OP: 00 #0#0 d333 3333 

    Descripción: Incrementa en # el

    contenido de 3' Si d es 0! el resultado

    se almacena en W! si d es # se

    almacena en 3'

    Ejemplo: :  I.C C>.7!#

      Antes C>.7 0$! " 0

      Des+u,s C>.7 0$00! " #

    >7> Salto incondicional

    Sintaxis: [label] >7> k 

    Operandos: 0 ≤  k ≤ 20@*

    Operación: k⇒ PC 8B09

    Flags afectados: .in%uno

    Código OP: #0 #kkk kkkk kkkk 

    Descripción: Se trata de un salto

    incondicional' La +arte ba;a de k se

    car%a en PCL! & la alta en

    PCLA7C' >cu+a 2 ciclos de relo;'

    Ejemplo: >/I4. >7> D4S7I.>

      Antes PC >/I4.

      Des+u,s PC D4S7I.>

    D4CS" Decremento & salto

    Sintaxis: [label] D4CS" 3!d

    Operandos: d ∈ [0!#]! 0 ≤ 3 ≤ #2*

    Operación:  (3) F#⇒ d Salto si /0

    Flags afectados: .in%uno

    Código OP: 00 #0## d333 3333 

    Descripción: Decrementa elcontenido del re%istro 3' Si d es 0! el

    resultado se almacena en W! si d es #

    se almacena en 3' Si la resta es 0 salta

    la si%uiente instrucci1n! en cu&o caso

    costarGa 2 ciclos'

    Ejemplo:  D4CSC /4!0

      >7> .>?4S?0

      SI?4S?0 Instrucci1n

     

    D4C Decremento de 3 

    Sintaxis: [label] D4C 3!d

    Operandos: d ∈ [0!#]! 0 ≤ 3 ≤ #2*

    Operación: : (3 ) K #⇒ (dest)

    Flags afectados: "

    Código OP: 00 00## d333 3333 

    Descripción: Decrementa en # elcontenido de 3' Si d es 0! el resultado

    se almacena en W! si d es # se

    almacena en 3'

    Ejemplo: :  D4C C>.7!#

      Antes C>.7 0$0#! " 0

      Des+u,s C>.7 0$00! " #

  • 8/18/2019 Juego de Instrucciones PIC

    4/6

    I>/W W A.D

    Sintaxis: [label] I>/W 3!d

    Operandos: d ∈ [0!#]! 0 ≤ 3 ≤ #2*

    Operación:  (W) >/ (3)⇒ (dest)

    Flags afectados: "

    Código OP: 00 0#00 d333 3333 

    Descripción: /ealia la o+eraci1n

    l1%ica >/ entre los re%istros W & 3'

    Si d es 0! el resultado se almacena enW! si d es # se almacena en 3'

    Ejemplo: :  I>/W /4!0

      Antes W 0$-#! /4 0$#  Des+u,s W 0$-! /4 0$#

    H>LW Car%ar literal en W

    Sintaxis: [label] H>LW 3 

    Operandos: 0 ≤ 3 ≤ 255

    Operación: (k)⇒

     (W)Flags afectados: .in%uno

    Código OP: ## 00$$ kkkk kkkk 

    Descripción: 4l literal k +asa al

    re%istro W'

     

    Ejemplo:  H>LW 0$5A

      Des+u,s /4 0$@! W 0$5A

    I>/LW W >/ literal

    Sintaxis: [label] I>/LW k 

    Operandos: 0 ≤ k ≤ 255

    Operación: : (W) >/ (k)⇒ (W)

    Flags afectados: "

    Código OP: ## #000 kkkk kkkk 

    Descripción: Se realia la o+eraci1n

    l1%ica >/ entre  el contenido del

    re%istro W & k! %uardando elresultado en W'

    Ejemplo: :  I>/LW 0$5

      Antes W 0$-A  Des+u,s W 0$6

    /47I4 /etorno de interru+'

    Sintaxis: [label] /47I4

    Operandos: .in%uno

    Operación: : #⇒ I4 7>S⇒PC

    Flags afectados:  .in%uno

    Código OP: 00 0000 0000 #00#

    Descripción: 4l PC se car%a con el

    contenido de la cima de la +ila(7>S) direcci1n de retorno'

    Consume 2 ciclos' Las interru+ciones

    uelen a ser Mabilitadas'

    Ejemplo: :  /47I4

      Des+u,s PC direcci1n de retorno

      I4 #

    /47LW /etorno! car%a W

    Sintaxis: [label] /47LW k 

    Operandos: 0 ≤ k ≤ 255

    Operación: : (k)⇒ (W) 7>S⇒PC

    Flags afectados:  .in%uno

    Código OP: ## 0#$$ kkkk kkkk 

    Descripción: 4l re%istro W se car%a

    con la constante k' 4l PC se car%a

    con el contenido de la cima de la +ila

    (7>S) direcci1n de retorno'Consume 2 ciclos'

    Ejemplo: :  /47LW 0$*

      Des+u,s PC direcci1n de retorno

      W 0$*

    H>W Hoer a 3 

    Sintaxis: [label] H>W 3 

    Operandos: 0 ≤ 3 ≤ #2*

    Operación: W⇒ (3)

    Flags afectados: .in%uno

    Código OP: 00 0000 #333 3333 

    Descripción: 4l contenido del

    re%istro W +asa el re%istro 3'

     Ejemplo:  H>W /4!0

      Antes /4 0$! W 0$@

      Des+u,s /4 0$@! W 0$@

    H> Hoer a 3 

    Sintaxis: [label] H> 3!d

    Operandos: d ∈ [0!#]! 0 ≤ 3 ≤ #2*

    Operación: (3)⇒ (dest)

    Flags afectados: "

    Código OP: 00 #000 d333 3333 

    Descripción: 4l contenido del

    re%istro 3 se muee al destino d' Si d

    es 0! el resultado se almacena en W!si d es # se almacena en 3' Permite

    eri3icar el re%istro! +uesto Nue a3ecta

    a "'

    Ejemplo:  H> /4!0

    Des+u,s W /4

     .>P .o o+erar 

    Sintaxis: [label] .>P

    Operandos: .in%uno

    Operación: .o o+erar 

    Flags afectados:  .in%uno

    Código OP: 00 0000 0$$0 0000

    Descripción:  .o realia o+eraci1n

    al%una' 4n realidad consume un ciclo

    de instrucci1n sin Macer nada'

    Ejemplo: :  CL/WD7

      Des+u,s Contador WD7 0!

    Preescales WD7 0!E7> #! EPD #

    /47O/. /etorno de rutina

    Sintaxis: [label] /47O/.

    Operandos: .in%uno

    Operación: : 7>S⇒ PC

    Flags afectados:  .in%uno

    Código OP: 00 0000 0000 #000

    Descripción: 4l PC se car%a con el

    contenido de la cima de la +ila(7>S) direcci1n de retorno'

    Consume 2 ciclos'

    Ejemplo: :  /47O/.

      Des+u,s PC direcci1n de retorno

  • 8/18/2019 Juego de Instrucciones PIC

    5/6

    SL44P Hodo ba;o consumo

    Sintaxis: [label] SL44P

    Operandos: .in%uno

    Operación: 0$00⇒WD7! #⇒ E 7>

      0⇒

     WD7 Preescaler! 0⇒

     E PDFlags afectados: E PD! E 7>

    Código OP: 00 0000 0##0 00##

    Descripción: 4l bit de ener%Ga se

     +one a 0! & a # el de descanso' 4lWD7 & su +reescaler se borran' 4l

    micro +ara el oscilador! llendo al

    modo durmienteQ'

    Ejemplo: :  SL44P

      Preescales WD7 0!

    E7> #! EPD #

    /L /ota 3 a la iNuierda

    Sintaxis: [label] /L 3!d

    Operandos: d ∈ [0!#]! 0 ≤ 3 ≤ #2*

    Operación: /otaci1n a la iNuierda

    Flags afectados: CCódigo OP: 00 ##0# d333 3333 

    Descripción: 4l contenido de 3 se

    rota a la iNuierda' 4l bit de menos

     +eso de 3 +asa al carr& (C)! & el carr&

    se coloca en el de ma&or +eso' Si d es0! el resultado se almacena en W! si d

    es # se almacena en 3'

    Ejemplo:  // /4!0

      Antes /4 ###0 0##0! C 0

      Des+u,s /4 ###0 0##0!

      W ##00 ##00! C #

    // /ota 3 a la derecMa

    Sintaxis: [label] // 3!d

    Operandos: d ∈ [0!#]! 0 ≤ 3 ≤ #2*

    Operación: /otaci1n a la derecMa

    Flags afectados: CCódigo OP: 00 ##00 d333 3333 

    Descripción: 4l contenido de 3 se

    rota a la derecMa' 4l bit de menos

     +eso de 3 +asa al carr& (C)! & el carr&

    se coloca en el de ma&or +eso' Si d es0! el resultado se almacena en W! si d

    es # se almacena en 3'

    Ejemplo:  // /4!0

      Antes /4 ###0 0##0! C #

      Des+u,s /4 ###0 0##0!

      W 0###0 00##! C 0

    SWAP Intercambio de 3 

    Sintaxis: [label] SWAP 3!d

    Operandos: d ∈ [0!#]! 0 ≤ 3 ≤ #2*

    Operación: : (3 8 09)⇔ (3 8*@9)

    Flags afectados:  .in%uno

    Código OP: 00 ###0 d333 3333 

    Descripción: Los @ bits de m/LW 0$A

      Antes W 0$65

      Des+u,s W 0$#A

     La gama media tiene un total 

    de 35 instrucciones, cada una

    de las cuales ocupan 14 bits.

  • 8/18/2019 Juego de Instrucciones PIC

    6/6