Você está na página 1de 6

Instituto Tecnolgico de Tuxtla Gutirrez. Emmanuel Chacha Avendao. Investigacin de la Unidad I.

INTRODUCCION AL LENGUAJE
ENSAMBLADOR
Emmanuel Chacha Avendao
Charrudo.molina@gmail.com
Instituto Tecnolgico de Tuxtla Gutirrez

ResumenEl siguiente reporte es un informe detallado


de la investigacin acerca de una introduccin de lo que son
los lenguajes de bajo de nivel, como lo es el lenguaje
ensamblador, y las herramientas que sern necesarias para
poder dominar su uso.

ndice de Trminos

Interrupciones, Lenguaje
ensamblador, llamadas a sistema, mensajes.

I.INTRODUCCIN
Conocer cmo trabajan los microprocesadores
con lenguaje ensamblador y qu aplicacin pueden
tener. Adems del concepto de interrupciones, en
que fuente pueden servir y como est constituido
todo lo relativo a ese lenguaje.
II.

ESTRUCTURA DE LA INVESTIGACIN

Importancia de la programacin en
lenguaje ensamblador.
En el pasado, muchos programas de control( SO,
bases de datos, gestores, etc) y muchas aplicaciones
escritas en lenguaje ensamblador para maximizar el
rendimiento de mquina .El lenguaje ensamblador
es el lenguaje de programacin ms antiguo y, de
todos los lenguajes, es el que ms se asemeja al
lenguaje mquina nativo. Proporciona un acceso
directo al hardware de la computadora, por lo que se
debe tener una buena comprensin acerca de la
arquitectura y el sistema operativo de su
computadora. El lenguaje mquina es un lenguaje
numrico que un procesador de computadora (la
CPU) entiende de manera especfica. El lenguaje
ensamblador consiste en instrucciones escritas con
nemnicos cortos, tales como ADD, MOV, SUB y
CALL. El lenguaje ensamblador tiene una relacin
de uno a uno con el lenguaje mquina: cada una de
A.

Investigacin de Lenguaje Ensamblador

las instrucciones en lenguaje ensamblador


corresponden a una sola instruccin en lenguaje
mquina. ver [1].
El procesador y sus registros internos.
La unidad central de procesamiento (CPU), en
donde se realizan los clculos y las operaciones
lgicas, contiene un nmero limitado de lugares de
almacenamiento, conocidas como registros; adems
contiene un reloj de alta frecuencia, una unidad de
control y una unidad aritmtica-lgica.

El reloj sincroniza las operaciones internas


de la CPU con los dems componentes del sistema.

La unidad de control (CU) coordina la


secuencia de los pasos involucrados en la ejecucin
de instrucciones de mquina.

La unidad aritmtica-lgica (ALU) realiza


operaciones aritmticas como la suma y la resta, y
operaciones lgicas como AND, OR y NOT.
Los registros son ubicaciones de almacenamiento
con nombre en la CPU, que almacenan los
resultados intermedios de las operaciones.
La unidad de almacenamiento de memoria es en
donde se mantienen las instrucciones y los datos
mientras se ejecuta un programa en la computadora.
La unidad de almacenamiento recibe solicitudes de
datos por parte de la CPU, transfiere datos de la
memoria de acceso aleatorio (RAM) a la CPU, y
transfiere datos de la CPU a la memoria. Ver[1].
B.

Fig. 1
tomada de Lenguaje ensamblador para computadoras en
Intel, 5a Edicin, Kip R. Irvine.

Instituto Tecnolgico de Tuxtla Gutirrez. Emmanuel Chacha Avendao. Investigacin de la Unidad I.

La memoria principal (RAM)


