Example: stock market

Programación en Ensamblador

1 ATE-Universidad de OviedoProgramaci n en Ensamblador1 ATE-Universidad de OviedoProgramaci n en Ensamblador2 LENGUAJE Ensamblador El nico lenguaje que entienden los microcontroladores es el c digo m quinaformado por ceros y unos del sistema binario. El lenguaje ensambladorexpresa las instrucciones de una forma m s natural al hombre a la vez que muy cercana al microcontrolador, ya que cada una de esas instrucciones se corresponde con otra en c digo m quina. El lenguaje Ensamblador trabaja con nem nicos, que son grupos de caracteres alfanum ricos que simbolizan las rdenes o tareas a realizar. La traducci n de los nem nicos a c digo m quina entendible por el microcontrolador la lleva a cabo un programa Ensamblador . El programa escrito en lenguaje Ensamblador se denomina c digo fuente(*.asm). El programa Ensamblador proporciona a partir de este fichero el correspondiente c digo m quina, que suele tener la extensi n *. ATE-Universidad de OviedoProgramaci n en Ensamblador3C digo digo M (MPASM)Lenguaje ensambladoryPrograma ensambladorLenguajeEnsamblador ATE-Universidad de OviedoProgramaci n en Ensamblador4El c digo fuente Est compuesto por una sucesi n de l neas de texto.

4 ©ATE-Universidad de Oviedo Programación en Ensamblador 7 • El ensamblador MPASM (distribuido por Microchip) soporta los sistemas de numeración decimal, …

Tags:

  Programaci, 243 n en ensamblador, Ensamblador

Information

Domain:

Source:

Link to this page:

Please notify us if you found a problem with this document:

Other abuse

Transcription of Programación en Ensamblador

1 1 ATE-Universidad de OviedoProgramaci n en Ensamblador1 ATE-Universidad de OviedoProgramaci n en Ensamblador2 LENGUAJE Ensamblador El nico lenguaje que entienden los microcontroladores es el c digo m quinaformado por ceros y unos del sistema binario. El lenguaje ensambladorexpresa las instrucciones de una forma m s natural al hombre a la vez que muy cercana al microcontrolador, ya que cada una de esas instrucciones se corresponde con otra en c digo m quina. El lenguaje Ensamblador trabaja con nem nicos, que son grupos de caracteres alfanum ricos que simbolizan las rdenes o tareas a realizar. La traducci n de los nem nicos a c digo m quina entendible por el microcontrolador la lleva a cabo un programa Ensamblador . El programa escrito en lenguaje Ensamblador se denomina c digo fuente(*.asm). El programa Ensamblador proporciona a partir de este fichero el correspondiente c digo m quina, que suele tener la extensi n *. ATE-Universidad de OviedoProgramaci n en Ensamblador3C digo digo M (MPASM)Lenguaje ensambladoryPrograma ensambladorLenguajeEnsamblador ATE-Universidad de OviedoProgramaci n en Ensamblador4El c digo fuente Est compuesto por una sucesi n de l neas de texto.

2 Cada l nea puede estructurarse en hasta cuatro campos o columnas separados por uno o m s espacios o tabulaciones entre s . Campo de alfanum ricas escogidas por el usuario para identificar una determinada l nea. Todas las etiquetas tienen asignado el valor de la posici n de memoria en la que se encuentra el c digo al que acompa an. Campo de c al nem nico de una instrucci n, de una directiva o de una llamada a macro. Campo de operandos y los operandos que precisa el nem nico utilizado. Seg n el c digo, puede haber dos, uno o ning n operando. Campo de de una l nea, todo lo que se encuentre a continuaci n de un punto y coma (;) ser ignorado por el programa Ensamblador y considerado como ATE-Universidad de OviedoProgramaci n en Ensamblador5 Instrucciones: son aquellos nem nicos que son convertidos por el Ensamblador en c digo m quina que puede ejecutar el n cleo del microcontrolador. En la gama media (PIC16xxx) cada nem nico se convierte en una palabra en la memoria de programa Directivas.

3 Pseudoinstrucciones que controlan el proceso de ensamblado del programa, pero no son parte del c digo. Son indicaciones al programaensamblador de c mo tiene que generar el c digo m quina Macros: Secuencia de nem nicos que pueden insertarse en el c digofuente del Ensamblador de una manera abreviada mediante una simple de c digoPuede corresponder ese c digo a: ATE-Universidad de OviedoProgramaci n en Ensamblador6;Fichero ;;Programa de Prueba para la placa PICDEM-2 plus;Por el Puerto B se saca en binario, el numero de veces;que se puls la tecla que est conectada a la entrada RA4;si pulsada a cero y si libre a 1;LIST P=16F877;Directiva para definir listado y microcontroladorINCLUDE ;Inclusi n de fichero de etiquetasORG 0 BSF STATUS,RP0;Paso al banco 1 de la memoria de datosCLRFTRISB;para definir el PORTB como salidaBCFSTATUS,RP0;Volvemos al banco 0 CLRFPORTB;Ponemos a cero el PORTB para que aparezca ese;valor cuando se defina como salidaESPERABTFSSPORTA,4;Esperamos a que se pulse la teclaCALL INCREMENTO.

