Está en la página 1de 4

ENSAMBLADOR

Tipo de herramienta que traduce un archivo de cdigo fuente escrito en lenguaje


ensamblador, a un archivo objeto que puede ser ejecutado por la computadora.
Se llaman ensambladores los programas encargados de traducir los programas
escritos en ensamblador a cdigo binario .Fjese en que tanto el programa
traductor como el lenguaje se llaman del mismo modo: ensamblador.
Como el lenguaje ensamblador es muy prximo al binario, estos traductores son
programas relativamente sencillos.

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.

CICLOS NUMERICOS
Un bucle es un grupo de instrucciones que se ejecutan cclicamente un nmero
concreto de veces. Para construir bucles disponemos de las nmero concreto de
veces.
CAPTURA BSICA DE CADENAS
.DATA
NOM LABEL BYTE
LONG_D DB 20
LONG_R DB ?
NOMBRE DB 20 DUP($)
.
.
CODE
.
.
MOV AH, 0AH
LEA DX, NOM
INT 21H

COMPARACIN Y PRUEBA

INSTRUCCIN CMP

La instruccin CMP pro lo comn es utilizada para comparar dos campos de
datos, uno de los cuales estn contenidos en un registro. El formato general para
CMP es:

El resultado de una operacin CMP afecta la banderas AF, CF, OF, PF, SF y ZF,
aunque no tiene que probar estas banderas de forma individual. El cdigo
siguiente prueba el registro BX por un valor cero:
X CMP BX, 00 ;Compara Bx con cero
JZ B50 ;Si es cero salta aB50
. ;(Accin si es diferente de cero)
.
B50: ... ;Destino del salto, si BX es cero
Si el BX tiene cero, cmp establece ZF a 1 y puede o no cambiar la configuracin
de otras banderas. La instruccin JZ (salta si es cero) solo prueba la bandera ZF.
Ya que ZF tiene 1 (que significa una condicin cero), JZ transfiere el control (salta)
a la direccin indicada por el operando B50.
Observe que la operacin compara el primer operando con el segundo; por
ejemplo, el valor del primer operando es mayor que, igual o menor que el valor del
segundo operando?
LA INSTRUCCION CMPS
CMPS compara el contenido de una localidad de memoria (direccionada por
DS:SI). Dependiendo de la bandera de direccin, CMPS incrementa o disminuye
tambin los registros SI y DI en 1 para bytes, en 2 para palabras y en 4 para
palabras dobles. La operacin establece las banderas AF, CF, OF, PF, SF y ZF.
Cuando se combinan con un prefijo REP y una longitud en el CX, de manera
sucesiva CMPS puede comparar cadenas de cualquier longitud.
Pero observe que CMPS proporciona una comparacin alfanumrica, esto es, una
comparacin de acuerdo a con los valores ASCII. Considere la comparacin de
dos cadenas que contienen JEAN y JOAN. Una comparacin de izquierda a
derecha, tiene el resultado siguiente:
J:J Iguales
E:O Diferentes (E es menor)
A:A Iguales
N:N Iguales
Una comparacin de los 4 bytes termina con una comparacin de N con N
(iguales). Ahora ya que los dos nombres no son idnticos, la operacin debe
terminar tan pronto como la comparacin entre 2 caracteres sea diferente.
Algunas derivaciones de CMPS son las siguientes:
CMPSB. Compara bytes.
CMPSD. Compara palabras dobles.
CMPSW. Compara palabras.
A continuacin se muestra la codificacin del uso del CMPS y sus derivaciones:
TITLE P12CMPST (COM) Uso de CMPS para operaciones en cadenas
.MODEL SMALL
.CODE
ORG 100H
BEGIN: JMP SHORT MAIN
;-------------------------------------------------------------------------------------
NOM1 DB 'Assemblers' ;Elementos de datos
NOM2 DB 'Assemblers'
NOM3 DB 10 DUP (' ')
;-------------------------------------------------------------------------------------
MAIN PROC NEAR ;Procedimiento principal
CLD ;Izquierda a derecha
MOV CX, 10 ;Iniciar para 10 bytes
LEA DI, NOM2
LEA SI, NOM1
REPE CMPSB ;Compare NOM1:NOM2
JNE G20 ;No es igual, saltarlo
MOV BH,01 ;Igual, fijar BH
G20:
MOV CX, 10 ;Iniciar para 10 bytes
LEA DI, NOM3
LEA SI, NOM2
REPE CMPSB ;Compare NOM2:NOM3
JE G30 ;Igual, salir
MOV BL, 02 ;No es igual, fijar BL
G30:
MOV AX, 4C00H ;Salir a DOS
INT 21H
MAIN ENDP
END BEGIN
Referencias
http://ensambladorisc.blogspot.mx/2010/05/262-manejo-de-cadenas.html
http://ensam1.blogspot.mx/2005/09/66-comparacion.html

También podría gustarte