Скачиваний:
15
Добавлен:
11.04.2015
Размер:
16.01 Кб
Скачать
  1. Описать сегмент стека, команды работы со стеком.

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

Команда PUSH и POP. Для работы со стеком.

Команда PUSH помещает содержимое регистра или ячейки памяти размером в 16 битовое слово на вершину стека. А POP снимает слово с вершины стека и помещает его в ячейку памяти или регистр. PUSH источник, POP приемник.

Пример: PUSH SI; PUSH DS; PUSH TABLE[BX][DI] (ячейка памяти). Под вершиной стека мы понимаем ячейку в сегменте стека, адрес которой хранится в указателе SP. Если надо вытащить из стека то SP=SP+2 и вытаскиваем.۩

Пример описания стекового сегмента

(можно не описывать, а пользоваться системным стеком)

sseg segment [ para stack 'stack' ] ; заголовок стекового сегмента

db 256 dup(' ') ; область памяти под стек

tos label word ; переменная для определения вершины стека

sseg ends ; конец стекового сегмента

Обычно стековый сегмент не описывается в программе, т.к. пользуются системным стеком. Для тех, кто хочет пользоваться собственным стеком, надо помнить, что для этого надо проинициализировать регистр стекового сегмента. Скобки [ ...], указанные в описании сегментов, говорят о том, что то, что указано внутри скобок, может быть опущено. ۩

Соседние файлы в папке Ответы по пунктам