Está en la página 1de 22

Introduccin al Lenguaje

Ensamblador
Introduccin
Sintaxis de una instruccin
Escritura de programas tipo EXE y COM

Clase 04
Arquitectura de Computadoras
Introduccin
Las computadoras ejecutan programas, compuestos
por instrucciones o sentencias
Un programa, es una secuencia de operaciones que
resuelven un problema determinado, estn escritos
utilizando una notacin formal conveniente
Los programas son escritos por programadores, con el
apoyo de algn lenguaje de programacin, que se
adecue a sus necesidades, hoy en da existen muchas
alternativas, cada una de ellas con sus propias
ventajas, desventajas y curva de aprendizaje
Un programa en ejecucin, tambin llamado proceso
se encuentra cargado en la memoria principal
Lenguajes de alto nivel
Son ms cercanos al lenguaje natural, los programas
son ms cortos en cuanto a lneas de cdigo, son muy
utilizados por programadores
Se codifican mediante smbolos alfanumricos, de
puntuacin, parntesis, separadores, etc.
Son simblicos, no son directamente interpretables
por la circuitera de la mquina. Caractersticas:
Traduccin automtica a lenguaje mquina
Independencia de la arquitectura del computador
Transportable entre diferentes computadores
Algunos tipos de lenguajes de alto nivel, son los de
diseo de sistemas de informacin, los de propsito
especfico (comerciales, cientficos, educativos, etc) y
los de propsito general
Lenguaje de bajo nivel
Estn vinculados a la estructura del computador, son
diseados para obtener el mximo provecho de las
caractersticas fsicas del computador
Tiene dependencia absoluta de la arquitectura del
computador, imposible de transportar programas entre
distintas mquinas, salvo que sean de la misma familia
o compatibles
Instrucciones poco potentes y programas muy largos
Tipos: Lenguaje de mquina y Lenguaje ensamblador
En lenguaje mquina, las instrucciones se encuentran
codificadas en binario
La codificacin de programas en binario, es natural y
conveniente para la circuitera del computador, pero es
difcil para un programador
Lenguajes de alto y bajo nivel
Lenguaje Ensamblador
El lenguaje ensamblador, es la representacin de la
codificacin binaria de un computador, surgi para
facilitar la escritura de programas de computador
Es un lenguaje simblico, asigna nombres a las
instrucciones de mquina, y a las posiciones de
memoria que contienen instrucciones o datos
Utiliza cdigos nemotcnicos, que es la representacin
ms directa del cdigo mquina, especfico para cada
arquitectura y legible por un programador
Existe una correspondencia biunvoca, entre las
instrucciones de mquina y las instrucciones de un
lenguaje ensamblador
Debe ser traducido a lenguaje mquina para poder ser
interpretado y ejecutado por el computador
Lenguajes de alto nivel y bajo nivel
Los factores que miden la calidad de los programas
ejecutables son la velocidad y tamao en nmero de
palabras de memoria
Los compiladores proporcionan un cdigo mquina de
alta calidad pequeo y rpido, haciendo poco atractiva
la programacin en ensamblador
Puede ser recomendable programar en ensamblador
cuando la velocidad del programa y su tamao sean
crticos. Solucin mixta:
Programar en alto nivel la mayor parte del cdigo
Programar en ensamblador las partes crticas en
cuanto a velocidad
Programar en ensamblador los sistemas con un
tamao de memoria muy reducido
El ciclo de ensamblado, enlazado y ejecucin
Compilador (compiler): traductor del lenguaje de alto
nivel a lenguaje ensamblador, hoy los compiladores
traducen programas directamente a lenguaje mquina
Ensamblador (assembler): traductor del lenguaje
ensamblador a lenguaje mquina
Enlazador (linker): crea el cdigo mquina ejecutable
Cargador (loader): carga el cdigo ejecutable en
memoria y lo prepara para su ejecucin
Intrprete: traductor de lenguaje de alto nivel a
lenguaje mquina. Traduce y ejecuta las instrucciones
del programa fuente una por una, sin generar fichero
alguno con cdigo objeto. Los intrpretes son propios
de los llamados lenguajes interpretados (BASIC, Lips,
etc..)
Desarrollo de programas en ensamblador
Carga y Ejecucin: Consiste en la transferencia del
programa ejecutable a la memoria del computador
desde el archivo en disco y su posterior lanzamiento
de su ejecucin
El programa ejecutable formado por instrucciones en
lenguaje mquina se encuentra almacenado en
posiciones consecutivas de memoria
El Contador de Programa (PC), es un registro que
contiene la direccin de la posicin de memoria, que
contiene la instruccin a ser ejecutada a continuacin
Herramienta utilizada: cargador que pertenece al S.O.
Sintaxis de una instruccin
Una instruccin en lenguaje ensamblador consta de
los siguientes cuatro campos:
[etiqueta:] mnemnico [operandos] [;comentarios]
Los corchetes indican que el campo es opcional
Etiqueta, permite referirse a una lnea de cdigo por su
nombre, este campo puede incluir hasta 31 caracteres
Mnemnico (instruccin) y Operandos del lenguaje
ensamblador, se refieren al trabajo real que ejecutar
el programa. Ejemplos de instrucciones:
ADD AL, BL
MOV AX, 6764
ADD y MOV son los mnemnicos de cdigos de
operacin (opcode) y AL, BL, AX y 6764, son los
operandos
En lugar de los mnemnicos y operandos estos
campos podran contener pseudo instrucciones de
ensamblador o directivas
Ests son usadas por el ensamblador para organizar
el programa, las directivas no generan cdigo de
mquina y son usadas slo por el ensamblador
Ejemplos de directivas: SEGMENT, DB, ENDS,
ASSUME, END, ENDP, etc.
Comentarios, empiezan con un punto y coma, son
opcionales y pueden incluirse al final de una lnea o
pueden constituir toda una lnea del programa
El ensamblador ignora los comentarios, pero ellos son
indispensables para los programadores
Es recomendable usar los comentarios para describir
el programa, para hacerlos ms fcil de leer y
entender por cualquier persona
Segmentos de un programa
Aunque es posible escribir un programa en lenguaje
ensamblador que use un solo segmento, normalmente
un programa est conformado por al menos tres
segmentos:
Segmento de Pila: define espacio de almacenamiento
para la pila
Segmento de Datos: define los datos que el programa
usar
Segmento de Cdigo: contiene las instrucciones del
lenguaje ensamblador
Se usan las directivas SEGMENT y ENDS para indicar
al ensamblador el inicio y fin de un segmento
Formato de un segmento:
Etiqueta SEGMENT [opciones]
;En este lugar se colocan las
;sentencias que pertenecen
;a este segmento
Etiqueta ENDS
La etiqueta o nombre, debe seguir la convencin de
nombres y debe ser nica
Las opciones, brindan informacin importante para el
ensamblador sobre la organizacin del segmento, pero
es opcional
La etiqueta de ENDS debe ser la misma de
SEGMENT
Las sentencias del lenguaje son agrupadas dentro de
segmentos para que sean reconocidas por el
ensamblador y consecuentemente por el CPU
;Formato de un programa en Lenguaje Ensamblador
;---------------------
PILA SEGMENT STACK
DB 64 DUP (?)
PILA ENDS
;----------------------
DATOS SEGMENT
DATO1 DB 52H
DATO2 DB 29H
SUMA DB ?
DATOS ENDS
;----------------------
CODIGO SEGMENT
INICIO PROC FAR ;ste es el punto de entrada del programa
ASSUME CS: CODIGO, DS: DATOS, SS: PILA
MOV AX, DATOS ;carga la direccin del segmento de datos
MOV DS, AX ;asigna el valor a DS
MOV AL, DATO1 ;carga el primer operando
MOV BL, DATO2 ;carga el segundo operando
ADD AL, BL ;suma los operandos
MOV SUMA, AL ;almacena resultado
MOV AH, 4CH ;prepara retorno
INT 21H ;a DOS
INICIO ENDP
CODIGO ENDS
;----------------------
END INICIO ;ste el punto de salida del programa
Archivos EXE vs Archivos COM
Por qu un archivo COM?

Hay ocasiones donde, debido a limitaciones de


memoria, se requiere tener un cdigo compacto.

El hecho que un archivo EXE pueda tener cualquier


tamao es una de las razones para que estos archivos
sean usados ampliamente
Archivos EXE vs Archivos COM
Archivo EXE Archivo COM
Tamao ilimitado Mximo tamao 64K bytes.
El segmento de pila est No hay definicin del
definido segmento de pila
El segmento de datos est EL segmento de datos est
definido definido en el segmento de
cdigo
El cdigo y los datos El cdigo y el segmento
pueden ser definidos en deben empezar en la
cualquier direccin direccin 0100H
Archivo ms grande Archivos ms pequeo
(requiere ms memoria) (requiere menos memoria)
Bibliografa
Organizacin y Arquitectura de Computadores - W.
Stallings - 7ma. Edicin, Prentice Hall. 2005. Pearson;
9 edition (March 11, 2012)
Lenguaje ensamblador para computadoras basadas
en Intel - Kip R. Irvine 7ma Edicin 2014, Prentice-
Hall
Barry B. Brey, Los Microprocesadores Intel.
Nikitas, Alexandris Design of Microprocessor
Ing. Leoncio Armas Castro
c12115@grupoutp.edu.pe

También podría gustarte