练习1
MBR下的简单 hello world
SECTION MBR vstart=0x7c00
BEGIN:
xor di,di
mov cx,(PRINT-TEXT)
mov ax,0xB800
mov es,ax
mov si,TEXT
call PRINT
jmp near $
TEXT: db 'HELLO WORLD!'
PRINT:
mov ah,[si]
inc si
mov [es:di],ah
inc di
mov byte [es:di],0x07
inc di
loop PRINT
ret
END:
hlt
resb 446-($-$$)
DPT:
resb 64
MAGIC_CODE:
db 0x55,0xaa
PS:我居然在编写过程中居然还犯了两个低级错误。
1.将数据段放到文件首
2.没有设置vstart直接使用ds
用Bios中断的话就太没技术含量了