Hello world! means Hello world! but in Spanish

program mundo.asm:

org 0x7C00

mov si, msg
call print_string

jmp $

print_string:
    lodsb
    or al, al
    jz .done
    mov ah, 0x0E
    int 0x10
    jmp print_string
.done:
    ret

msg db 'Hola Mundo!', 0

times 510 - ($ - $$) db 0
dw 0xAA55

This code is for x86 architecture in real mode (16-bit).

first you need to install nasm, on mac it is:

brew install nasm

then you create the binary:

nasm -f bin mundo.asm -o hola_mundo.bin

then you need to create an image file:

dd if=/dev/zero of=hola_mundo.img bs=512 count=1
dd if=hola_mundo.bin of=hola_mundo.img bs=512 conv=notrunc

This is because qemu reads images

then run qemu on the image and a terminal with qemu will open:

qemu-system-x86_64 -drive file=hola_mundo.img,format=raw