Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TEMA3 Ensamblador PDF
TEMA3 Ensamblador PDF
1
ATE-Universidad de Oviedo
Programacin en Ensamblador
LENGUAJE ENSAMBLADOR
2
ATE-Universidad de Oviedo
1
Programacin en Ensamblador
Lenguaje ensamblador
y
Cdigo Fuente Programa ensamblador
.asm
110100001.1100
Programa
Ensamblador
(MPASM)
3
ATE-Universidad de Oviedo
Programacin en Ensamblador
El cdigo fuente
Est compuesto por una sucesin de lneas de texto.
4
ATE-Universidad de Oviedo
2
Programacin en Ensamblador
Campo de cdigo
5
ATE-Universidad de Oviedo
Programacin en Ensamblador
;Fichero CUENTA.ASM
Ejemplo de cdigo fuente
;
;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 microcontrolador
INCLUDE P16F877.INC ;Inclusin de fichero de etiquetas
ORG 0
BSF STATUS,RP0 ;Paso al banco 1 de la memoria de datos
CLRF TRISB ;para definir el PORTB como salida
BCF STATUS,RP0 ;Volvemos al banco 0
CLRF PORTB ;Ponemos a cero el PORTB para que aparezca ese
;valor cuando se defina como salida
ESPERA BTFSS PORTA,4 ;Esperamos a que se pulse la tecla
CALL INCREMENTO ;en cuyo caso RA4 pasa a 0 y vamos a
GOTO ESPERA ;subprograma de INCREMENTO
;Subprograma de INCREMENTO
INCREMENTO
INCF PORTB,F ;Si se puls incrementamos PORTB
SOLTAR
BTFSS PORTA,4 ;no salimos hasta que se haya soltado
GOTO SOLTAR ;la tecla, en ese caso RA4 pasara a 1
RETURN ;y volvemos al programa principal
END
6
ATE-Universidad de Oviedo
3
Programacin
Campo en Ensamblador
de Operandos y Datos
El ensamblador MPASM (distribuido por Microchip) soporta los sistemas
de numeracin decimal, hexadecimal, octal, binario y ASCII.
Los nemnicos que tengan una constante como operando debern incluirla
respetando la sintaxis que se indica a continuacin.
TIPO SINTAXIS
Decimal D<valor> d<valor> .<valor>
H<valor> h<valor> 0x<valor>
Hexadecimal
<valor>H <valor>h .
Octal O<valor> o<valor>
Binario B<valor> b<valor>
ASCII A<carcter> a<carcter> <carcter>
Cadena <cadena>
Las constantes hexadecimales que empiecen por una letra deben ir precedidas de un
cero para no confundirlas con una etiqueta. Ejemplo: movlw 0F7h
7
ATE-Universidad de Oviedo
Programacin en Ensamblador
Aprendiendo a Programar
Programa
Datos
8
ATE-Universidad de Oviedo
4
Programacin en Ensamblador
El juego de instrucciones
1. Formato
2. Funcionalidad
9
ATE-Universidad de Oviedo
Programacin en Ensamblador
1.- Orientadas
al byte
2.- Orientadas
al bit
3.- Literales y
de control
10
ATE-Universidad de Oviedo
5
Programacin en Ensamblador
13 8 7 6 0
c5 c4 c3 c2 c1 c0 d f6 f5 f4 f3 f2 f1 f0
Programacin en Ensamblador
Cmo se codifican?
13 10 8 7 6 0
c3 c2 c1 c0 b2 b1 b0 f6 f5 f4 f3 f2 f1 f0
12
ATE-Universidad de Oviedo
6
Programacin en Ensamblador
Nemnico reservado
Qu hacen?
c5 c4 c3 c2 c1 c0 k7 k6 k5 k4 k3 k2 k1 k0
13 8 7 0
Cdigo Operacin 6b Valor con el que se opera 8 bits
En el caso
GOTO c2 c1 c0 k10 k9 k8 k7 k6 k5 k4 k3 k2 k1 k0
y CALL
13
ATE-Universidad de Oviedo
TABLA-RESUMEN
DE INSTRUCCIONES
Orientadas
al byte: son 18
Orientadas
al bit: son 4
Literales
y de
control: son 13
14
ATE-Universidad de Oviedo
7
Programacin en Ensamblador
CICLO DE INSTRUCCION
Oscilador 15
ATE-Universidad de Oviedo
Programacin en Ensamblador
CICLO DE INSTRUCCION
Oscilador 16
ATE-Universidad de Oviedo
8
Programacin en Ensamblador
Instrucciones de CARGA
NEMNICO DESCRIPCIN FLAGS AFECTADOS
clrf f 00 (f) Z
clrw 00 (W) Z
movf f,d (f) (destino) Z
movlw k k (W) Ninguno
movwf f (W) (f) Ninguno
17
ATE-Universidad de Oviedo
Programacin en Ensamblador
Instrucciones de BIT
NEMNICO DESCRIPCIN FLAGS AFECTADOS
bcf f,b Pone a 0 el bit b del registro f Ninguno
bsf f,b Pone a 1 el bit b del registro f Ninguno
Instrucciones ARITMTICAS
NEMNICO DESCRIPCIN FLAGS AFECTADOS
addlw k (W) + k (W) C DC - Z
addwf f,d (W) + (f) (destino) C DC - Z
decf f,d (f) - 1 (destino) Z
incf f,d (f) + 1 (destino) Z
sublw k K - (W) (W) C DC - Z
subwf f,d (f) - (W) (destino) C DC - Z
18
ATE-Universidad de Oviedo
9
Programacin en Ensamblador
Instrucciones LGICAS
NEMNICO DESCRIPCIN FLAGS AFECTADOS
andlw k (W) AND k (W) Z
andwf f,d (W) AND (f) (destino) Z
comf f,d (/f) (destino) Z
iorlw k (W) OR k (W) Z
iorwf f,d (W) OR (f) (destino) Z
rlf f,d Rota (f) a izquierda (destino) C
rrf f,d Rota (f) a derecha (destino) C
swap f,d Intercambia nibbles (f) (destino) Ninguno
xorlw k (W) XOR k (W) Z
xorwf f,d (W) XOR (f) (destino) Z
19
ATE-Universidad de Oviedo
Programacin en Ensamblador
Instrucciones de SALTO
NEMNICO DESCRIPCIN FLAGS AFECTADOS
btfsc f,b Salta si el bit b de f es 0 Ninguno
btfss f,b Salta si el bit b de f es 1 Ninguno
decfsz f,d (f) - 1 (destino) y salta si es 0 Ninguno
incfsz f,d (f) + 1 (destino) y salta si es 0 Ninguno
goto k Salta a la direccin k Ninguno
10
Programacin en Ensamblador
Instrucciones ESPECIALES
NEMNICO DESCRIPCIN FLAGS AFECTADOS
clrwdt Borra Timer del Watchdog /TO - /PD
nop No operacin Ninguno
sleep Entra en modo de bajo consumo /TO - /PD
21
ATE-Universidad de Oviedo
Fichero con el
k Valor literal, constante o etiqueta (puede de 8 o 11 bits)
x No importa el valor (0 1)
juego de El ensamblador genera cdigo con x=0.
instrucciones completo. d Seleccin de destino:
d = 0: almacena el resultado en W,
11
Programacin en Ensamblador
Aprendiendo a Programar
Programa
Datos
23
ATE-Universidad de Oviedo
Programacin en Ensamblador
Directivas de MPASM
Controlan el proceso de ensamblado del programa, pero no son parte del
mismo (tambin se conocen como pseudoinstrucciones).
Las ms usadas :
END
Es la nica directiva obligatoria. Indica al ensamblador dnde debe
detener el proceso. Debe colocarse en la ltima lnea del programa.
12
Programacin en Ensamblador
LIST P=16F877
Indica el tipo de microcontrolador utilizado.
25
ATE-Universidad de Oviedo
Programacin en Ensamblador
Fichero adicionales:
Directivas MPASM.pdf
26
ATE-Universidad de Oviedo
13
Programacin en Ensamblador
Aprendiendo a Programar
Programa
Datos
27
ATE-Universidad de Oviedo
14