B8 03 00 CD 10 B4 0E BE 17 7C 8A 04 3C 00 74 05 CD 10 46 EB F5 EB FE 48 65 6C 6C 6F 20 57 6F 72 6C 64 00
このプログラムで出てくる命令の説明。x86 16bitリアルモードで動作。0x7C00にロードされてるものとする
B8 03 00 mov ax, word 0x03 axに0x03を代入する
CD 10 int 0x10 ah == 0x00で画面初期化
B4 0E mov ah, 0x0E ahに0x0Eを代入
BE 17 7C mov si, 0x7C17 siに0x7C17を代入(今回は文字列の先頭アドレス)
8A 04 mov al, [si] alにメモリのsi番地の値を代入(今回は文字列の1文字)
3C 00 cmp al, 0x00 alと0x00を比較する(引き算を行う)
74 0x05 je 0x05 直前の比較結果が0の場合ジャンプする(今回はループから抜ける)
CD 0x10 int 0x10 ah == 0x0Eのとき文字alを出力
46 inc si siの値を1増やす(今回は文字列へのアドレスを1増やす)
EB F5 jmp 0xF5 ジャンプする
EB FE jmp 0xFE 無限ループ
48 65 6C 6C 6F 20 57 6F 72 6C 64 00 文字列 Hello World