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