You are on page 1of 18

Instituto Tecnolgico de Cancn

Ensayo:
Unidad I: Introduccin al lenguaje ensamblador

Materia:
Lenguaje de interfaz

Semestre: 6

Carrera:
Ingeniera en sistemas computacionales

Profesor:
Ing. David Nochebuena Gonzlez
INDICES

Resumen.............................................................................................................. 3
Palabras claves..................................................................................................... 3
Summary.............................................................................................................. 4
Keyword............................................................................................................... 5
Introduccin.......................................................................................................... 6
1.1 Importancia de la programacin en lenguaje ensamblador......................................7
1.2 El procesador y sus registros internos..................................................................8
1.3 La memoria principal (RAM)............................................................................. 10
1.4 El concepto de interrupciones...........................................................................11
1.5 Llamadas a servicios del sistema......................................................................14
1.6 Modos de direccionamiento.............................................................................. 15
1.7 Proceso de ensamblado y ligado.......................................................................17
1.8 Desplegado de mensajes en el monitor..............................................................18
Conclusin.......................................................................................................... 18
Resumen
El lenguaje ensamblador es un lenguaje de bajo nivel utilizando el cdigo binario y
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. constituye la
representacin del cdigo mquina especfico para cada arquitectura de
microprocesador.

Palabras claves
Cpu:
Lenguajes:
Registros:
Hardware:
Procesador:
Memoria:
Bus:
Cache:
Datos:
Direccionamiento:

Summary

Assembler language is a low-level language using binary code And is the oldest
programming language and, of all languages, is the one that most resembles the
native machine language. Provides direct access to computer hardware, so you
should have a good understanding of the architecture and The operating system of
your computer. Constitutes the machine code representation specific to each
microprocessor architecture.

Keyword

Cpu:
idioms:
registry:
Hardware:
processor:
Memory:
Bus:
Cache:
data:
Addressing:

Introduccin

el lenguaje ensamblador es el lenguaje de programacin ms antiguo y, de todos


los lenguajes, es el que ms se asemeja al lenguaje mquina. 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 la
computadora. con el lenguaje ensamblador se tiene un control muy preciso de las
tareas realizadas por un microprocesador por lo que se pueden crear segmentos
de cdigo difciles y/o muy ineficientes de programar en un lenguaje de alto nivel,
ya que, entre otras cosas, en el lenguaje ensamblador se dispone de instrucciones
del cpu que generalmente no estn disponibles en los lenguajes de alto nivel.

el lenguaje ensamblador refleja directamente la arquitectura y las instrucciones en


lenguaje de mquina de la cpu, y pueden ser muy diferentes de una arquitectura
de cpu a otra. cada arquitectura de microprocesador tiene su propio lenguaje de
mquina, y en consecuencia su propio lenguaje ensamblador ya que este se
encuentra muy ligado a la estructura del hardware para el cual se programa. los
microprocesadores difieren en el tipo y nmero de operaciones que soportan;
tambin pueden tener diferente cantidad de registros, y distinta representacin de
los tipos de datos en memoria.

1.1 Importancia de la programacin en lenguaje ensamblador.

la importancia del lenguaje ensamblador radica principalmente que se trabaja


directamente con el microprocesador; por lo cual se debe de conocer el
funcionamiento interno de este, tiene la ventaja de que en l se puede realizar
cualquier tipo de programas que en los lenguajes de alto nivel no lo pueden
realizar
existen dos clases de lenguaje de programacin: de alto nivel y de bajo nivel. los
programadores que escriben en un lenguaje de alto nivel como c y pascal,
codifican comandos poderosos, cada uno de los cuales puede generar muchas
instrucciones en lenguaje mquina. por otro lado, los programadores que escriben
en un lenguaje ensamblador de bajo nivel codifican instrucciones simblicas, cada
una de las cuales genera una instruccin en lenguaje mquina. a pesar del hecho
que codificar en un lenguaje de alto nivel es ms productivo algunas ventajas de
codificar en el lenguaje ensamblador son:

proporciona ms control sobre el manejo particular de los requerimientos de


hardware

genera mdulos ejecutables ms pequeos y ms compactos

