NASM を使用して、アセンブリで最初の OS ブート セクタを作成しています。「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