Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Lenguaje Ensamblador1
Lenguaje Ensamblador1
UNIDAD 1
ENSAMBLADOR
Es un lenguaje de programación de
bajo nivel para los computadores,
microprocesadores, microcontroladores
y otros circuitos integrados
programables. Implementa una
representación simbólica de los códigos
de máquina binarios y otras constantes
necesarias para programar una
arquitectura dada de CPU y constituye la
representación más directa del código
máquina específico para cada
arquitectura legible por un programador
Cobol
Alto nivel Pascal
Basic
Java
C
Mediano BCPL
nivel
Maquina 001110011010100
Los lenguajes de bajo nivel son mas
fáciles de utilizar que los lenguajes
máquina, pero, al igual que ellos,
dependen de la máquina en
particular. El lenguaje de bajo nivel
por excelencia es el ensamblador.
Las instrucciones en lenguaje
ensamblador son instrucciones
conocidas como nemotécnicos.
• Por ejemplo, nemotécnicos típicos de operaciones
aritméticas son: en inglés, ADD, SUB, DIV, etc.; en
español, SUM, RES, DIV,etc. Una instrucción típica de
suma sería:
ADD M, N, P
El procesador es un circuito
integrado constituido por millones de
componentes electrónicos integrados.
Su arquitectura interna consta de las
siguientes partes
Unidad de control
Unidad Aritmética lógica
Registros Internos
Buses internos
Interrupciones
Arquitectura Interna del
microprocesador
Secuencia de acciones
1. Se inicia en una posición de memoria
definida
2. Se lee el dato de esa posición y se manda
al control
3. La unidad de control decodifica la
instrucción y la ejecuta en señales
adecuadas
4. Se incrementa el contador del programa
(registro que indica a que posición se
debe dirigir)
5. Se repite proceso desde el punto 2, hasta
recibir unas señal del exterior
Arquitectura del
microprocesador
ALU
Circutito digital que realiza
operaciones artimeticas y logicas
Unidad de control
Cerebro del microprocesador, genera
señales de control interno y externo.
Recibe códigos los cuales decodifica y
ejecuta.
Inconvenientes
Requiere compiladores mucho más complejos.
Cualquier mejora en la arquitectura hardware
implica un cambio en el juego de instrucciones
(compatibilidad hacia atrás nula).
SMID
Single Instruction, Multiple Data es una técnica empleada para
conseguir paralelismo a nivel de datos.
Segmentos de código
Segmentos de datos
Segmentos de pila
Segmentos de codigo (CS)
Contiene instrucciones de maquina
que son ejecutadas.
Comúnmente la primera instrucción
ejecutable esta en el inicio del
segmento, el SO enlaza a esa
localidad para iniciar la ejecución del
programa
Segmento de datos (DS)
Contiene datos, constantes y areas de
trabajo definidos por el proograma
El registro del DS direcciona al
segmento de datos
Segmento de pila (SS)
La pila contiene los datos y
direcciones que se necesitan guardar
temporalmente o para el uso de sus
llamadas subrutinas.
Dar versatilidad
Reducir el numero de bits del campo
del operando
La disponibilidad de diferentes
esquemas de direccionamiento da al
programador flexibilidad para escribir
programas eficientes en cuanto la
numero de instrucciones y el tiempo
de ejecución.
Registro
Implícito Pila
Registro
Inmediato absoluto Contador de programa
Memoria
Apuntador de pila
Directo
Relativo a registros (indexados) Base (base y desplazamiento)
Índice
Autoincremental
Autoindexado
Autodecrementa
Indirecto
Los modos de direccionamiento
también pueden clasificarse en
propios e impropios
Ejemplo:
MOV AH, 9
Direccionamiento por
registro
El operando esta especificado con el
direccionamiento directo por registro