Beruflich Dokumente
Kultur Dokumente
Puntos a Tratar
Lenguaje
E
Ensamblador
bl d
Introduccin
Lenguaje de Programacin
Ensamblador
Compilador e Interpretador
Enlazador
Directivas
Palabras
l
reservadas
Prefijo de Segmento de Programa
Programas .COM y .EXE
Estructura de Programa fuente:
Modo formal
Modo simplificado
Lenguaje
E
Ensamblador
bl d
Lenguaje
E
Ensamblador
bl d
Introduccin
40s:
Primeros computadores electrnicos
Programados en principio en
lenguaje de mquina,
posteriormente en lenguaje
ensamblador.
s bl d
Programacin centrada en el tipo de
mquina.
i
Sistemas Digitales III
Lenguaje
E
Ensamblador
bl d
Introduccin
50s:
Se desarrolla
d
ll ell primer
alto
l nivel
i l a lenguaje
l
j de
d
mquina a travs de un
compilador.
compilador
Sistemas Digitales III
Puntos a Tratar
Lenguaje
E
Ensamblador
bl d
Introduccin
Lenguaje de Programacin
Ensamblador
Compilador e Interpretador
Enlazador
Directivas
Palabras
l
reservadas
Prefijo de Segmento de Programa
Programas .COM y .EXE
Estructura de Programa fuente:
Modo formal
Modo simplificado
Lenguaje
E
Ensamblador
bl d
Lenguaje
E
Ensamblador
bl d
Lenguaje
g j de Programacin
g
Un lenguaje es la forma que
utilizan
tili
d
dos entidades
tid d
llamadas emisor y receptor
para comunicarse.
comunicarse
Un
U lenguaje
l
j de
d programacin
i
Lenguaje
E
Ensamblador
bl d
Lenguaje
g j de Programacin
g
Los lenguajes de programacin se clasifican de
acuerdo
d a su objetivo
bj ti en:
9 Propsito General
9 Propsito Especfico.
Lenguaje
E
Ensamblador
bl d
Lenguaje
g j de Programacin
g
Los lenguajes de programacin tambin se pueden
clasificar
l ifi
de
d acuerdo
d a su nivel
i ld
de abstraccin
b t
i en :
9 Bajo Nivel
9 Alto Nivel
El nivell de
d abstraccin
b
se da
d
Lenguaje
E
Ensamblador
bl d
Lenguaje
g j de Programacin
g
En lenguajes de bajo nivel, se codifican instrucciones
simblicas
bl
que generan instrucciones en llenguaje d
de
mquina, permiten el desarrollo ms eficiente de
aplicaciones pero la programacin es ms complicada.
aplicaciones,
complicada
Lenguaje
E
Ensamblador
bl d
Lenguaje
g j de Programacin
g
Cmo es posible que dos entidades
Lenguaje
E
Ensamblador
bl d
Lenguaje
g j de Programacin
g
Cdigo Fuente
Programa Intermedio
Entrada
Traductor
Mquina Virtual
Programa
Intermedio
Salida
Lenguaje
E
Ensamblador
bl d
Lenguaje
g j de Programacin
g
Muchos lenguajes interpretados emplean un traductor
inicial
(preprocesador)
que
remueve
comentarios
palabras
clave
clave,
identificadores
identificadores,
nmeros
smbolos.
Luego expande abreviaciones al estilo de un macro de
assembler
finalmente
identifica
estructuras
sintcticas
i i
d alto
de
l nivel
i l como loops
l
y subrutinas.
b i
L que
Lo
se busca es obtener una forma intermedia, similar al
cdigo fuente, que pueda interpretarse con mayor
facilidad.
Sistemas Digitales III
Puntos a Tratar
Lenguaje
E
Ensamblador
bl d
Introduccin
Lenguaje de Programacin
Ensamblador
Compilador e Interpretador
Enlazador
Directivas
Palabras
l
reservadas
Prefijo de Segmento de Programa
Programas .COM y .EXE
Estructura de Programa fuente:
Modo formal
Modo simplificado
Lenguaje
E
Ensamblador
bl d
Lenguaje
E
Ensamblador
bl d
Ensamblador
LENGUAJE ENSAMBLADOR
Es
E ell traductor
d
del
d l lenguaje
l
j de
d bajo
b j
de una abreviacin.
Sistemas Digitales III
Lenguaje
E
Ensamblador
bl d
Ensamblador
VENTAJAS
pequeos y compactos.
Normalmente se ejecutan
j
ms
Puntos a Tratar
Lenguaje
E
Ensamblador
bl d
Introduccin
Lenguaje de Programacin
Ensamblador
Compilador e Interpretador
Enlazador
Directivas
Palabras
l
reservadas
Prefijo de Segmento de Programa
Programas .COM y .EXE
Estructura de Programa fuente:
Modo formal
Modo simplificado
Lenguaje
E
Ensamblador
bl d
Lenguaje
E
Ensamblador
bl d
Compilador
p
Con el nacimiento de los primeros lenguajes de alto nivel, se hizo
necesario
necesar
o un mecan
mecanismo
smo para la traduccin
traducc n de las instrucciones
nstrucc ones de
estos lenguajes a las que pueden ser entendidas por la mquina.
st ma que
qu lleva
a a cabo
ca o las
as mencionadas
m nc ona as labores
a or s de
del ssistema
traduccin.
Sistemas Digitales III
Lenguaje
E
Ensamblador
bl d
Compilador
p
El compilador es ms
complejo
l j que ell lenguaje
l
j
ensamblador ya que no hay
una correspondencia 1 a 1
entre el cdigo fuente y las
instrucciones de la mquina,
mquina
adems sus programas son
ms lentos q
que los
elaborados en lenguaje
ensamblador.
Lenguaje
E
Ensamblador
bl d
Compilador
p
Lenguaje
E
Ensamblador
bl d
Compilador
p
Controla la
Compilacin
Cdigo Fuente
Entrada
Compilador
Programa Objeto
Programa Objeto
Salida
Controla la
Ejecucin
j
Lenguaje
E
Ensamblador
bl d
Compilador
p
Programa Fuente
Compilador
Lenguaje
Ensamblador
Lenguaje
Ensamblador
Assembler
bl
Lenguaje
de Mquina
Muchos compiladores
p
generan
g
cdigo
g assembler en lugar
g de lenguaje
g j
de maquina ya que:
Facilita el debugging
Es ms fcil de leer por las personas.
Aisla al compilador de cambios en el formato de los archivos del
lenguaje de mquina que son mantenidos por las diversas versiones de
Sistemas Operativos.
Sistemas Digitales III
Lenguaje
E
Ensamblador
bl d
Compilador
p
VENTAJAS
Ofrece mejor desempeo,
desempeo ya que el
proceso de compilacin debe llevarse
a cabo una sola vez y el programa
puede ser ejecutado en muchas
oportunidades.
Otra de las caractersticas de la
compilacin es que durante ella no se
consideran las decisiones que deben
ser realizadas a tiempo de ejecucin.
Lenguaje
E
Ensamblador
bl d
Interpretador
p
Cdigo Fuente
Interpretador
Entrada
Salida
Controla la
Ejecucin
Lenguaje
E
Ensamblador
bl d
Interpretador
p
VENTAJAS
Como ventaja con respecto al
compilador, el interpretador
ofrece mayor flexibilidad y
mensajes de error ms
explicativos.
li ti
Adicionalmente,
Adicionalmente se comienza
a ejecutar una vez hechas las
modificaciones sin esperar por
el proceso de recompilacin.
Puntos a Tratar
Lenguaje
E
Ensamblador
bl d
Introduccin
Lenguaje de Programacin
Ensamblador
Compilador e Interpretador
Enlazador
Directivas
Palabras
l
reservadas
Prefijo de Segmento de Programa
Programas .COM y .EXE
Estructura de Programa fuente:
Modo formal
Modo simplificado
Lenguaje
E
Ensamblador
bl d
Lenguaje
E
Ensamblador
bl d
Enlazador ((Linker))
Programa
Fuente
Lenguaje de Mquina
Incompleto
Librera de rutinas
Traductor
Enlazador
Lenguaje de Mquina
Incompleto
Programa
g
en
Lenguaje de Mquina
El Linker
Link se
s encarga
n
de
d asociar
s i las
l s rutinas
tin s de
d lib
librera
Puntos a Tratar
Lenguaje
E
Ensamblador
bl d
Introduccin
Lenguaje de Programacin
Ensamblador
Compilador e Interpretador
Enlazador
Directivas
Palabras
l
reservadas
Prefijo de Segmento de Programa
Programas .COM y .EXE
Estructura de Programa fuente:
Modo formal
Modo simplificado
Lenguaje
E
Ensamblador
bl d
Lenguaje
E
Ensamblador
bl d
Directivas
El MASM (Microsoft Macro
Assembler) posee un conjunto de
instrucciones que no pertenecen al
lenguaje ensamblador propiamente
sino que son instrucciones que
nicamente son reconocidas por el
ensamblador y que han sido
agregadas para facilitar la tarea de
ensamblado,
bl d tanto para ell
programador como para el programa
que lo lleva a cabo.
Lenguaje
E
Ensamblador
bl d
Directivas
Le indican al ensamblador que
realice una accin especifica;
son enunciados que permiten
controlar la manera en que un
programa ensambla y lista.
Actan solo durante el
ensamblado de un programa y
no genera cdigo
di ejecutable
j
bl
de maquina.
Lenguaje
E
Ensamblador
bl d
Directivas
Son usadas para especificar :
9 La organizacin de memoria
9 Realizar ensamblado condicional
9 Definir macros,
macros
9 Entrada, salida,
9 Control de archivos,
9 Listados,
9 Cross-reference
9 Direcciones
Di
i
e iinformacin
f
i acerca
de la estructura de un programa
9 Las declaraciones de datos.
Lenguaje
E
Ensamblador
bl d
Directivas
Las direcrectivas se dividen en cuatro (4) grupos funcionales:
Directivas de Datos
- Datos
- Simbolos
Si b l
- Control del Ensamblador
- Segmentos
g
y Procedimientos
- Referencias Externas
- Bloques
Directivas Condicionales
Directivas de listado
Directivas de Macros
Lenguaje
E
Ensamblador
bl d
Directivas
Di
Directivas
ti
d
de D
Datos
t
Directiva
Descripcin
DB
Definir un byte.
byte Sirve adems para
definir cadenas de caracteres.
DW
DD
Definir una p
palabra doble (4
( bytes).
y
)
DF
DQ
DT
D fi i di
Definir
diez b
bytes
t (10 b
bytes).
t )
Lenguaje
E
Ensamblador
bl d
Directivas
Directivas de Datos
para los Smbolos
Directiva
EQU
Descripcin
Asigna un smbolo a una expresin fija
Directivas de Datos
Descripcin
Fin del modulo fuente
Origen
Or
gen de cd
cdigo
go de datos
Pone el contador de posiciones en un
numero par
Base de numeracin por defecto
Lenguaje
E
Ensamblador
bl d
Directivas
Directivas de Datos
Descripcin
Comienzo de segmento
Fin de segmento o de estructura
ASSUME
PROC
Comienzo de procedimiento
ENDP
Fin de procedimiento
Directivas de Datos
EXTRN
INCLUDE
Sistemas Digitales III
Descripcin
Lenguaje
E
Ensamblador
bl d
Directivas
Directivas de Datos
para los Bloques
Directiva
GROUP
Agrupar segmentos
NAME
Nombre de un modulo
LABEL
RECORD
E
STRUC
Descripcin
Definir
f
registro
Definir estructura
Lenguaje
E
Ensamblador
bl d
Directivas
Directivas Condicionales
Directiva
IF
Descripcin
Condion SI
ELSE
ENDIF
Opcional SI NO
Fin del IF
Directivas de Macros
Directiva
SUMAR MACRO
XX,YY,ZZ
Descripcin
Definicin de macro
Lenguaje
E
Ensamblador
bl d
Directivas
Directivas de Listado
Directiva
PAGE
TITLE
SUBTTL
COMMENT
LALL
XCREF
CREF
XLIST
LIST
LFCOND
Descripcin
Lenguaje
E
Ensamblador
bl d
Directivas
Aqu se listan directivas que son exclusivas para la declaracin y
manejo de los segmentos
Directivas para declaracin y manejo de segmentos
Directiva
Descripcin
.MODEL
.STACK
.DATA
.CODE
END
programa.
g
Finaliza todo el p
Lenguaje
E
Ensamblador
bl d
Directivas
La siguiente tabla resume los distintos tipos de modelos de memoria:
MODELO
TINY
SMALL
COMPACT
LARGE
HUGE
CARACTERSTICAS
Datos y cdigo cogen en un solo segmento de 64K.
Un segmento de datos y otro de cdigo.
Mltiples
p
segmentos
g
de datos y un nico segmento
g
de cdigo.
g
Este modelo y el anterior son los que normalmente se utilizan.
Mltiples segmentos de datos y de cdigo.
Mltiples segmentos de datos y de cdigo. Los
segmentos pueden pasar 64K,
pero haciendo operaciones especiales de normalizacin de
direcciones.
Puntos a Tratar
Lenguaje
E
Ensamblador
bl d
Introduccin
Lenguaje de Programacin
Ensamblador
Compilador e Interpretador
Enlazador
Directivas
Palabras
l
reservadas
Prefijo de Segmento de Programa
Programas .COM y .EXE
Estructura de Programa fuente:
Modo formal
Modo simplificado
Lenguaje
E
Ensamblador
bl d
Lenguaje
E
Ensamblador
bl d
Palabras Reservadas
Ciertas palabras en lenguaje ensamblador estn
reservadas para sus propsitos propios, y son usadas
slo bajo condiciones especiales. Por categoras, las
palabras reservadas incluyen:
a)) Instrucciones
I t
i
PALABRA
b) Nombres de registros
c) Directivas
d) Operadores
e) Smbolos predefinidos
Sistemas Digitales III
Puntos a Tratar
Lenguaje
E
Ensamblador
bl d
Introduccin
Lenguaje de Programacin
Ensamblador
Compilador e Interpretador
Enlazador
Directivas
Palabras
l
reservadas
Prefijo de Segmento de Programa
Programas .COM y .EXE
Estructura de Programa fuente:
Modo formal
Modo simplificado
Lenguaje
E
Ensamblador
bl d
Lenguaje
E
Ensamblador
bl d
PSP
(Prefijo
j de Segmento
g
de Programa)
g
.EXE
EXE de 256 bytes que se utiliza
para almacenar la cola de
ordenes, resguardar ciertos
valores, es decir, almacena el
estado de a programa.
Lenguaje
E
Ensamblador
bl d
PSP
(Prefijo
j de Segmento
g
de Programa)
g
El PSP tiene
la estructura
siguiente:
PSP
Lenguaje
E
Ensamblador
bl d
(Prefijo
j de Segmento
g
de Programa)
g
Offset 0000H El primer campo del PSP contiene una instruccin cdigo
mquina (20CD). Se trata de la instruccin (Int 20h). Esta instruccin genera
la Interrupcin 20h
20h, utilizada para terminar la ejecucin del programa
programa. Esta
instruccin ha quedado obsoleta, sustituyndose su uso por la funcin 4Ch de
la INT 21h. Por tanto no le daremos mayor importancia a este primer campo
del PSP.
PSP
PSP
Lenguaje
E
Ensamblador
bl d
(Prefijo
j de Segmento
g
de Programa)
g
PSP
Lenguaje
E
Ensamblador
bl d
(Prefijo
j de Segmento
g
de Programa)
g
Offset 0005H Aqu nos encontramos con una curiosa forma de acceder a las
funciones de la INT 21h. Este mtodo de acceso que vamos a ver ha quedado
obsoleto, pero se sigue manteniendo en el PSP por motivos de compatibilidad.
Se trata de una llamada lejana distribuidor de funciones del DOS. Este
distribuidor de funciones es una rutina que ejecuta una de las funciones de la
j
en este caso se indica mediante el registro
g
INT 21H. La funcin a ejecutar
CL, y no AH (como es costumbre).
Mediante este tipo de llamadas slo se puede acceder a las funciones
numeradas de la 00h a la 24h.
24h Es decir
decir, CL slo debe contener un nmero
comprendido entre el 00h y el 24h al realizar este tipo de llamadas a la INT
21H.
PSP
Lenguaje
E
Ensamblador
bl d
(Prefijo
j de Segmento
g
de Programa)
g
PSP
Lenguaje
E
Ensamblador
bl d
(Prefijo
j de Segmento
g
de Programa)
g
PSP
Lenguaje
E
Ensamblador
bl d
(Prefijo
j de Segmento
g
de Programa)
g
que se
de Errores Crticos recibe el control ((mediante la INT 24H)) cada vez q
produce un Error Crtico.
PSP
Lenguaje
E
Ensamblador
bl d
(Prefijo
j de Segmento
g
de Programa)
g
PSP
Lenguaje
E
Ensamblador
bl d
(Prefijo
j de Segmento
g
de Programa)
g
E ell mtodo
En
t d Handle
H dl se emplea
l la
l funcin
f
i
42h de la INT 21h para desplazarse por el
fichero, y luego las funciones de
lectura/escritura con el tamao de bloque
(Registro en FCB) a leer/escribir.
PSP
Lenguaje
E
Ensamblador
bl d
(Prefijo
j de Segmento
g
de Programa)
g
Puntos a Tratar
Lenguaje
E
Ensamblador
bl d
Introduccin
Lenguaje de Programacin
Ensamblador
Compilador e Interpretador
Enlazador
Directivas
Palabras
l
reservadas
Prefijo de Segmento de Programa
Programas .COM y .EXE
Estructura de Programa fuente:
Modo formal
Modo simplificado
Lenguaje
E
Ensamblador
bl d
Programas
g
.COM
Lenguaje
E
Ensamblador
bl d
Lenguaje
E
Ensamblador
bl d
Programas
g
.EXE
Los programas .EXE nacen de la contraccin
que se carga
q
g inmediatamente arriba de el.
Lenguaje
E
Ensamblador
bl d
Programas
g
.COM y .EXE
Editor
Ensamblador
prog.lst
prog.crt
prog.map
Enlazador
prog.asm
Crea un programa
fuente en ensamblador
(.ASM)
Ensamble
Ensambla el p
programa
g
fuente, crea un
programa objeto
(.OBJ)
prog.obj
Enlace
Enlaza el programa
objeto, crea un
programa
p
g
ejecutable
j
prog.exe
Sistemas Digitales III
Lenguaje
E
Ensamblador
bl d
Programas
g
.COM y .EXE
Los programas .EXE y los .COM
Lenguaje
E
Ensamblador
bl d
Programas
g
.COM y .EXE
TAMAO DEL PROGRAMA
El t
tamao
d
de un programa .EXE
EXE slo
l est
t li
limitado
it d por la
l
Lenguaje
E
Ensamblador
bl d
Programas
g
.COM y .EXE
INICIALIZACION DEL PROGRAMA
All cargar un programa .COM
COM en memoria
i para su ejecucin,
j
i
Lenguaje
E
Ensamblador
bl d
Programas
g
.COM y .EXE
SEGMENTOS
Segmento
S
t d
de Pil
Pila. En
E un programa .EXE
EXE hay
h que definir
d fi i un
Puntos a Tratar
Lenguaje
E
Ensamblador
bl d
Introduccin
Lenguaje de Programacin
Ensamblador
Compilador e Interpretador
Enlazador
Directivas
Palabras
l
reservadas
Prefijo de Segmento de Programa
Programas .COM y .EXE
Estructura de Programa fuente:
Modo formal
Modo simplificado
Lenguaje
E
Ensamblador
bl d
Lenguaje
E
Ensamblador
bl d
Estructura de Programa
g
PROGRAMAS .COM
Todos
T d llos registros
i t
de
d Segmento,
S
t incluido
i l id SS (registro
(
i t d
de
Lenguaje
E
Ensamblador
bl d
Estructura de Programa
g
PROGRAMAS .COM
Lenguaje
E
Ensamblador
bl d
Estructura de Programa
g
PROGRAMAS .COM
Lenguaje
E
Ensamblador
bl d
Estructura de Programa
g
MODO FORMAL DE UN PROGRAMA .COM
TITLE
NOMBRE ASM
NOMBRE.ASM
CODE
main:
JMP begin
;declaracin de variables
b i
begin:
;cdigo
CODE
MOV AH,4CH
AH 4CH
INT 21H
ENDS
END main
; Funcin: Terminar
; Marca fin y define main
Lenguaje
E
Ensamblador
bl d
Estructura de Programa
g
MODO SIMPLIFICADO DE UN PROGRAMA .COM
.MODEL
MODEL SMALL
.CODE
ORG 100H
main:
g
JMP begin
;declaracin de variables
begin:
;cdigo
MOV AH,4CH
INT 21H
END main
; Funcin: Terminar
; Marca fin y define main
Lenguaje
E
Ensamblador
bl d
Estructura de Programa
g
PROGRAMAS .EXE
En
E un programa EXE
EXE, llos d
datos,
t
pila
il y cdigo
di se definen
d fi
en
Lenguaje
E
Ensamblador
bl d
Estructura de Programa
g
PROGRAMAS .EXE
Una
U vez que ell DOS ha
h cargado
d ell programa EXE en memoria
i
segmento
t d
de programa, como ocurra
con llos programas
COM.
Sistemas Digitales III
Lenguaje
E
Ensamblador
bl d
Estructura de Programa
g
El p
par de registros
g
CS:IP apuntan
p
a la
primera instruccin de nuestro programa.
Esta primera instruccin a ejecutar viene
por la p
pseudo_instruccin END ((Fin de
dada p
Programa).
Lenguaje
E
Ensamblador
bl d
Estructura de Programa
g
Una vez que nuestro programa toma el control, har accesible
Lenguaje
E
Ensamblador
bl d
Estructura de Programa
g
MODO FORMAL DE UN PROGRAMA .EXE
TITLE
NOMBRE ASM
NOMBRE.ASM
; Segmento de datos
; Se definen los datos
CODE
; Segmento de Cdigo
INICIO:
CODE
MOV AH,4CH
INT 21H
ENDS
END INICIO
; Funcin: Terminar
; Marca fin y define INICIO
Lenguaje
E
Ensamblador
bl d
Estructura de Programa
g
MODO SIMPLIFICADO DE UN PROGRAMA .EXE
.MODEL
MODEL SMALL
.STACK 100H
DATO1
D
O
.DATA
D
DB
.CODE
MOV AX,DATA ;
MOV DS,AX
MOV AH,4CH
INT 21H
END
; Segmento de datos
;S
Se definen
f n n los
os datos
atos
; Segmento de Cdigo
; Pone direccin en AX
; Pone la direccin en los registros
; Funcin: Terminar
; Marca fin y define INICIO
Lenguaje
E
Ensamblador
bl d
Preguntas, dudas y
comentarios?
Concluy el tema:
LENGUAJE ENSAMBLADOR
Muchas gracias por su atencin!!
TAREA
Leer las guas enviadas para
complementar