Musica de rudy
Page 1 of 9
para Intel 808x/80x86 Lenguaje Ensamblado
Principia
II.- EL LENGUAJE ENSAMBLADOR
1.- UN EJEMPLO CLASICO.
En esta parte se describe lo que es el lenguaje ensamblador, no al ensamblador o al proceso de ensamblado. Aquí se tratará todo lo concerniente con el lenguaje ensamblador y el conjuntode directivas del Microsoft Macro Assembler v4.0. Si bien esto puede resultar bastante extenso y complejo, aquí sólo se describirán las instrucciones y directivas básicas.
Para comenzar veamos un pequeño ejemplo que ilustra el formato del programa fuente. Este ejemplo
está completamente desarrollado en lenguaje ensamblador que usa servicios o funciones de MS-DOS (system calls) paraimprimir el mensaje Hola mundo!! en pantalla. ; HOLA.ASM
; Programa clasico de ejemplo. Despliega una leyenda en pantalla. STACK SEGMENT STACK ; Segmento de pila DW 64 DUP (?) ; Define espacio en la pila STACK ENDS DATA SEGMENT ; Segmento de datos SALUDO DB "Hola mundo!!",13,10,"$" ; CadenaDATA ENDS CODE SEGMENT ; Segmento de Codigo ASSUME CS:CODE, DS:DATA, SS:STACK INICIO: ; Punto de entrada al programa MOV AX,DATA ; Pone direccion en AX MOV DS,AX ; Pone la direccion en los registros MOV DX,OFFSETSALUDO ; Obtiene direccion del mensaje MOV AH,09H ; Funcion: Visualizar cadena INT 21H ; Servicio: Funciones alto nivel DOS MOV AH,4CH ; Funcion: Terminar INT 21H CODE ENDS END INICIO ; Marca fin y define INICIO
La descripción del programa es como sigue: 1.- Las declaraciones SEGMENT y ENDS definen los segmentos a usar.
http://homepage.mac.com/eravila/asmix862.html
20/05/2010
Principia - Lenguaje Ensamblador
Page 2 of 9
2.- La variable SALUDO en el segmento DATA, define la cadena a ser desplegada. El signo de dólares al final de la cadena (denominado centinela) es requerido por lafunción de visualización de la cadena de MS -DOS. La cadena incluye los códigos para carriage-return y line-feed. 3.- La etiqueta START en el segmento de código marca el inicio de las instrucciones del programa. 4.- La declaración DW en el segmento de pila define el espacio para ser usado por el stack del programa. 5.- La declaración ASSUME indica que registros de segmento se asociarán conlas etiquetas declaradas en las definiciones de segmentos. 6.- Las primeras dos instrucciones cargan la dirección del segmento de datos en el registro DS. Estas instrucciones no son necesarias para los segmentos de código y stack puesto que la dirección del segmento de código siempre es cargado en el registro CS y la dirección de la declaración del stack segment es automáticamente cargada en elregistro SS. 7.- Las últimas dos instrucciones del segmento CODE usa la función 4CH de MS-DOS para regresar el control al sistema operativo. Existen muchas otras formas de hacer esto, pero ésta es la más recomendada. 8.- La directiva END indica el final del código fuente y especifica a START como punto de arranque.
2.- EL FORMATO DEL ENSAMBLADOR. De acuerdo a las convenciones y notación seguidas en el manual del
Microsoft Macro Assembler, y que usaremos nosotros también, tenemos: Notación Significado Negritas Comandos, símbolos y parámetros a ser usados como se...
Regístrate para leer el documento completo.