Documente Academic
Documente Profesional
Documente Cultură
ENSAMBLADOR
Qu es ensamblador y para qu sirve?
Cuando se empezaron a utilizar smbolos nemotcnicos, se escribieron programas para
traducir automticamente los programas escritos en lenguaje ensamblador a lenguaje
mquina. A estos programas traductores se les llamo ensambladores.
La entrada para un ensamblador es un programa fuente escrito en lenguaje
ensamblador. La salida es un programa objeto, escrito en lenguaje de mquina. El
programa objeto incluye tambin la informacin necesaria para que el cargador pueda
preparar el programa objeto para su ejecucin.
Para evitar confusiones, de aqu en adelante llamaremos lenguaje ensamblador al
conjunto de nemotcnicos y a las reglas para su manejo. Al programa que traduce un
programa objeto a partir de un programa escrito en lenguaje ensamblador lo
llamaremos ensamblador.
Motivos para utilizarlo.
Rapidez: Como el programador directamente selecciona las instrucciones que se
ejecutan en el programa, el programa final queda ms optimizado que un
programa generado por un compilador.
Mayor control de la computadora: Un programa puede acceder directamente
cualquier componente y perifrico de la computadora.
SEGMENTO
Un segmento es un rea especial en un programa que inicia en un limite de un prrafo,
esto es, en una localidad de memoria que regularmente es divisible entre 16, o 10
hexadecimal. Aunque un segmento puede estar ubicado casi en cualquier lugar de la
memoria y, en modo real, puede ser hasta de 64K, solo necesita tanto espacio como el
programa requiera para su ejecucin.
Un segmento en modo real puede ser de hasta 64K. Se puede tener cualquier numero
de segmentos; para direccionar un segmento en particular basta cambiar la direccin
en el registro del segmento apropiado. Los tres segmentos principales son los
segmentos
de
cdigo,
de
datos
y
de
la
pila.
Segmento de cdigo.
El segmento de cdigo (CS) contiene las instrucciones de mquina que son ejecutadas
por lo comn la primera instruccin ejecutable esta en el inicio del segmento, y el
sistema operativo enlaza a esa localidad para iniciar la ejecucin del programa. Como
su nombre indica, el registro del CS direcciona el segmento de cdigo. Si su rea de
cdigo requiere mas de 64K, su programa puede necesitar definir mas de un segmento
de cdigo.
Segmento de datos.
El segmento de datos (DS) contiene datos, constantes y reas de trabajo definidos por
el programa. El registro DS direcciona el segmento de datos. Si su rea de datos
requiere mas de 64K, su programa puede necesitar definir mas de un segmento de
datos.
Segmento de pila.
En trminos sencillos, la pila contiene los datos y direcciones que usted necesita
guardar temporalmente o para uso de sus "llamadas" subrutinas. El registro de
segmento de la pila (SS) direcciona el segmento de la pila.
Lmites de los Segmentos.
Los registros de segmentos contienen la direccin inicial de cada segmento. La figura
2.1 presenta un esquema de los registros CS, DS y SS; los registros y segmentos no
necesariamente estn en el orden mostrado. Otros registros de segmentos son el ES
(segmento extra) y, en los procesadores 80386 y posteriores, los registros FS y GS,
que contienen usos especializados.
Coma ya dijimos, un segmento inicia en un limite de prrafo, que es una direccin por
lo comn divisible entre el 16 decimal o 10 hexadecimal. Suponga que un segmento de
datos inicia en la localidad de memoria 045F0H.
Ya que en este y todos los dems casos el ultimo dgito hexadecimal de la derecha es
cero, los diseadores de computadora decidieron que seria innecesario almacenar el
dgito cero en el registro del segmento. As, 045F0H se almacena como 045F, con el
cero de la extrema derecha sobrentendido. En donde sea apropiado, el texto indica al
cero de la derecha con corchetes, como 045F[0].
Por lo tanto, la localidad real de memoria del byte referido por la instruccin es 04622H;
Direccin
del
Desplazamiento:
Direccin real: 04622H
segmento
DS:
+0032H
045F0H
Note que un programa tiene uno o mas segmentos, los cuales pueden iniciar casi en
cualquier lugar de memoria, variar en tamao y estar en cualquier orden.
CUESTIONARIO
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Qu es un ensamblador?
Cules son los motivos para utilizar ensamblador?
Cules son los motivos para no utilizar ensamblador?
Qu es un ensamblador cruzado?
Qu es un ensamblador residente?
Qu es un microensamblador?
Qu es un macroensamblador?
Cmo operan los ensambladores de una fase?
Cmo operan los ensambladores de dos fases?
Qu es un segmento?
Cul es el segmento que contiene las instrucciones de mquina que son
ejecutadas?
Cul es el segmento que contiene el rea de trabajo definida por el programa?
Cul es el segmento utilizado para almacenar los datos y direcciones de forma
temporal?