bx
とはどう違いbp
ますか?例:
mov bx, 1h
mov bp, 1h
それらは同じメモリを参照していますか?ss
や と同じsp
ですか?
x86
レジスターではbx
とbp
はまったく無関係です。それらについての唯一の共通点は、単語base
です。
bx
(ベースインデックス)は汎用レジスタ(ax、cx、dxなど)で、通常はデータへのポインタとして使用されます(配列などに使用されます)bp
(ベース ポインター)は通常、スタック内のある場所を指すために使用されます (たとえば、現在のスタック フレームのアドレスを保持するなど)。繰り返しますが、ss
とsp
も異なります。
ss
(スタック セグメント)はセグメント レジスタ (cs、ds、es など) です。スタックが使用するセグメントを保持します。sp
(スタック ポインタ) スタックの一番上を指すBP レジスタは、主にサブルーチンに渡されるパラメーター変数を参照するのに役立ちます。SS レジスタのアドレスを BP のオフセットと組み合わせて、パラメータの位置を取得します。BP は、特別なアドレッシング用のベース レジスタとして DI および SI と組み合わせることもできます。
BX: インデックスおよび間接アドレッシングで使用