Escolar Documentos
Profissional Documentos
Cultura Documentos
Leon_Elec
Pgina 1
Leon_Elec
Pgina 2
Leon_Elec
Pgina 3
Leon_Elec
Pgina 4
Leon_Elec
Pgina 5
Leon_Elec
Pgina 6
Registro STATUS Si entendieron hasta ac, se acordar que los registros poseen un ancho de 8 bit. Cada bit, puede contener un 1 o 0. Vemos ahora en detalle el registro STATUS (est adjuntado) Este registro, tiene 3 Bit dedicado para las operaciones matemticas, 3 bit dedicado al cambio de banco de memoria y 2 bit dedicado para saber que o quin produjo un Power Up (despertar del micro). Y se puede leer y escribir en l (cambiar datos). Los analizamos desde el ms significativo (MSB) hasta el menos significativo (LSB). BIT 7: Se llama IRP y sirve para el direccionamiento indirecto para cambiar el banco de memoria. 1 = Banco 2 y 3 0 = Banco 0 y 1 BIT 6 y BIT 5 Se llaman RP1 y RP0 respectivamente. Sirve para el direccionamiento directo para cambiar de banco de memoria. 00 = Banco 0 01 = Banco 1 10 = Banco 2 11 = banco 3 BIT 4 Se llama TO (neg). Este bit se utiliza para saber quin despert al PIC. 1 = Despus que despierta (power up) o por las instrucciones CLRWDT o SLEEP, se pone a 1 este bit. 0 = Se pone a 0 cuando el wachtdog o en castellano perro guardin (WDT) despierta al PIC. BIT 3 Se llama PD (neg). Este bit se utiliza para saber si el pic estaba durmiendo.
Leon_Elec
Pgina 7
Leon_Elec
Pgina 8
Leon_Elec
Pgina 9
[ENSAMBLADOR DESDE CERO] 7 de noviembre de 2008 Breve instroduccin de las INSTRUCCIONES Cada instruccin tiene una ancho de 14 Bits, es por eso que la memoria de programa tiene el mismo ancho. Justamente para poder alojar cada instruccin. Las instrucciones, estn divididas en tres grupos. Los cuales son: Byte-Oriented operation (Byte-Orientando a la operacin) Bit-Oriented operation (Bit-Orientando a la operacin) Literal and Control operation (Control y Literal de la operacin)
Primer grupo Byte-Oriented operation Cada instruccin de este grupo est compuesta por: OPCODE (Cdigo) DESTINATION (Destino) FILE REGISTER ADDRESS (Direccin del archivo de registro)
El OPCODE o cdigo, es el cdigo de cada instruccin y que es nica para cada instruccin. Est formada por los bit del 13 al 8. El DESTINATION o el destino, indica en dnde se va a guardar el dato. Por ejemplo, si hacemos una suma, tenemos dos opciones dnde guardarlo, una puede ser el registro W y la otra opcin puede ser otro registro cualquiera o una posicin de la RAM. Est formada por el bit 7. La constante que nos indica esto es la letra d. Si esta letra es 0, la operacin se guardar en el registro W. EN cambio si vale 1, la operacin se guardar en el registro o posicin de memoria que estemos trabajando al momento de usar una instruccin. Hay instrucciones, como veremos ms adelante, que no es necesario indicar dnde queremos guardar la operacin, ya que se hace en forma automtica. Y hay otras instrucciones que si no se indica el destino, nos puede dar un error al compilar o el compilador lo elegir el y por ende, nos puede ejecutar mal el programa. Y por ltimo, tenemos el FILE REGISTER ADDRESS que se carga con la direccin del registro a ser guardado. Est formada por los bit 6 al 0. La constante que nos indica esto, es la letra f Segundo grupo Bit-Oriented operation Cada instruccin de este grupo est compuesta por: OPCODE (Cdigo)
Leon_Elec
Pgina 10
[ENSAMBLADOR DESDE CERO] 7 de noviembre de 2008 BIT ADDRESS (Bit de direccin) FILE REGISTER ADDRESS (Direccin del archivo de registro)
OPCODE es igual al primer grupo. Est formado por los bits 13 al 10. El BIT ADDRESS, se utiliza para direccionar la operacin. Est formado por los bits 9 al 7. Como pueden observar, se sacrific bit del opcode para drselo al bit address. La constante que nos indica esto es la letra b Y por ltimo tenemos FILE REGISTER ADDRESS, que es igual al primer grupo. Est formado por los bit 6 al 0. Igual que en el primer grupo. La constante que nos indica esto es la letra f. Tercer grupo Literal and Control Cada instruccin de este grupo, est compuesta por: OPCODE LITERAL
OPCODE es igual que en el primer grupo. Est compuesta por los bits 13 al 8. Excepto para las instrucciones CALL y GOTO que est compuesta por los bit 13 al 11 (prestar mucha atencin a esto, cuando veamos estas dos instrucciones entendern la importancia). Y el LITERAL que puede ser un valor, por ejemplo para sumar, para restar, para cargar al registro W, en fin, un nmero decimal, binario o hexadecimal. O puede ser una valor de direccin a dnde apuntar para las instrucciones CALL y GOTO. Est compuesta por los bits 7 al 0. Excepto para las instrucciones CALL y GOTO que est compuesta por los bit 10 al 0 (prestar mucha atencin a esto, cuando veamos estas dos instrucciones entendern la importancia). Est adjuntado las 35 instrucciones agrupadas por los tres grupos Si alcanzan a ver en la imagen, vern que algunas instrucciones afectan al registro STATUS y otras no.
Leon_Elec
Pgina 11
Leon_Elec
Pgina 12
Si W tena cargado un valor = .5, despus de la instruccin W tiene cargado el valor .133 Para recordar, ADD es sumar, L es Literal y W es el registro W Afecta a:
Z Se pone a 1 si la operacin es 0 DC Se pone a 1 si hubo un acarreo del bti 3 al 4 C Se pone a 1 si hubo desbordamiento, o sea, cuando se supera H'FF'
ADDWF Suma el valor del registro W con el valor de un registro cualquiera. El destino de esta suma, lo elige el programador. Ejemplo:
ADDWF TEMP,W
Si W tena guardado .133 y la pocicin de la RAM llamada TEMP tena el valor cargado con .2, W vale .135 y TEMP contina valiendo .2
Leon_Elec
Pgina 13
TEMP valdra .135 y W valdra .133 Para recordar, F, es File Register Address. NOTA: Para indicar la direccin de dnde se guarda, tambin se puede poner 0 o 1 en vez de W o F. 0, corresponder guardarlo en el registro W y 1 en el registro TEMP (para este caso). Afecta a:
Z Se pone a 1 si la operacin es 0 DC Se pone a 1 si hubo un acarreo del bti 3 al 4 C Se pone a 1 si hubo desbordamiento, o sea, cuando se supera H'FF'
ANDWF Realiza la operacin AND entre W y un registro designado por el programador. El destino de esta operacin lo elije el programador. Ejemplo:
ANDWF TEMP,F
Si antes de la instruccin W vale B'11100011' y TEMP vale B'00111010' Despus de la instruccin TEMP vale B'00100010' y W vale B'11100011' Afecta a:
Z Se pone a 1 si la operacin es 0
Leon_Elec
Pgina 14
Leon_Elec
Pgina 15
Leon_Elec
Pgina 16