La memoria principal o RAM (Random Access
Memory, Memoria de Acceso Aleatorio) es donde la
computadora guarda los datos que est utilizando en
el momento presente. El almacenamiento es
considerado temporal por que los datos y programas
permanecen en ella mientras que la computadora
este encendida o no sea reiniciada. Se le llama
RAM porque es posible acceder a cualquier
ubicacin de ella aleatoria y rpidamente.
Fsicamente, estn constituidas por un conjunto de
chips o mdulos de chips normalmente conectados
a la tarjeta madre. Los chips de memoria son
rectngulos negros que suelen ir soldados en grupos
a unas plaquitas con "pines" o contactos. La
diferencia entre la RAM y otros tipos de memoria
de almacenamiento, como los disquetes o los discos
duros, es que la RAM es mucho ms rpida, y que
se borra al apagar el computador, no como los
Disquetes o discos duros en donde la informacin
permanece grabada, por eso se dice que es un
dispositivo voltil. Hay muchos tipos de memorias
DRAM, Fast Page, EDO, SDRAM, etc. ver[2]
En los sistemas basados en Intel se utilizan
varios tipos de memoria: memoria de slo lectura
(ROM), memoria de slo lectura programable y
borrable (EPROM), memoria dinmica de acceso
aleatorio (DRAM), RAM esttica (SRAM), RAM
de video (VRAM) y RAM de metal-xido
semiconductor complementario (CMOS):

La ROM se quema de manera permanente


en un chip y no puede borrarse.

La EPROM puede borrarse lentamente con


luz ultravioleta, y puede volver a programarse.

La DRAM, conocida comnmente como


memoria principal, es en donde se guardan los
programas y datos cuando hay un programa en
ejecucin. Es econmica pero debe actualizarse en
un lapso no mayor de 1 milisegundo, ya que de lo
contrario pierde su contenido. Algunos sistemas
utilizan memoria ECC (comprobacin y correccin
de errores).

La SRAM se utiliza principalmente para la


memoria cach de alta velocidad, que es costosa.
No tiene que actualizarse. La memoria cach de la
C.

Investigacin de Lenguaje Ensamblador

CPU est compuesta de SRAM.

La VRAM almacena datos de video. Tiene


doble puerto, y permite que un puerto actualice en
forma continua la pantalla, mientras que otro puerto
escribe datos.

La RAM de CMOS en la tarjeta madre del


sistema almacena la informacin de configuracin.
Se actualiza mediante una batera, por lo que su
contenido se retiene cuando se apaga la
computadora. Ver [1]..
Concepto de interrupciones
Usted Interrupcin es una seal recibida por el
procesador de un ordenador, indicando que debe
"interrumpir" el curso de ejecucin actual y pasar a
ejecutar cdigo especfico para tratar esta situacin.
Las interrupciones surgen de las necesidades que
tienen los dispositivos perifricos de enviar
informacin al procesador principal de un sistema
de computacin.
En el modo de direccionamiento real slo
puede direccionarse 1MB de memoria, del 00000 al
FFFFF hexadecimal. El procesador slo puede
ejecutar un programa a la vez, pero puede
interrumpir en forma momentnea ese programa
para procesar las solicitudes (conocidas como
interrupciones) de los perifricos. Los programas de
aplicacin pueden leer y modificar cualquier rea de
la RAM (memoria de acceso aleatorio) y pueden
leer pero no modificar cualquier rea de la ROM
(memoria de slo lectura). Las interrupciones se
disearon en un principio para ejecutarse bajo MSDOS en modo de direccionamiento real. Es posible
llamar a las interrupciones en modo protegido. La
figura 2 muestra un mapa simple de memoria.
Dentro del rea de memoria del sistema operativo,
los 1024 bytes inferiores de memoria (direcciones
00000 a 003FF) contienen una tabla de direcciones
de 32 bits, llamada tabla de vectores de
interrupcin. Estas direcciones, llamadas vectores
de interrupcin, las utiliza la CPU al procesar las
interrupciones de hardware y de software. Ver [1].
D.

Instituto Tecnolgico de Tuxtla Gutirrez. Emmanuel Chacha Avendao. Investigacin de la Unidad I.

Fig. 2

Fig. 3 Ejemplo de llamadas al sistema. Tomada de


http://tesci252m.blogspot.mx

