2016-11-11 6 views
-1

8086の条件付きおよび無条件のジャンプは、現在の命令からの変位(8ビットまたは16ビットか)を署名したか、コードセグメントレジスタからラベルまでのオフセットを指定していますか?ジャンプ文またはオフセット?

例えば、私が書くとき:

label1: 
.. 
.. 
jmp label1 (unconditional) 

このLABEL1署名変位によって交換またはコード・セグメントからオフセットさますか?

cmp ex, 0 
je label2 (conditional) 

このLABEL2は、符号付き変位によって交換またはコード・セグメントからオフセットさますか?

loop1: 
.. 
.. 
loop loop1 

このLOOP1署名された変位によって置き換えられるだろう(これは8ビットまたは16ビットである?)又はコード・セグメントからのオフセット:私は以下のようloop命令を使用する場合も、

+0

これらの質問に明確に答えている命令セットリファレンスを参照してください。 –

答えて

0

これらのケースでは、使用されるラベルは、現在の命令の後ろから符号付きオフセットに置き換えられます。したがってコードセグメントの開始とは関係ありません。

無条件ジャンプjmp label1は、2つの種類があります:8ビットの符号付き使用

  • は、16ビット符号付き使用
  • オフセット

を条件ジャンプje label2及びループ命令をオフセットloop loop1は8ビット符号付きオフセットのみを使用します。 (これは8086にも当てはまります。後のプロセッサは条件付きジャンプに16ビットの符号付きオフセットを与えました)

関連する問題