Микропроцессор Intel 8080 имеет в своей системе команд четыре команды чтения из стека (таблица 3).
Таблица 3 – Команды чтения из стека
№
Мнемокод
команд
Код
команды
Выполняемые операции
POP BC
C1H
B (M<(sp)+1>); С (М<(sp)>); SP (SP)+2
POP DE
D1H
D (M<(sp)+1>); E (М<(sp)>); SP (SP)+2
POP HL
E1H
H (M<(sp)+1>); L (М<(sp)>); SP (SP)+2
POP PSW
F1H
A (M<(sp)+1>); F (М<(sp)>); SP (SP)+2
Все команды таблицы 3 однотипны и осуществляют пересылку двухбайтного слова из ОЗУ в регистровые пары МП. Механизмы чтения из стека таковы:
– старший байт слова в ОЗУ, расположенный по старшему адресу <(SP) + 1 >, передается в регистры B, D, H, A (в соответствии с командами таблицы 3);
– младший байт слова в ОЗУ, расположенный по младшему адресу <(SP)>, передается в регистры C, E, L, F (в соответствии с командами таблицы 3);
– по окончании выполнения команды содержимое указателя стека увеличивается на 2 по отношению к исходному состоянию.
Графическая интерпретация функционирования команд POP представлена на рисунке 3 и рисунке 4 (на примере команды POP PSW).
Рисунок 3. – Состояние МП и ОЗУ до выполнения команды POP PSW
Рисунок 4. – Состояние МП и ОЗУ после выполнения команды POP PSW
Как видно из рисунка 3 и рисунка 4 работа со стеком при чтении напоминает извлечение пар листов из пачки. При этом листы отбираются с вершины пачки, а указатель стека хранит номер верхнего листа, оставшегося в пачке.
Совместный анализ рисунка 1, 2 и рисунка 3, 4 показывает, что работа на стеке осуществляется по принципу "первым вошел – последним вышел", т.е. данные, которые при последовательном обращении к стеку записывались в него первыми, будут прочитаны последними.