某イベントのために作っている薄い本で扱うプログラムを書いている。x86を説明しきるのは俺には不可能であるため、かなり内容を省いている。そのため出力される機械語が簡単になるようにアセンブリ言語で工夫しなければならない。それで最初に作ったプログラムがこれ
MOV AL, 0x01 ADD AL, 0x02 fin: JMP fin
これをadd.asmと名前をつけて保存して
nasm add.asm -l add.list
で以下のリストを出力させる。これの左側の「B001」や「0402」を解説していく(というかJavaで実行する)。勿論ADDはフラグレジスタを更新するが、一部のフラグを解説し後はマニュアル読め状態になるだろう…
1 00000000 B001 MOV AL, 0x01 2 00000002 0402 ADD AL, 0x02 3 4 fin: 5 00000004 EBFE JMP fin