con mayor probabilidad tiene una ejecucin ms rpida una prctica comn es
combinar los beneficios de ambos niveles de programacin: codificar el grueso de
un proyecto en un lenguaje de alto nivel y los mdulos crticos (aquellos que
provocan notables retardos) con lenguaje ensamblador. un lenguaje de bajo nivel
utiliza un ensamblador para realizar la traduccin. un programa enlazador para
ambos niveles alto y bajo, completa el proceso al convertir el cdigo objeto en
lenguaje ejecutable.

1.2 El procesador y sus registros internos


Figura: estructura interna del procesador.

para comprender la organizacin del procesador, consideremos los requisitos que


ha de cumplir

captar instruccin: el procesador lee una instruccin de la memoria (registro,


cach o memoria principal).

interpretar instruccin: la instruccin se decodifica para determinar qu accin es


necesaria.

estructura y funcionamiento del procesador 4 3 9

captar datos: la ejecucin de una instruccin puede exigir leer datos de la


memoria o de un mdulo de e/s.

procesar datos: la ejecucin de una instruccin puede exigir llevar a cabo alguna
operacin aritmtica o lgica con los datos.

escribir datos: los resultados de una ejecucin pueden exigir escribir datos en la
memoria o en un mdulo de e/s.

registros

figura registros.
un registro es una memoria de alta velocidad y poca capacidad, integrada en el
microprocesador, que permite guardar transitoriamente y acceder a valores muy
usados, generalmente en operaciones matemticas

registro de segmento
registro de propsito general
registro de apuntador de instrucciones
registro apuntadores
registros ndice
registro de banderas

Figura: el procesador y el bus del sistema.

1.3 La memoria principal (RAM)

con la memoria RAM nosotros podemos borrar y grabar las veces que se requiera.
al apagar la fuente de alimentacin, todos los datos o informacin grabada se
borrarn instantneamente ya que solo se usa como un tipo de almacenamiento
temporal.

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
Figura: la memoria ram.

la memoria ram (random access memory, memoria de acceso aleatorio) tiene dos
modos de operacin:

ram esttica: compuesta por flips-flops internos que almacenan informacin


binaria. la informacin almacenada es vlida mientras la unidad est encendida.

ram dinmica: conjunto de pequeos condensadores que pueden estar cargados o


descargados. debe refrescarse cada poco milisegundo para impedir la prdida de
informacin. tienen mayor capacidad que las estticas.

Figura: mdulo de memoria y zcalo respectivo.

1.4 El concepto de interrupciones

una interrupcin es una situacin especial que suspende la ejecucin de un


programa de modo que el sistema pueda realizar una accin para tratarla. tal
situacin se da, por ejemplo, cuando un perifrico requiere la atencin del
procesador para realizar una operacin de e/s.

tabla 1.1 clases de interrupciones


generadas por alguna condicin que se produce como resultado
de la ejecucin de una instruccin, tal como desbordamiento
programa
aritmtico (overflow), divisin por cero, intento de ejecutar una
instruccin maquina inexistente e intento de acceder fuera del
espacio de memoria permitido por el usuario.
generadas por un temporizador interno al procesador. esto
permite al sistema operativo realizar ciertas funciones de manera
temporizacin
regular.
generadas por un controlador de e/s, para indicar la finalizacin
sin problemas de una operacin o para avisar de ciertas
e/s
condiciones de error.
generadas por un fallo tal como la falta de potencia de
alimentacin o un error de paridad en la memoria.
fallo de hardware

las interrupciones constituyen quiz el mecanismo ms importante para la


conexin del microcontrolador con el mundo exterior, sincronizando la ejecucin
de programas con acontecimientos externos.
Figura: flujo de control de un programa sin y con interrupcin.

los pasos indicados a continuacin indican el procesamiento:

1. terminar la ejecucin de la instruccin mquina en curso.

2. salva el valor de contador de programa, ip, en la pila, de manera que en la cpu,


al terminar el proceso, pueda seguir ejecutando el programa a partir de la ltima
instruccin.

3. la cpu salta a la direccin donde est almacenada la rutina de servicio de


interrupcin (isr, interrupt service routine) y ejecuta esa rutina que tiene como
objetivo atender al dispositivo que gener la interrupcin.

4. una vez que la rutina de la interrupcin termina, el procesador restaura el


