Регистр BP


Как и регистры BX, SI и DI, регистр BP также может использоваться в качестве указателя на ячейку памяти, но здесь есть некоторые отличия. Регистры BX, SI и DI обычно ссылаются на память относительно сегментного регистра DS (или, в случае использования в строковых инструкциях регистра DI, относительно сегментного регистра ES), а регистр BP адресуется к памяти относительно регистра SS (сегментный регистр стека).

Здесь мы снова забегаем несколько вперед, поскольку сегменты мы еще не рассматривали, но принцип именно таков. Один из полезных способов передачи параметров в подпрограмму состоит в занесении параметров в стек. Так делается в языках Паскаль и Си (см. главу «Интерфейс Турбо Ассемблера с Турбо Си», где поясняется, как и почему в языке Си для передачи параметров используется стек).

Стек находится в сегменте, на который указывает регистр SS.

Например:

push bp

mov bp,sp

mov ax,[bp+4]

Здесь выполняется обращение к сегменту стека для загрузки в AX первого параметра, передаваемого при вызове Турбо Си подпрограммы на Ассемблере.

Если говорить кратко, то регистр BP создан для обеспечения работы с параметрами, локальными переменными другой адресации к памяти с использованием стека.

Загрузка...