4 En cuyo caso RA4 pasa a 0 y vamos aGOTOESPERA;subprograma de INCREMENTO;Subprograma de INCREMENTOINCREMENTOINCFPORTB,F;Si se puls incrementamos PORTBSOLTARBTFSSPORTA,4;no salimos hasta que se haya soltadoGOTOSOLTAR;la tecla, en ese caso RA4 pasar a a 1 RETURN;y volvemos al programa principalENDE jemplo de c digo fuente4 ATE-Universidad de OviedoProgramaci n en Ensamblador7 El Ensamblador MPASM (distribuido por Microchip) soporta los sistemas de numeraci n decimal, hexadecimal, octal, binarioy ASCII. Los nem nicos que tengan una constante como operando deber n incluirla respetando la sintaxis que se indica a continuaci <valor>d <valor> D <valor> Hexadecimal0x<valor>h <valor> H <valor> <valor>h .<valor>HOctalo <valor> O <valor> Binariob <valor> B <valor> ASCII <car cter> a <car cter> A <car cter> Cadena <cadena> TIPOSINTAXISLas constantes hexadecimales que empiecen por una letra deben ir precedidas de un cero para no confundirlas con una etiqueta.

5 Ejemplo: movlw0F7hCampo de Operandos y Datos ATE-Universidad de OviedoProgramaci n en Ensamblador8 Aprendiendo a ProgramarPasos a dar para poder generar c digo Juego de Directivas y Organizaci n de la Memoria interna: Programa Datos5 ATE-Universidad de OviedoProgramaci n en Ensamblador9El juego de instrucciones Es un juego reducidode 35 instrucciones muy simples. Procesador RISC La mayor a de las instrucciones se ejecuta en 4 ciclos de reloj; los saltos y llamadas a subprogramas se ejecutan en 8(no se aprovecha pipeline) Todas las instrucciones tienen la misma longitud en la gama media: 14 bits. Por lo tanto el c lculo del tiempo de ejecuci n y de lo que ocupa un programa resulta simple Las instrucciones se pueden clasificar atendiendo a dos criterios:1. Formato2. Funcionalidad ATE-Universidad de OviedoProgramaci n en Ensamblador10El juego de instrucciones: SEG N SU Orientadasal Orientadasal Literales yde control6 ATE-Universidad de OviedoProgramaci n en Ensamblador11 Operaci n fuente, destinoW Opera conDir.

6 Operando Instrucciones orientadas al bytec3c4c5c0c1c2138760C digo Operaci n6 bitsDirecci n operando fuente7 bitsDestinoresultado 1 bitWDir. fuented = 1d = 0d f6f5f4f3f2f1 f0 C mo se escriben en Ensamblador ? Qu hacen? C mo se codifican?Nem nico reservado7 bits o algo que pueda sustituir a 7 bits, si es mayor se trunca1 bit o algo que puedasustituir a 1 bit, si es mayor se trunca D nde va a parar el resultado? ATE-Universidad de OviedoProgramaci n en Ensamblador12 Operaci n fuente, bitOpera o explora el bit de la posici n #bitdel operando Instrucciones orientadas al bitc1c2c3b1b2c0138760C digo Operaci n4 bitsDirecci n operando fuente7 bitsBit a tratar 3 bitsb0 f6 f5 f4 f3 f2 f1 f0 C mo se escriben en Ensamblador ? Qu hacen? C mo se codifican?Nem nico reservado7 bits o algo que pueda sustituir a 7 bits, si es mayor se trunca3 bits o algo que puedasustituir a 3 bits, si es mayor se trunca 107 ATE-Universidad de OviedoProgramaci n en Ensamblador13 Operaci n valor literalOperan con el valor literal Instrucciones literales o de controlc3c4c5c0c1c213870C digo Operaci n 6bValor con el que se opera 8 bitsk7 k6 k5 k4 k3 k2 k1 k0 C mo se escriben en Ensamblador ?

7 Qu hacen? C mo se codifican?Nem nico reservado8 bits o algo que pueda sustituir a 8 bits, si es mayor se truncaen GOTO y CALL el valor es de 11 bitsc0c1c2k8k9k10k7 k6 k5 k4 k3 k2 k1 k0En el caso GOTOy CALL ATE-Universidad de OviedoProgramaci n en Ensamblador14 TABLA-RESUMEN DE INSTRUCCIONESO rientadasal byte: son 18 Orientadasal bit: son 4 Literalesy de control: son 13 C mo leer la tabla?8 ATE-Universidad de OviedoProgramaci n en Ensamblador15 CICLO DE INSTRUCCION Un ciclo de instrucci n es el tiempo que se tarda en ejecutar una instrucci n (salvo las instrucciones de salto) en el microcontrolador. En los PIC16, un ciclo de instrucci n dura 4 ciclos de reloj. En una primera etapa, la instrucci n es tra da a la CPU. Esto lleva un ciclo de instrucci n TCY. En la segunda etapa se ejecuta la instrucci n. Esto lleva otro No obstante, debido al solapamiento (pipelining entubado) de traer la instrucci n actual y ejecuci n de la instrucci n previa, una instrucci n se trae y otra se ejecuta cada ATE-Universidad de OviedoProgramaci n en Ensamblador16 Pudiera haber un ciclo de instrucci n de retardo si el resultado de ejecutar la instrucci n anterior modifica el contenido del Contador de Programa (Ej: GOTO CALL).

