○OSなしで実行できるプログラム

PCの起動時にはBIOSの働きにより、起動ディスクの先頭512byte分がメモリに転送されて
実行されます。
すなわち、自作プログラムをアセンブラで書いて、FDの先頭に書き込み、そのディスクから
起動させればプログラムが実行されます。

アセンブラにはnasmを使用し、ディスクの先頭に書き込むにはddコマンドを使用します。
nasmもddもLinuxやCygwinに入っていると思われます。

▼nasmを使ってコンパイルするコマンド
loader.asmをコンパイルしてloader.exeを作成します

nasm -o loader.exe loader.asm

▼ddコマンドでディスクの先頭512byteにデータ(loader.exe)を書き込む

dd if=loader.exe of=/dev/fd0 bs=512 count=1 seek=0 conv=sync

(注)ddコマンドで先頭セクタにデータを書き込むと
ファイルシステムが破壊されますので不要なディスクを使用してください
また、失敗すると、最悪の場合PCが破壊されますので、自己責任で行ってください





■ブートして文字の表示と文字入力を受け付けるプログラム
test.asm

■FAT12 FDDディスクからブートしてのinit.comという名前のファイルを実行するプログラム
一度、FAT12でフォーマットしたディスクのブートセクタにプログラムを書き込んでください
loader.asm

■FAT12 FDDディスクからブートしてルートディレクトリのファイル名を全て表示するプログラム
FATFileList.asm

■ファンクションコールを作成し、実行するプログラム
文字を表示するだけの割り込みハンドラを作成し、int 21h として割り込みベクタに登録します
その後、int 21h が連続してコールされ文字が画面上に連続して表示されます
funccall.asm





■x86 32bit CPUのレジスタ

■nasm メモ ■nasm でコンパイルしてFDのブートセクターに書き込むためのコマンド


▲トップページ > プログラミングの実験