E. Llamadas al sistema.
Las llamadas al sistema proveen una interfaz
entre los procesos y el Sistema de Operacin. Por lo
general estas llamadas se encuentran disponibles
como instrucciones en lenguaje ensamblable. En
algunos sistemas podemos realizar llamadas al
sistema desde programas en lenguajes de alto nivel,
en cuyo caso se asemejan a llamadas a funciones o
procedimientos. Ver [3]
Las llamadas al sistema comnmente usan
una instruccin especial de la CPU que causa que el
procesador transfiera el control a un cdigo
privilegiado, previamente especificado por el
mismo cdigo. Esto permite al cdigo privilegiado
especificar donde va a ser conectado as como el
estado del procesador.
Cuando una llamada al sistema es invocada,
la ejecucin del programa que invoca es
interrumpida y sus datos son guardados,
normalmente en su PCB (Bloque de Control de
Proceso), para poder continuar ejecutndose luego.
El procesador entonces comienza a ejecutar las
instrucciones de cdigo de alto nivel de privilegio,
para realizar la tarea requerida. Cuando esta
finaliza, se retorna al proceso original, y contina su
ejecucin. El retorno al proceso demandante no
obligatoriamente es inmediato, depende del tiempo
de ejecucin de la llamada al sistema y del
algoritmo de planificacin de CPU. Ver [4]
Investigacin de Lenguaje Ensamblador

F.
Modos de direccionamiento.
Los llamados modos de direccionamiento son las
diferentes maneras de especificar en informtica un
operando dentro de una instruccin. Cmo se
especifican e interpretan las direcciones de memoria
segn
las
instrucciones.
Un
modo
de
direccionamiento especifica la forma de calcular la
direccin de memoria efectiva de un operando
mediante el uso de la informacin contenida en
registros y / o constantes, contenida dentro de una
instruccin de la mquina o en otra parte. El
segmento que es el sujeto de la referencia est
determinado por el registro de segmento. Existen
seis registros de segmento; cul de ellos debe
utilizarse para una referencia particular depende del
contexto de la ejecucin y la instruccin. Existen
once modos de direccionamiento que se pueden
emplear para especificar los operando:

El modo Inmediato, el operando est


incluido en la instruccin.

El modo operando de registro, especifica


uno de los registros de 8, 16 o 32 bits.

El modo directo, el desplazamiento del


operando est contenido como parte de la
instruccin como un desplazamiento de 8, 16 o 32
bits.

El indirecto de registro especifica que uno


de los registros de 8, 16 o 32 bits contiene la
direccin efectiva.

El modo con base, la instruccin incluye un


desplazamiento para agregarlo al registro base, el
cual puede ser cualquiera de los registros de

Instituto Tecnolgico de Tuxtla Gutirrez. Emmanuel Chacha Avendao. Investigacin de la Unidad I.

propsito general. Este es comnmente utilizado


por un compilador para apuntar el inicio de un rea
de variables locales.

El modo Indexado, la instruccin incluye un


desplazamiento para sumarlo a un registro en este
caso llamado registro ndice. Este ultimo puede ser
cualquiera de los registros de propsito general
excepto uno llamado ESP, el cual por lo general se
usa para el procesamiento del stack.

El modo ndice escalado, el contenido de un


registro ndice se multiplica por un factor de
escalamiento de 2,4 u 8, y entonces se suma a un
desplazamiento. Este modo es muy conveniente
para arreglos indexados.

El modo ndice con base agrega el contenido


de los registros base e ndice para formar la
direccin efectiva.

El modo ndice escalado con base suma el


contenido del registro ndice multiplicado por un
factor de escalamiento y el contenido del registro
base.

El modo ndice con base con desplazamiento


suma el contenido del registro base, el registro
ndice y un desplazamiento. Se emplea para accesar
un arreglo local en una trama de stack.

El modo ndice escalado con base con


