Отправляет email-рассылки с помощью сервиса Sendsay

Уроки по ассемблеру

  Все выпуски  

Уроки по ассемблеру


Информационный Канал Subscribe.Ru


Assembler. Уроки с сайта http://progs.biz

Рассылка №7

Assembler. Урок 12. Команда push.
Assembler. Урок 13. Команда pop.

Полные версии уроков (с картинками) можно найти по адресам:
Урок 12. Команда push.
Урок 13. Команда pop.

Олафсен Ю., Скрайбнер К., Уайт К. Д. и др. Visual C++ 6 и MFC. Энциклопедия программиста
Олафсен Ю., Скрайбнер К., Уайт К. Д. и др. Visual C++ 6 и MFC. Энциклопедия программиста
Заказать на Озоне

Подробнее

Рассылки сайта progs.biz через subscribe.ru
Уроки по C/C++
Уроки по C/C++. Конструкции языка, указатели, объектно-ориентированное программирование, работа с файлами, библиотека STL и другое.

Ассемблер. Урок 12. Команда push

Команда ассемблера push служит для внесения данных в стек. Действует она так - сначала она уменьшает на 2 значение, хранящиеся в регистре SP (Stack Pointer). Как вы знаете, в SP хранится адрес вершины стека. Затем по новому адресу, находящемуся в SP, заносится содержимое, задаваемое операндом этой команды.

Операндом может являтся любой 2-х байтный регистр или ячейка памяти. Вот пример:

push ax

Тут мы в стек записываем содержимое регистра ax.

В качестве операнда команды push мы можем использовать непосредственное значение - т. е. это может быть не только регистр или ячейка памяти. Например, можно написать так:

push 23A0h

Тут мы в стек записываем конкретное значение 23A0h.

Как вы знаете, стек используется в том числе при вызовах функций. В этом случае (т. е. фактически при вызове команды call) команда push вызывается автоматически.

Наверх

Ассемблер. Урок 13. Команда pop

Команда pop является парной к комаде push и служит для извлечения данных из стека. Данные извлекаются из адреса, содержащегося в регистре SP (Stack Pointer) в операнд команды pop, после чего содержимое SP увеличивается на 2.

Вот пример использования:

pop ax

Тут мы содержимое вершины стека записываем (извлекаем) в регистр ax. Количество данных в стеке при этом уменьшается (хотя физически они и не уничтожаются).

С помощию команд push и pop можно загружать один регистр в другой:

push cs
pop ds
Наверх

Copyright Алексеев Игорь, 2002-2003
Copyright сайт progs.biz, 2002-2003
Распространение материалов без разрешения владельцев авторских прав запрещено.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное