使用NASM编译器的语法
org 0x7c00 ;本段程序是MBR程序,按照硬件设定,将会被自动装载到物理地址0x7C00处,因此使用org指令将本程序从0x7c00处开始编址
BITS 16 ;使用16位汇编
start:
cli ;关中断,初始化段寄存器
mov ax, cs
mov ds, ax
mov es, ax
mov ax, 0x00
mov ss, ax
mov sp, 0x7c00
sti
mov si, msg ;将字符串HelloWorld第一个字符的地址写入si寄存器
call print
jmp $
print:
lodsb
cmp al, 0 ;循环输出字符,至于到终止符0 为止
je .done
call .print_char ;调用0x10号中断往屏幕输出字符
jmp print
.print_char:
mov bx, 0
mov ah,0eh
int 0x10
ret
.done:
ret
msg: db 'HelloWorld!' , 0
times 510-($-$$) db 0
dw 0xaa55