You are on page 1of 5

2.

1 Ensamblador (y ligador) a utilizar


Ensamblador. El lenguaje ensamblador es un lenguaje de bajo nivel que se comunica
directamente con el hardware de la mquina. El termino ensamblador se refiere a un tipo
de programa informtico que se encarga de traducir un fichero fuente escrito en un
lenguaje ensamblador, a un fichero objeto que contiene cdigo mquina, ejecutable
directamente por el microprocesador.
El programa lee el fichero escrito en lenguaje ensamblador y sustituye cada uno de los
cdigos nemotcnicos que aparecen por su cdigo de operacin correspondiente en
sistema binario para la plataforma que se eligi como destino en las opciones especificas
del ensamblador.
Enlazador: es parte del proceso de ejecucin, convierte el cdigo mquina y enlaza los
distintos mdulos del programa
Caractersticas
El cdigo escrito en lenguaje ensamblador posee una cierta dificultad de ser
entendido ya que su estructura se acerca al lenguaje mquina, es decir, es un
lenguaje de bajo nivel.
El lenguaje ensamblador e s difcilmente portable, es decir, un cdigo escrito para
un microprocesador, puede necesitar ser modificado, para poder ser usado en otra
mquina distinta
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.
Podemos distinguir entre dos tipos de ensambladores:
Ensambladores modulares: 32 bits o de alto nivel, son ensambladores que aparecieron
como respuesta a una nueva arquitectura de procesadores de 32 bits, muchos de ellos
teniendo compatibilidad hacia atrs pudiendo trabajar con programas con estructuras d 16
bits.
Ensambladores bsicos: Son de muy bajo nivel, y su tarea consiste bsicamente en
ofrecer nombres simblicos a las distintas instrucciones y parmetros.
Un ligador es un programa que enlaza todos los programas o mdulos obteniendo lo que
denominamos programa ejecutable, es un programa que enlaza distintos mdulos o
programas que poseen subprogramas, adems incorporan las denominadas rutinas de
libreras en caso de solicitarlas el propio programa.
Sus principales funciones son:
Enlazar cdigo intermedio compilado independientemente en un solo mdulo de carga
resolviendo las diferencias entre Tokens, es reducir procedimientos traducidos por

separado y enlazarlos para que se ejecuten como una unidad llamada programa binario
ejecutable.

2.2 Ciclos numricos


Un ciclo, conocido tambin como iteracin, es la repeticin de un proceso un cierto nmero de veces
hasta que alguna condicin se cumpla. En estos ciclos se utilizan los brincos condicionales basados en el
estado de la bandera.
Los ciclos numricos que se utilizan son los siguientes: instruccin mp, instruccin loop, instruccin cmp,
instruccin cmps e instruccin de conteo.
INSTRUCCIN JMP
Es una instruccin basada comnmente para la transferencia de control, un salto es incondicional "ya que
la operacin transfiere el control bajo cualquier circunstancia. Tambin vaca el resultado de la instruccin
previamente procesada: por lo que un programa con muchas operaciones de saltos puede perder
velocidad de procesamiento, el formato general para la instruccin JMP Es:
[Etiqueta] |JMP| (Direccin corta, cercana o lejana)

Instruccin LOOP
La instruccin LOOP requiere un valor inicial en el registro CX, en cada iteracin, LOOP de forma
automtica disminuye 1 de CX.
Si el valor en el CX es cero, el control pasa a la instruccin que sigue; si el valor en el CX no es cero, el
control pasa a la direccin del operando.
La distancia debe ser un salto corto, desde -128 hasta +127 bites. Para una operacin que exceda este
lmite, el ensamblador enva un mensaje como un salto relativo fuera de rango. El formato general de la
instruccin LOOP
Instruccin CMP
La instruccin CMP por lo comn es utilizada para comparar dos campos de datos, uno de los cuales
estn contenidos en un registro. El formato general para el CMP es:
[Etiqueta] CMP {registro / memoria}, {registro / memoria / inmediato}

Instruccin CMPS
CMPS compara el contenido de una localidad de memoria (direccionada por el DS; SI), dependiendo de
la bandera de direccin, CMPS incrementa o disminuye tambin los registros SI y DI en 1 para bytes, en
para palabras " en 4 para palabras dobles. La operacin establece las banderas AF, CF, OF, PF,
SF, y ZF.

Instruccin de conteo
Se utilizan para decrementar o incrementar el contenido de los contadores:
DEC: esta operacin resta 1 al operando destino y almacena el nuevo valoren el mismo
operando.
INC: la instruccin suma 1 al operando del destino y guarda el resultado en el mismo
operando destino.
Son utilizadas para transferir el flujo del proceso al operando indicado.
JLE: salta si es menor o igual o salta si no es ms grande. El salto se realiza si ZF =1 o si
SF es diferente a OF.
JC: salta si hay acarreo. El salto se realiza si CF= 1
JE: salta si es igual o salta si es cero, el salto se realiza si ZF esta activada.

Tipos de Ciclos
LOOP (bucle).
Sintaxis:
LOOP desplazamiento
Indicadores:
OF
-

DF
-

IF
-

TF
-

SF
-

ZF
-

AF
-

PF
-

CF
-

Decrementa el registro contador CX; si CX es cero, ejecuta la siguiente instruccin, en


caso contrario transfiere el control a la direccin resultante de sumar a IP +
desplazamiento. El desplazamiento debe estar comprendido entre -128 y +127.
Ejemplo:

MOV CX,10
BUCLE:.......
.......
LOOP BUCLE
Con las mismas caractersticas que la instruccin anterior:
LOOPE/LOOPZBucle si igual, si cero. Z=1 y CX<>0
LOOPNE/LOOPNZ Bucle si no igual, si no cero. Z=0 y CX<>0
TITLE P08LOOP (COM) Ilustracin de LOOP
.MODEL SMALL
.CODE
ORG
100H
MAIN
PROC
NEAR
MOV
AX,01
;Iniciacin de AX,
MOV
BX,01
;BX y
MOV
CX,01
;CX a 01
MOV
CX,10
;Iniciar

A20:
;Nmero de iteraciones
ADD
AX, 01
;Sumar 01 a AX
ADD
BX, AX
;Sumar AX a BX
SHL
DX, 1
;Multiplicar por dos a DX
LOOP
A20
;Iterar si es diferente de cero
MOV
AX, 4C00H
;Salida a DOS
MAIN ENDP
END
MAIN

You might also like