我正在使用 NASM 编写我的第一个操作系统引导扇区。我让它工作了,它只显示“Hello OS world!” 用红色字母。很简单。我已将 boot.asm 转换为 boot.bin,然后将其转换为 boot.img。我正在使用 VMWare 播放器,我将 boot.img 安装为软盘驱动器并从那里启动,它工作得很好。但是有几行这个汇编代码的目的我不明白。
org 07c00h
mov ax, cs
mov ds, ax
mov es, ax
call DispStr
jmp $
DispStr:
mov ax, BootMessage
mov bp, ax
mov cx, 16
mov ax, 01301h ;
mov bx, 000ch ;
mov dl, 0 ;
int 10h ;
ret
BootMessage: db "Hello, OS world!"
times 510-($-$$) db 0
dw 0xaa55 ;
以分号结尾的行是我不明白的行。我已经做了很多谷歌搜索,并且能够找出其他的东西。我在编写汇编方面相当胜任。因此,例如,我知道mov ax,01301h
将 移动01301h
到AX
寄存器中。但我不明白为什么或如何01301h
重要。我猜它们有点像格式化字符串的参数,但这只是一个猜测。任何和所有的帮助将不胜感激。