lunes, 14 de mayo de 2012

Repertorio 35 instrucciones-MPLAB-Assembler:

 Repertorio 35 instrucciones-MPLAB-Assembler


Notas:
  1. Al modificar un registro de E/S con una operación sobre él mismo (por ejemplo MOVF PORTB,1), el valor utilizado es el que se halle presente en las patillas del PORTB. Por ejemplo, si el biestable tiene un "1" para una patilla configurada como entrada y se pone a nivel bajo desde el exterior, el dato se volverá a escribir como "0".
  2. Si se ejecuta esta instrucción sobre el TMR0 y d=1, se borrará el conteo de la preescala asignada (preescaler), si está asignado al TMR0, pero no se borrará la preescala asignada en OPTION_REG, que controla Timer0.
  3. Si se modifica el Contador de Programa PC o una condición de prueba es verdadera, la instrucción requiere dos ciclos máquina. El segundo ciclo se ejecuta como un NOP.
    En las tablas siguientes, por orden alfabético, veremos todos los datos de interés sobre las 35 instrucciones.
    Algunos son de poca importancia. En cambio otros, como la operación, la sintaxis, el comportamiento del registro STATUS y los ejemplos, son imprescindibles para comprender su funcionamiento.
  

Repertorio 35 instrucciones:


    Las 35 instrucciones ó mnemónicos de la gama media de Microchip las encontraremos resumidas en la siguiente tabla. w es el acumulador, f representa un registro cualquiera y C, DC, Z los flags del registro STATUS.
Instrucciones orientadas a registros
MNEMÓNICO
OPERANDOS
DESCRIPCIÓN CÓDIGO OP BANDERAS NCIC NOTAS
ADDWF f,d w + fd 00 0111 dfff ffff C, DC, Z 1 1,2
ANDWF f,d w AND fd 00 0101 dfff ffff Z 1 1,2
CLRF f 00 h → f 00 0001 1fff ffff Z 1 2
CLRW - 00 h → w 00 0001 0xxx xxxx Z 1 -
COMF f,d Complemento de fd 00 1001 dfff ffff Z 1 1,2
DECF f,d f - 1 → d 00 0011 dfff ffff Z 1 1,2
DECFSZ f,d f - 1 → d (si es 0 salta) 00 1011 dfff ffff Ninguna 1(2) 1,2,3
INCF f,d f + 1 → d 00 1010 dfff ffff Z 1 1,2
INCFSZ f,d f + 1 → d (si es 0 salta) 00 1111 dfff ffff Ninguna 1(2) 1,2,3
IORWF f,d w OR fd 00 0100 dfff ffff Z 1 1,2
MOVF f,d fd 00 1000 dfff ffff Z 1 1,2
MOVWF f wf 00 0000 1fff ffff Ninguna 1 -
NOP - No operación 00 0000 0xx0 0000 Ninguna 1 -
RLF f,d Rota f izq por carryd 00 1101 dfff ffff C 1 1,2
RRF f,d Rota f dcha por carryd 00 1100 dfff ffff C 1 1,2
SUBWF f,d f - wd 00 0010 dfff ffff C,DC,Z 1 1,2
SWAPF f,d Intercambia nibbles de f → d 00 1110 dfff ffff Ninguna 1 1,2
XORWF f,d w XOR fd 00 0110 dfff ffff Z1 1,2

Instrucciones orientadas a bit
MNEMÓNICO
OPERANDOS
DESCRIPCIÓN CÓDIGO OP BANDERAS NCIC NOTAS
BCF f,b Pone a 0 bit b de registro f 01 00bb bfff ffff Ninguna 1 1,2
BSF f,b Pone a 1 bit b de registro f 01 01bb bfff ffff Ninguna 11,2
BTFSC f,b Salto si bit b de reg. f es 0 01 10bb bfff ffff Ninguna 1(2) 3
BTFSS f,b Salto si bit b de reg. f es 1 01 11bb bfff ffff Ninguna 1(2) 3

