Example: marketing

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 *.

• 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

Tags:

  Programaci, Escrito, Lenguaje, 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

Advertisement

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 *.

2 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. 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.

3 En la gama media (PIC16xxx) cada nem nico se convierte en una palabra en la memoria de programa Directivas. 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.

4 Valor cuando se defina como salidaESPERABTFSSPORTA,4;Esperamos a que se pulse la teclaCALL INCREMENTO;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.

8 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). 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)

9 Ziorwff,d(W) OR (f) (destino)Zrlff,dRota (f) a izquierda (destino)Crrff,dRota (f) a derecha (destino)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