; Hola.asm: Primer Programa Ensamblador BITS 16 ORG 0x0100 SECTION .text mov ah,09h ; Servicio: imprime mov dx,hola ; Offset de la cadena int 21h ; Ejecuta: Imprime hola int 20h ; Fin SECTION .data hola db 'Hola a todos!$' ; Variable
Saludos y no olviden poner sus comentarios, dudas o sugerencias con respecto al codigo.
Estoy al pendiente.
12 comentarios:
!!HOLA SOY MARIA 5-1 SISTEMAS !!
Mi primer programa en Ensamblador yo le entendi de la siguiente manera:
El código este divido en dos secciones:
PRIMERA SECCION ES:
Seccion .text comienzo de la sección de instrucciones
mov ah,09h
se utiliza la instruccion 09h para imprimir la cadena de caracteres que tiene ah,ya que la instruccion ah lee los caracteres del teclado.
mov dx,hola
Copia el contenido del tamaño de la palabra y lo almacena en dx.
int 21h
Tambien utiliza la interrupcion
21h es la que manda al monitor la cadena localizada en la direccion
a la que apunta el registro DX.En este caso manda la cadena que contiene el identificador hola.
int 20h esta interrupcion se utiliza para la terminacion del programa.
SEGUNDA SECCION ES:
seccion .data comienzo de la sección de datos
En esta parte en donde se escribe la cadena que quiere que aparezca en la pantalla.
Se utiliza la directiva db para asignarle a un identificador
un valor(en este caso el identificador es hola),ya sea constante o una cadena
de caracteres,cuando es una cadena de caracteres se pone entre comillas sencillas y debera
terminar con el simbolo ($).Ejemplo 'Hola a todos!$'.
Lo que comprendi fue:
ah,09h instruccion que imprime la cad. de caracteres.
mov dx,hola realiza una copia de la cadena hola en dx.
int 21h instruccion que ejecuta la impresion
int 20h instruccion que finaliza con la seccion de instrucciones (SECTION text).
hola db variable donde se guarda el saludo 'Hola a todos'.
Tambien me gustaria saber mas acerca de la extension .ASM, de como se trabaja con ella y que programa utilizar para este tipo de extension.
hola!!! yo no le entendi al codigo, no supe en donde terminaban los comentarios ni en donde empezaban las lineas de codigo, solo se que ese codigo se puede capturar en un bloc de notas y compilarlo con el masm.
el programa "hola mundo" es un programa de 16 bits que esta dividido en 2 secciones la .text y la seccion .data
en la primera se introducen las instrucciones para imprimir el tetxo tales como: ah,09h mov dx,hola, 21h y en la seguna seccion se introduce el texto a imprimir en pantalla, el programa se guarda como .asm para poder ser compilado.
alvaro hm
Pregunto:
1.¿Por qué tiene ORG 0x0100?
2.¿Por que son 2 secciones .text y .data?, mas o menos le entiendo que hace pero por que estan asi
Bueno compañeros yo corrí el programa de "hola mundo" que nos dejo el lic. lucio y tuve unos errores al momento de comppilar en programa en el Masm 32. El error decia "que el sistema no reconocia las palabras cabecera" y no se si se debe a la version de Masm o de un problema diferente. Quiero que alguien me explique por favor.
RODRIGO SANTIAGO
sobre lo que entendi del programa de "hola mundo" es:
el codigo esta dividido en secciones .text que biene siendo como la cabercera y luego siguen las instrucciones mov con sus respectivos registros, donde se indica que operaciones se van a realizar.
el codigo utiliza una instruccion 09h que es el que va a imprimir las palabras de la operacion "Hola mundo", como ressultado de la operaciones realizadas anteriormente.
RODRIGO SANTIAGO
El programa "hola mundo" es un programa de 16 bits que esta dividido en 2 secciones .text y la seccion .data
mas o menos le entendi pero no se porque son 2 secciones .text y .data
Pablo
Entendi que ORG es una abreviación de "ORIGIN", u "orígen" en español.
Y que esta instruccion indica que comienza en la dirección de memoria 0x0100 este es un número hexadecimal, por eso la "h" al final).
Ademas entendi fue que el signo de pesos al final de la cadena, es necesario para que el sistema operativo sepa en donde se acaba la cadena que va a desplegar.
Rodolfo Lara Fayad 5-1 Sistemas
LA EXTENCION .DATA COMIENZO DEL SEGMENTO DE DATOS
LA INTERRUPCION int 20h INDICA LAS INSTRUCIONES ESTAN TERMINADAS..
****AGUSTIN HDEZ. E.****
Hola necesito un codigo de funte que ejecute Hola mundo en emu8086 por favor es urgente
yo tengo el ensamblador masm32 y no puedo correrlo, me marca un fatal error, no eh podido descubrir donde esta mi error ya que mis maestros tampoco pudieron orientarme, soy de la carrera de ing. sistemas computacionales. Les agradeceria su respuesta.
Publicar un comentario