Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Peor performance,
Menor dificultad
Mayor portabilidad
Máquina virtual
Java,.NET
Interpretados
Alto nivel Perl, PHP,etc.
Compilados
Lenguajes
Arquitectura determinada
C++,Delphi,VB,etc.
Bajo nivel
Assembler
Mejor performance,
Mayor dificultad
Menor portabilidad
Bibliotecas
Compilación
Tabla de
símbolos
Ensamblado
Ensamblado: proceso lineal, relativamente simple, de reemplazo entre las sentencias de lenguaje
simbólico y sus unívocas equivalencias en lenguaje máquina (binario).
Ensamblador: herramienta de software que además del proceso antes mencionado ofrece
prestaciones adicionales tales como:
●uso de rótulos simbólicos (etiquetas),
MC68HC11A0 256 0 0 0
MC68HC11A1 256 0 0 512
MC68HC11A7 256 8K 0 0
MC68HC11A8 256 8K 0 512
MC69HC11D0 192 0 0 0
MC68HC11D3 192 4K 0 0
MC68HC711D3 192 0 4K 0
MC68HC11ED0 512 0 0 0
MC68HC11E0 512 0 0 0
MC68HC11E1 512 0 0 512
MC68HC11E8 512 12K 0 0
MC68HC11E9 512 12K 0 512
MC68HC711E9 512 0 12K 512
MC68HC811E2 256 0 0 2K
MC68HC11E20 768 20K 0 512
MC68HC711E20 768 0 20K 512
MC68HC11F1 1K 0 0 512
Registros de CPU:
Acumulador A (8 bits) Acumulador B (8 bits) El Acc D es un registro de 16 bits, cuya parte alta es el
Acc A y parte baja el Acc B, de 8 bits cada uno.
Registros índice
Inmediato (IMM)
La instrucción va seguida del operando. Puede ser de uno o dos bytes (que se leerán consecutivos, primero
la parte alta). Se indica con un signo numeral antes del operando.
Por ejemplo: LDAA #1 (Carga en el acumulador A el valor 1)
Aunque el operando se encuentra en memoria, su dirección se obtiene del PC.
Extendido (EXT)
La instrucción va seguida de la dirección efectiva del operando. Dicha dirección es de 16 bits, por lo que se
indica como HH LL (parte alta, parte baja) sin dejar espacios. La dirección estará comprendida en el intervalo
$0000 - $FFFF. El signo $ (moneda) indica que se trata de un número en hexadecimal.
Por ejemplo: LDAA $2001 (Carga en el acumulador A el contenido de la dirección 2001H)
Directo (DIR)
El operando se encuentra en la página cero de la memoria (los primeros 256 bytes, cuyas direcciones inician
con $00xx). La instrucción va seguida de la parte baja (8 bits) de la dirección efectiva del operando.
La mitad de dirección proporcionada estará comprendida en el intervalo $00 - $FF, la dirección real efectiva
estará en el intervalo $0000 - $00FF. El signo $ (moneda) indica que se trata de un número en hexadecimal.
Por ejemplo: LDAA $01 (Carga en el acumulador A el contenido de la dirección 0001H)
Inherente (INH)
La instrucción no requiere acceso a memoria para obtener los operandos (si es que los necesita) sino que
los mismos están disponibles en registros. El código de operación indicará de cuáles se trata.
Por ejemplo: INX (incrementa el registro índice X).
●Todo lo que se indique a continuación de los operandos será ignorado por el ensamblador
●Se pueden incluir comentarios de línea completa comenzándola con el carácter * (asterisco)
●No distingue mayúsculas/minúsculas, tampoco es obligatorio que todas las líneas tengan etiqueta
●Aunque la mayoría de las directivas al ensamblador requieren etiqueta, otras no las admiten
Ejemplo:
ZMB es una directiva similar a RMB que además llena con ceros
la memoria reservada. El simulador THRSim no la soporta.
Ejemplos:
• Observe el uso combinado de EQU y RMB. Primero se
define que el identificador Word equivale a 2. Luego se
utiliza para reservar 2 bytes de memoria para las
direcciones.
• Lo mismo se hace con byte.
Ejemplos:
• Observe que tanto vector como vector2 se generaron en memoria. Los valores de vector2
expresados como ascii o números negativos fueron convertidos por el ensamblador.
• Cuando se utiliza el símbolo “vector” o “vector2” se asocia a la dirección inicial del mismo.
• Se ha observado un bug del THRSim que falla en este punto.
• Ahora los vectores están compuestos por elementos de 16 bits. Note que los valores 8 y 43 (que
podrían expresarse en 8 bits) se indican como 0008 y 002B respectivamente.