2016-04-24 8 views
0

私は8086命令セットを調べていて、emu8086に簡単なアセンブリコードを書いていました。私はLOOP命令に遭遇するまで、MOV、ADD、および他の命令をすべて理解しました。 LOOPはE2に変換されますが、それは問題ありません。しかし、ラベルを分岐するには、どのようにアセンブラがそれを変換しますか?コードがシンプルであれば、多くの「ラベル」がFCに変換されます。時にはFA、F8など。ラベル名を対応するマシンコードに変換する仕組みについて議論すると、非常に分かりやすいでしょう。8086アセンブラがラベルをopcodeに変換する方法は?

ありがとうございました。

答えて

2

this pageで説明されているように、ラベルはちょうど私たちのためのニーモニック(プログラマー)です。アセンブラは、そのラベルを数値に変換します。ジャンプするために命令ポインタに追加されるオフセットであり、CXはゼロではない。 表示されている例では、オフセットは負の数です(符号ビットが1に設定されています)。それで、あなたはループで期待しているように、いくつかの指示を飛ばしています。

関連する問題