estado que haba guardado en la pila en el paso 2 y retorna al programa que se
estaba usando anteriormente.

Figura: ciclo de instruccin con interrupciones.

1.5 Llamadas a servicios del sistema

Una llamada al sistema es un mtodo o funcin que puede invocar un proceso


para solicitar un cierto servicio al sistema operativo. dado que el acceso a ciertos
recursos del sistema requiere la ejecucin de cdigo en modo privilegiado, el
sistema operativo ofrece un conjunto de mtodos o funciones que el programa
puede emplear para acceder a dichos recursos. en otras palabras, el sistema
operativo acta como intermediario, ofreciendo una interfaz de programacin (api)
que el programa puede usar en cualquier momento para solicitar recursos
gestionados por el sistema operativo.

algunos ejemplos de llamadas al sistema son las siguientes:

time: que permite obtener la fecha y hora del sistema.

write: que se emplea para escribir un dato en un cierto dispositivo de salida, tales
como una pantalla o un disco magntico.

read: que es usada para leer de un dispositivo de entrada, tales como un teclado
o un disco magntico.

open: que es usada para obtener un descriptor de un fichero del sistema, ese
fichero suele pasarse a write.

Figura: los 11 pasos para realizar la llamada al sistema read(fd, bufer, nbytes).

1.6 Modos de direccionamiento

los llamados modos de direccionamiento son las diferentes maneras de especificar


en informtica un operando dentro de una instruccin en lenguaje ensamblador.
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.

las operaciones se hacen entre registros o registros y memoria, pero nunca entre
memoria y memoria (salvo algunas operaciones con cadenas de caracteres).

los modos de direccionamiento determinan el lugar en que reside un operando, un


resultado o la siguiente instruccin a ejecutar segn el caso.

tenga en cuenta que no existe una forma generalmente aceptada de nombrar a los
distintos modos de direccionamiento. en particular, los distintos autores y
fabricantes de equipos pueden dar nombres diferentes para el modo de hacer
frente al mismo, o los mismos nombres, a los diferentes modos de
direccionamiento:

direccionamiento inmediato: el operador es especificado en la instruccin misma

Figura: direccionamiento directo.

direccionamiento directo: es directo cuando la instruccin tiene lugar donde se


encuentra el operando.

direccionamiento relativo: la instruccin indica el desplazamiento del operando con


respecto a un puntero.
direccionamiento indirecto: la posicin indicada por la instruccin no es el
operando si no la direccin de memoria en la que se encuentra, por lo que se
necesita un acceso adicional a memoria

Figura: direccionamiento indirecto por registro.

direccionamiento implcito: no es necesario poner ninguna direccin de forma


explcita, ya que en el propio cdigo de operacin se conoce la direccin del
operando al que se desea acceder o con el que se quiere operar

direccionamiento de registro: sirve para especificar operadores que estn en


registros

direccionamiento indirecto de registros: en este modo el campo de la direccin de


la instruccin da la direccin en donde la direccin efectiva se almacena en la
memoria. el control localiza la instruccin de la memoria y utiliza su parte de
direccin para acceder a la memoria

1.7 Proceso de ensamblado y ligado

este proceso est resumido en la figura 1.0 y en los pasos siguientes:


figura 1.0 ciclo de ensamblado-enlazado-ligado.

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 cargadora 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.

1.8 Desplegado de mensajes en el monitor

todos los grficos y el texto que se muestran en el monitor se escriben en la ram


de visualizacin de video, para despus enviarlos al monitor mediante el
controlador de video. el controlador de video es en s un microprocesador de
propsito especial, que libera a la cpu principal del trabajo de controlar el hardware
de video.

un monitor de pantalla de cristal lquido (lcd) digital directo recibe un flujo de bits
digitales directamente desde el controlador de video, y no requiere del barrido de
trama.

Figura: mensajes en el monitor

Conclusin

el lenguaje ensamblador es una de las herramientas de programacin ms


utilizadas por todas aquellas personas que desean tener un mayor grado de
comprensin sobre el funcionamiento a nivel de dispositivo de una computadora.
nos brinda muchas formas de trabaja directamente con el microprocesador y as
generar mdulos ejecutables ms pequeos.

You might also like