ВУЗ:
Составители:
11
тельно сегментного регистра DS, тогда как DI всегда адресуется к памяти от-
носительно сегментного регистра ES. Когда регистры SI и DI используются в
качестве указателей на ячейки памяти в других инструкциях (не строковых), то
они всегда адресуются к памяти относительно регистра DS. Например:
:
cld
mov dx,0
mov es,dx
mov di,2048
stosb
:
Строковая инструкция STOSB используется здесь и для сохранения
значения в регистре AL (по адресу памяти, на который указывает регистр DI),
и для добавления к содержимому регистра DI 1.
Регистр BP также может использоваться в качестве указателя на ячейку
памяти, но здесь есть некоторые отличия. Регистры BX, SI и DI обычно ссы-
лаются на память относительно сегментного регистра DS (или, в случае ис-
пользования в строковых инструкциях регистра DI, относительно сегментного
регистра ES), а регистр BP адресуется к памяти относительно регистра SS (сег-
ментный регистр стека).
Стек находится в сегменте, на который указывает регистр SS. Напри-
мер:
:
push bp
mov bp,sp
mov ax,[bp+4]
:
Здесь выполняется обращение к сегменту стека для загрузки в AX пер-
вого параметра, передаваемого при вызове Турбо Си подпрограммы на Ас-
семблере. Если говорить кратко, то регистр BP создан для обеспечения работы
с параметрами, локальными переменными другой адресации к памяти с ис-
пользованием стека.
Регистр SP называется также указателем стека. Это "наименее общий"
из регистров общего назначения, поскольку он практически всегда использует-
ся для специальной цели - обеспечения стека. Стек - это область памяти, в
которой можно сохранять значения и из которой они могут затем извлекаться
по дисциплине "последний – пришел – первый - ушел" (LIFO). То есть по-
следнее сохраненное в стеке значение будет первым значением, которое вы
получите при чтении из стека.
Регистр SP в каждый момент времени указывает на вершину стека. Дей-
ствие, состоящее в занесении значений в стек, называют также "заталкивани-
ем" (pushing) в стек. В самом деле, инструкция PUSH используется для зане-
сения значений в стек. Аналогично, действие, состоящее в извлечении (выбор-
ке) значений из стека, называют также "выталкиванием" (popping) из стека
(для этого используется инструкция POP).
тельно сегментного регистра DS, тогда как DI всегда адресуется к памяти от- носительно сегментного регистра ES. Когда регистры SI и DI используются в качестве указателей на ячейки памяти в других инструкциях (не строковых), то они всегда адресуются к памяти относительно регистра DS. Например: : cld mov dx,0 mov es,dx mov di,2048 stosb : Строковая инструкция STOSB используется здесь и для сохранения значения в регистре AL (по адресу памяти, на который указывает регистр DI), и для добавления к содержимому регистра DI 1. Регистр BP также может использоваться в качестве указателя на ячейку памяти, но здесь есть некоторые отличия. Регистры BX, SI и DI обычно ссы- лаются на память относительно сегментного регистра DS (или, в случае ис- пользования в строковых инструкциях регистра DI, относительно сегментного регистра ES), а регистр BP адресуется к памяти относительно регистра SS (сег- ментный регистр стека). Стек находится в сегменте, на который указывает регистр SS. Напри- мер: : push bp mov bp,sp mov ax,[bp+4] : Здесь выполняется обращение к сегменту стека для загрузки в AX пер- вого параметра, передаваемого при вызове Турбо Си подпрограммы на Ас- семблере. Если говорить кратко, то регистр BP создан для обеспечения работы с параметрами, локальными переменными другой адресации к памяти с ис- пользованием стека. Регистр SP называется также указателем стека. Это "наименее общий" из регистров общего назначения, поскольку он практически всегда использует- ся для специальной цели - обеспечения стека. Стек - это область памяти, в которой можно сохранять значения и из которой они могут затем извлекаться по дисциплине "последний – пришел – первый - ушел" (LIFO). То есть по- следнее сохраненное в стеке значение будет первым значением, которое вы получите при чтении из стека. Регистр SP в каждый момент времени указывает на вершину стека. Дей- ствие, состоящее в занесении значений в стек, называют также "заталкивани- ем" (pushing) в стек. В самом деле, инструкция PUSH используется для зане- сения значений в стек. Аналогично, действие, состоящее в извлечении (выбор- ке) значений из стека, называют также "выталкиванием" (popping) из стека (для этого используется инструкция POP). 11
Страницы
- « первая
- ‹ предыдущая
- …
- 9
- 10
- 11
- 12
- 13
- …
- следующая ›
- последняя »