Как и регистры BX, SI и DI, регистр BP также может использоваться в качестве указателя на ячейку памяти, но здесь есть некоторые отличия. Регистры BX, SI и DI обычно ссылаются на память относительно сегментного регистра DS (или, в случае использования в строковых инструкциях регистра DI, относительно сегментного регистра ES), а регистр BP адресуется к памяти относительно регистра SS (сегментный регистр стека).
Здесь мы снова забегаем несколько вперед, поскольку сегменты мы еще не рассматривали, но принцип именно таков. Один из полезных способов передачи параметров в подпрограмму состоит в занесении параметров в стек. Так делается в языках Паскаль и Си (см. главу «Интерфейс Турбо Ассемблера с Турбо Си», где поясняется, как и почему в языке Си для передачи параметров используется стек).
Стек находится в сегменте, на который указывает регистр SS.
Например:
push bp
mov bp,sp
mov ax,[bp+4]
Здесь выполняется обращение к сегменту стека для загрузки в AX первого параметра, передаваемого при вызове Турбо Си подпрограммы на Ассемблере.
Если говорить кратко, то регистр BP создан для обеспечения работы с параметрами, локальными переменными другой адресации к памяти с использованием стека.