8 Esto implica suspender el entubado (pipelining) de las instrucciones durante un ciclo para que la instrucci n a donde se salta se traiga a la DE INSTRUCCIONO scilador9 ATE-Universidad de OviedoProgramaci n en Ensamblador17El juego de instrucciones: SEG N SU FUNCIONALIDADI nstrucciones de CARGANEM NICODESCRIPCI NFLAGS AFECTADOS clrff00 (f)Zclrw00 (W)Zmovff,d(f) (destino)Zmovlwkk (W)Ningunomovwf f(W) (f)Ninguno ATE-Universidad de OviedoProgramaci n en Ensamblador18 Instrucciones de BITNEM NICODESCRIPCI NFLAGS AFECTADOS bcff,bPone a 0 el bit b del registro f Ningunobsff,bPone a 1 el bit b del registro f NingunoInstrucciones ARITM TICASNEM NICODESCRIPCI NFLAGS AFECTADOS addlwk(W) + k (W)C DC - Zaddwf f,d(W) + (f) (destino)C DC - Zdecff,d(f) - 1 (destino)Zincff,d(f) + 1 (destino)ZsublwkK - (W) (W)C DC - Zsubwff,d(f) - (W) (destino)C DC - Z10 ATE-Universidad de OviedoProgramaci n en Ensamblador19 Instrucciones L GICASNEM NICODESCRIPCI NFLAGS AFECTADOS andlwk(W) AND k (W)Zandwf f,d(W) AND (f) (destino)Zcomff,d(/f) (destino)Ziorlwk(W) OR k (W)Ziorwff,d(W) OR (f) (destino)Zrlff,dRota (f) a izquierda (destino)Crrff,dRota (f) a derecha (destino)

9 Cswapf,dIntercambia nibbles (f) (destino)Ningunoxorlwk(W) XOR k (W)Zxorwff,d(W) XOR (f) (destino)Z ATE-Universidad de OviedoProgramaci n en Ensamblador20 Instrucciones de SALTONEM NICODESCRIPCI NFLAGS AFECTADOS btfscf,bSalta si el bit b de f es 0 Ningunobtfssf,bSalta si el bit b de f es 1 Ningunodecfsz f,d(f) - 1 (destino) y salta si es 0 Ningunoincfsz f,d(f) + 1 (destino) y salta si es 0 NingunogotokSalta a la direcci n k NingunoInstrucciones de manejo de SUBRUTINASNEM NICODESCRIPCI NFLAGS AFECTADOS callkLlamada a subrutinaNingunoretfieRetorno de una interrupci nNingunoretlwkRetorno con un literal en (W)NingunoreturnRetorno de una subrutinaNinguno11 ATE-Universidad de OviedoProgramaci n en Ensamblador21 Instrucciones ESPECIALESNEM NICODESCRIPCI NFLAGS AFECTADOS clrwdtBorra Timer del Watchdog/TO - /PDnopNo operaci nNingunosleepEntra en modo de bajo consumo/TO - /PD ATE-Universidad de OviedoProgramaci n en Ensamblador22 Fichero con el juego de instrucciones nfPosici n de memoria de datos (Register file address)(0x00 to 0x7F)WRegistro de trabajo(acumulador)bn Bit dentro de una posici n de memoria (0-7)kValor literal, constante o etiqueta (puede de 8 o 11 bits) xNo importa el valor (0 1)El Ensamblador genera c digo con x=0.

10 DSelecci n de destino:d = 0: almacena el resultado en W,d = 1: almacena el resultado en una posici n de la memoria de datos es el registro W o la posicici n de memoria de datos especificada labelnombre de etiquetaTOSCima de la pila PCContador de programaPCLATHL atch de la parte alta del contador de programaGIEBit de abilitaci n de interrupci n globalWDTT emporizador WatchdogTOTime-out bitPDPower-down bit[ ]Optional( )Contenido Asignado a< >Register bit field En el conjunto deitalicstermino definido por el usuario ( courier)Las claves del juegode instrucciones 12 ATE-Universidad de OviedoProgramaci n en Ensamblador23 Aprendiendo a ProgramarPasos a dar para poder generar c digo Juego de Directivas y Organizaci n de la Memoria interna: Programa Datos ATE-Universidad de OviedoProgramaci n en Ensamblador24 Directivas de MPASM Controlan el proceso de ensambladodel programa, pero no son parte del mismo (tambi n se conocen como pseudoinstrucciones).


Related search queries