Instrucciones con literales y de control
MNEMÓNICO
OPERANDOS
DESCRIPCIÓN CÓDIGO OP BANDERAS NCIC NOTAS
ADDLW k w + kw 11 111x kkkk kkkk C,DC,Z 1 -
ANDLW k w AND kw 11 1001 kkkk kkkk Z 1 -
CALL k Llamada a subrutina k 10 0kkk kkkk kkkk Ninguna 2 -
CLRWDT - Borra temporizador del WDT 00 0000 0110 0100 TO,PD 1 -
GOTO k Ir a dirección k 10 1kkk kkkk kkkk Ninguna 2 -
IORLW k w OR k → w 11 1000 kkkk kkkk Z 1 -
MOVLW k kw 11 00xx kkkk kkkkNinguna 1 -
RETFIE - Retorno de una interrupción 00 0000 0000 1001 Ninguna 2 -
RETLW k Retorno con k en w 11 01xx kkkk kkkk Ninguna 2 -
RETURN - Retorno de una subrutina 00 0000 0000 1000 Ninguna 2 -
SLEEP - Modo Standby 00 0000 0110 0011 TO, PD 1 -
SUBLW k k - ww 11 110x kkkk kkkk C,DC,Z 1 -
XORLW k w XOR kw 11 1010 kkkk kkkk Z 1 -



Instrucciones especiales:


    Existe un conjunto de instrucciones especiales diseñadas para facilitar las operaciones a la hora de diseñar nuestros algoritmos. Estas instrucciones pueden ser implementadas con una, dos o tres de las instrucciones de la gama media. La mayoría de ellas se basa en las operaciones con los acarreos y con los bits del registro status en general.

      Este cuadro sólo debe servir de referencia y se recomienda usar la forma equivalente del repertorio de instrucciones, no obstante, pueden encontrarse programas que los utilicen. Por supuesto con estos algoritmos, aunque utilicen una sola expresión, no vamos disminuir los ciclos máquina necesarios.
Mnemónico
Parámetros
Descripción Traducción Operación
Equivalente
Flag
ADDCF f, d Add Carry to File Sumar acarreo a f BTFSC 3,0
INCF f,d
Z
ADDDCF f, d Add Digit Carry to File Sumar acarreo de digito a f BTFSC 3,1
INCF f,d
Z
B K Branch Saltar a una etiqueta GOTO k -
BC K Branch on Carry Saltar a una etiqueta si hay acarreo BTFSC 3,0
GOTO k
-
BDC K Branch on Digit Carry Saltar a una etiqueta si hay acarreo de digito BTFSC 3,1
GOTO k
-
BNC K Branch on No Carry Saltar a una etiqueta si no hay acarreo BTFSS 3,0
GOTO k
-
BNDC K Branch on No Digit Carry Saltar a una etiqueta si no hay acarreo de digito BTFSS 3,1
GOTO k
-
BNZ K Branch on No Zero Saltar a una etiqueta si no hay cero BTFSS 3,2
GOTO k
-
BZ K Branch on Zero Saltar a una etiqueta si hay cero BTFSC 3,2
GOTO k
-
CLRC Clear Carry Poner a cero acarreo BCF 3,0 -
CLRDC Clear Digit Carry Poner a cero acarreo de digito BCF 3,1 -
CLRZ Clear Zero Poner a cero el flag Zero BCF 3,2 -
LCALL K Long CALL Llamada larga a una etiqueta BSF/BCF 0A,3
BSF/BCF 0A,4
CALL k
-
LGOTO K Long GOTO Salto largo a una etiqueta BSF/BCF 0A,3
BSF/BCF 0A,4
GOTO k
-
MOVFW F Move File to W Mover registro a W MOVF f,0 Z
NEGF f, d Negate File Negar un registro COMF f,1
INCF f,d
Z
SETC Set Carry Poner a uno el acarreo BSF 3,0 -
SETDC Set Digit Carry Poner a uno el acarreo de digito BSF 3,1 -
SETZ Set Zero Poner a uno el Zero BSF 3,2 -
SKPC Skip on Carry Saltar si hay acarreo BTFSS 3,0 -
SKPDC Skip on Digit Carry Saltar si hay acarreo de digito BTFSS 3,1 -
SKPNC Skip on No Carry Saltar si no hay acarreo BTFSC 3,0 -
SKPNDC Skip on No Digit Carry Saltar si no hay acarreo de digito BTFSC 3,1 -
SKPNZ Skip on Non Zero Saltar si no hay Zero BTFSC 3,2 -
SKPZ Skip on Zero Saltar si hay Zero BTFSS 3,2 -
SUBCF f,d Substract Carry from File Restar acarreo del registro BTFSC 3,0
DECF f,d
Z
SUBDCF f,d Substract Digit Carry from File Restar acarreo de dígito del registro BTFSC 3,1
DECF f,d
Z
TSTF f Test File Probar registro MOVF f,1 Z



(IMAGENES-Juego de instrucciones-Ensamblador/Descarga)



Fuente:
Recreateoficial
 Electrónica