Разница между `bx` и` bp`? - PullRequest
       30

Разница между `bx` и` bp`?

7 голосов
/ 02 сентября 2011

В чем разница между bx и bp в сборке? Пример здесь:

mov bx, 1h
mov bp, 1h

Они ссылаются на одну и ту же память? То же самое с ss и sp?

Ответы [ 2 ]

15 голосов
/ 02 сентября 2011

В x86 регистры bx и bp абсолютно не связаны. Единственное общее в них - это слово base.

  • bx (базовый индекс) - это регистр общего назначения (например, ax, cx и dx), обычно используемый в качестве указателя на данные (используемые для массивов и т. Д.)
  • bp (базовый указатель) обычно используется для указания на какое-то место в стеке (например, для хранения адреса текущих кадров стека)

Опять же, ss и sp также различаются.

  • ss (сегмент стека) - это регистр сегмента (например, cs, ds и es). Он содержит сегмент , используемый стеком.
  • sp (указатель стека) указывает на вершину стека
0 голосов
/ 31 июля 2018

Регистр BP в основном помогает ссылаться на переменные параметра, передаваемые подпрограмме. Адрес в регистре SS объединяется со смещением в BP, чтобы получить местоположение параметра. BP также можно комбинировать с DI и SI в качестве базового регистра для специальной адресации.

BX: используется в индексной и косвенной адресации

...