Стек используется для сохранения содержимого регистров, используемых программой, перед вызовом подпрограммы, которая, в свою очередь, будет использовать регистры процессора “в своих личных целях”. Стек располагается в оперативной памяти в сегменте стека, и поэтому адресуется относительно сегментного регистра SS.
Команда PUSH уменьшает значение регистра стека на размер операнда (2 или 4) и копирует содержимое операнда в память по адресу SS:SP. Начиная с 80186 процессора появилась возможность помещать в стек непосредственные значения. При этом, если в стек заносится байт, то он расширяется до слова с сохранением знака.
Отличительной особенностью стека является своеобразный порядок выборки содержащихся в нем данных: в любой момент времени в стеке доступен только верхний элемент, т. е. элемент, загруженный в стек последним. Выгрузка из стека верхнего элемента делает доступным следующий элемент.
работы со стеком
Стеком называют область программы для временного хранения произвольных данных. Разумеется, данные можно сохранять и в сегменте данных, однако в этом случае для ...
Но в процедурах ассемблера необходимо очень тщательно следить за стеком. Вот пример: ... call Our_proc int 20h ... Our_proc proc mov ax,15
Указатель стека (ESP - Stack Pointer) содержит адрес последнего ... Её синтаксис может разниться от одного языка ассемблера к другому, ...
И сохранил в стек. push ax. Потом этот регистр мы изменяем для вызова функции строки: mov ah,40h int 21h. И в самом конце мы с ...
Статья основана на материале xrnd с сайта asmworld (из учебного курса по программированию на ассемблер 16-битного процессора 8086 под DOS).
Команда pop ax заберет из стека последние два байта и разорвет регистр ecx ... Поэтому в ассемблере параметры часто заталкиваются в стек командами push, ...
В этой статье мы с познакомимся со стеком в Assembler, напишем небольшую программу, изучим несколько новых команд, а также узнаем о ...
Следует отметить, что некоторые процессоры не реализуют все инструкции для доступа и управления стеком (push, pop, указатель стека и т.д.), но x86 делает из-за ...