Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Команды для работы со стеком



PUSH r/m Поместить в стек слово или двойное слово.
PUSH const Поместить в стек непосредственный 8-,16-,32-разрядный операнд
PUSHA Поместить в стек содержимое регистров EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP
POP r/m Извлечь из стека слово или двойное слово
POPA Извлечь из стека данные в регистры EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP
PUSHF Поместить в стек содержимое регистра флагов
POPF Извлечь из стека данные в регистр флагов

В связи с тем, что передача параметров функциям API осуществляется через стек, необходимо обратить внимание на команды работы со стеком, количество которых существенно изменилось относительно системы команд процессора 8086. Для записи в стек служат команды PUSH. Их можно использовать с операндами, находящимися в памяти, в регистрах, а также с непосредственными операндами. Переменные в памяти могут являться словами, двойными словами, регистры могут быть как 16-разрядными, так и 32-разрядными, непосредственные операнды – 8-разрядными, 16-разрядными и 32-разрядными. В стеке данные занимают вне зависимости от внешнего представления двойное слово. В тексте программы эти команды можно представить следующим образом:

PUSH m16

PUSH m32

PUSH r16

PUSH r32

PUSH imm8

PUSH imm16

PUSH imm32

PUSH CS

PUSH SS

PUSH DS

PUSH ES

PUSH FS

PUSH GS

Команды извлечения данных из стека в тексте программы имеют вид:

POP m16

POP m32

POP r16

POP r32

POP DS

POP ES

POP SS

POP FS

POP GS

m16, m32 – адрес слова и двойного слова соответственно, r16, r32 – имена шестнадцатиразрядных и тридцатидвухразрядных регистров, imm8, imm16, imm32 – 8-разрядные, 16-разрядные, 32-разрядные числа.





Дата публикования: 2015-10-09; Прочитано: 259 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...