desplazamiento es lo mismo que el anterior, con la
inclusin del escalamiento en el registro ndice. Es
til s un arreglo se almacena en una trama de stack;
en este caso los elementos de arreglo seran de 2, 4
u 8 bytes en longitud. Ver [5].
G. Proceso de ensamblado y ligado.
Un programa de cdigo fuente escrito en lenguaje
ensamblador no puede ejecutarse directamente en su
computadora de destino. Debe traducirse, o
ensamblarse en cdigo ejecutable. De hecho, un
ensamblador es muy similar a un compilador, el tipo
de programa que utilizamos para traducir un
programa en C++ o Java a cdigo ejecutable.
El ensamblador produce un archivo que contiene
lenguaje mquina, al cual se le conoce como
archivo de cdigo objeto. Este archivo no est
todava listo para ejecutarse. Debe pasarse a otro
programa llamado enlazador, que a su vez produce
un archivo ejecutable. Este archivo est listo para
ejecutarse desde MS-DOS/Windows. Ver [1].

Investigacin de Lenguaje Ensamblador

Los pasos son:


1. El programa utiliza un editor de texto para
crear un archivo de texto ASCII, conocido como
archivo de cdigo fuente.
2. El ensamblador lee el archivo de cdigo
fuete y produce un archivo de cdigo objeto, una
traduccin del programa a lenguaje mquina. De
manera opcional, produce un archivo de listado. Si
ocurre un error, el programador debe regresar al
paso 1 y corregir el programa.
3. El enlazador lee el archivo de cdigo
objeto y verifica si el programa contiene alguna
llamada a los procedimientos en una biblioteca de
enlace. El enlazador copia cualquier procedimiento
requerido de la biblioteca de enlace, lo combina con
el archivo de cdigo objeto y produce el archivo
ejecutable. De manera opcional, el enlazador puede
producir un archivo de mapa.
4. La herramienta cargador (loader) del
sistema operativo lee el archivo ejecutable y lo
carga en memoria, y bifurca la CPU hacia la
direccin inicial del programa, para que ste
empiece a ejecutarse. Ver [6].
H. Proceso de ensamblado y ligado.
Un Para poder desplegar mensajes en lenguaje
ensamblador primero debemos conocer la estructura
del programa en ensamblador.
COMENTARIOS
EN
LENGUAJE
ENSAMBLADOR.
El uso de comentarios a lo largo de un programa
puede mejorar su claridad, en especial en lenguaje
ensamblador, donde el propsito de un conjunto de
instrucciones con frecuencia no es claro. Un
comentario empieza con punto y coma (;) y, en
donde quiera que lo codifique, el ensamblador
supone que todos los caracteres a la derecha de esa
lnea son comentarios. Un comentario puede
contener cualquier carcter imprimible, incluyendo
el espacio en blanco.
Un comentario puede aparecer solo en una lnea o
a continuacin de una instruccin en la misma lnea,
como lo muestran los dos ejemplos siguientes:

; Toda esta lnea es un comentario.

ADD AX, BX ; Comentario en la misma


lnea que la instruccin.
Ya que un comentario aparece solo en un listado

Instituto Tecnolgico de Tuxtla Gutirrez. Emmanuel Chacha Avendao. Investigacin de la Unidad I.

de un programa fuente en ensamblador y no genera


