Codigo Fuente Hola Mundo

Hola mi queridos Alumnos. Pongo a su disposicion el codigo fuente del programa Hola Mundo. Recuerden que deben guardarlo en un block de Notas como Hola.ASM. No olviden la extension. ASM.

; 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:

Unknown dijo...

!!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!$'.

Unknown dijo...

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.

Unknown dijo...

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.

balo dijo...

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

Pedro Sistemas V dijo...

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

Unknown dijo...

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

Unknown dijo...

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

Unknown dijo...

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

Unknown dijo...

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

Unknown dijo...

LA EXTENCION .DATA COMIENZO DEL SEGMENTO DE DATOS

LA INTERRUPCION int 20h INDICA LAS INSTRUCIONES ESTAN TERMINADAS..

****AGUSTIN HDEZ. E.****

Anónimo dijo...

Hola necesito un codigo de funte que ejecute Hola mundo en emu8086 por favor es urgente

Anónimo dijo...

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.