jump命令による無限ループ
; jmp.ams bits 16 org 0x100 mov ax, 0x0200 mov dx, 0x0040 ; char='@' int 0x21 jmp 0x100
アセンブルして実行すると"@@@@@@@@@@....@@@"の嵐.ctrl+cで強制終了可.
不思議なのは,バイナリコードを見ても先頭にあると思われた"bits 16"や"org 0x100"と思われるコードが無いということ.
ADDRESS 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 0123456789ABCDEF ------------------------------------------------------------------------------ 00000000 B8 00 02 BA 40 00 CD 21 E9 F5 FF ク..コ@.ヘ!鵄.
最後の3bytes分の"E9 F5 FF"が謎です.まあJump命令に相当するんだとは思う.でも"org 0x100"が無いからね.
"org 0x100"を消して再アセンブルしてみたら
ADDRESS 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 0123456789ABCDEF ------------------------------------------------------------------------------ 00000000 B8 00 02 BA 40 00 CD 21 E9 F5 00 ク..コ@.ヘ!鵄.
"E9 F5 FF"が"E9 F5 00"になった.一番最後のとこに関係してるらしい,までしかわからん.