cdigo de mquina, puede incluir cualquier cantidad
de comentarios sin afectar el tamao o la ejecucin
del programa ensamblado. Otra manera de
proporcionar comentarios es por medio de la
directiva COMMENT.
PALABRAS RESERVADAS.
Ciertas palabras en lenguaje ensamblador estn
reservadas para sus propsitos propios, y son usadas
solo bajo condiciones especiales. Por categoras, las
palabras reservadas incluyen: Instrucciones, como
MOV y ADD, que son operaciones que la
computadora puede ejecutar. Directivas como END
o SEGMENT, que se emplean para proporcionar
comandos al ensamblador.
Operadores, como FAR y SIZE, que se utilizan en
expresiones. Smbolos predefinidos, como @Data y
@Model, que regresan informacin a su programa.
El uso de una palabra reservada para un propsito
equivocado provoca que el ensamblador genere un
mensaje de error.
IDENTIFICADORES.
Un identificador es un nombre que se aplica a
elementos en el programa. Los dos tipos de
identificadores son: nombre, que se refiere a la
direccin de un elemento de dato y etiqueta, que se
refiere a la direccin de una instruccin. Las
mismas reglas se aplican tanto para los nombres
como para las etiquetas. Un identificador puede usar
los siguientes caracteres:
1. Letras del alfabeto: Desde la A hasta la Z
2. Dgitos: Desde el 0 al 9 (no puede ser el
primer carcter)
3. Caracteres
especiales:
Signo
de
interrogacin (?), Subrayado (_), Signo de pesos
($),Arroba (@), Punto (.) (no puede ser el primer
carcter).
El primer carcter de un identificador debe
ser una letra o un carcter especial, excepto el
punto. Ya que el ensamblador utiliza algunos
smbolos especiales en palabras que inician con el
smbolo @, debe evitar usarlo en sus definiciones.
El ensamblador trata las letras maysculas y
minsculas como iguales. La longitud mxima de
un identificador es de 31 caracteres (247 desde el
MASM 6.0).
INSTRUCCIONES.
Investigacin de Lenguaje Ensamblador

Un programa en lenguaje ensamblador consiste


en un conjunto de enunciados. Los dos tipos de
enunciados son:
1. Instrucciones, tal como MOV y ADD, que el
ensamblador traduce a cdigo objeto.
2. Directivas, que indican al ensamblador que
realiza una accin especfica, como definir un
elemento de dato.
OPERACION
La operacin, que debe ser codificada, es con
mayor frecuencia usada para la definicin de reas
de datos y codificacin de instrucciones. Para un
elemento de datos, una operacin como DB o DW
define un campo, rea de trabajo o constante.
OPERANDO
El operando (si existe) proporciona informacin
para la operacin que acta sobre l. Para un
elemento de datos, el operando identifica su valor
inicial.
DIRECTIVAS PARA LISTAR: PAGE Y TITLE
La directiva PAGE y TITLE ayudan a controlar el
formato de un listado de un programa en
ensamblador. Este es su nico fin, y no tienen efecto
sobre la ejecucin subsecuente del programa.
PAGE. Al inicio de un programa, la directiva
PAGE designa el nmero mximo de lneas para
listar en una pgina y el nmero mximo de
caracteres en una lnea.
Entre otros directivas mas. Ver [7].
I.
Conclusin.
El lenguaje ensamblador es la manera de hablar
con el microprocesador y decirle que acciones
tomar, as como tambin sirve para programar
eventos que deseemos que haga. Es un lenguaje de
muy bajo nivel ya que no es tan fcil programarlo,
ya que cada empresa crea su propio lenguaje para
cada uno de sus respectivos dispositivos.

Instituto Tecnolgico de Tuxtla Gutirrez. Emmanuel Chacha Avendao. Investigacin de la Unidad I.

REFERENCIAS

[1] Lenguaje ensamblador para computadoras en Intel, 5a


Edicin, Kip R. Irvine.
[2] Scott Muller . 2001. Manual de Actualizacin y
Reparacin de PCS12Edicin: Pearson Educacin.
[3]
http://ldc.usb.ve/~spd/Docencia/ci3821/Tema2/node7.html
[4]
http://santana-maciaslenguajes.blogspot.mx/p/interrupciones-y-llamadas-alsistema.html
[5] http://www.sites.upiicsa.ipn.mx/polilibros/portal/Polilibro
s/P_proceso/Organizacion_de_computadoras_Oscar_Garc
ia_Hernandez/organizacion%20de
%20computadoras/unidad%205/5.4.1.html
[6] http://leo-yac.wix.com/lenguaje-ensamblador#!procesosde-ensamblado-y-ligado/c12lq
[7] Investigacin del Instituto Tecnolgico Superior de
Felipe Carrillo Puerto, Ing en Sistemas Computacionales.
Autores
Emmanuel Chacha Avendao, estudiante de Ingenieria en
Sistemas Computaciones, 6to semestre.

Investigacin de Lenguaje Ensamblador

Você também pode gostar