我做了简单的代码,应该写入 VGA 内存。
org 07c00h
mov eax,0xb8000
mov bx,msg
call printstr
printstr:
mov al,byte[bx]
mov byte[eax],al
inc eax
mov byte[eax],1
inc eax
inc bx
cmp byte[bx],0
je end
jmp printstr
end:
jmp end
msg: db "Hello world!",0
times 510-($-$$) db 0
dw 0xaa55
但是,当我在 QEMU 中运行它时,它不会写“Hello world”。我使用 NASM 组装了它。 图片
我想用“Hello world!”覆盖第一行的前 12 个字符。
有人知道它为什么给我这个结果吗?