Вы здесь: HomePUSH

PUSH

push - команда ассемблер. Занесение слова(в современных процессорах двойное слово и боли, в зависимости от процессора ) в Стек. Сохраняет значение слова (адрес или элемент  данных) в стеке для последующего использования.  Регистр SP указывает  на  текущее слово в вершине стека.  Команда PUSH уменьшает значение в регистре SP на 2 и передает слово из указанного операнда в новую вершину стека. Существует три типа команды PUSH в зависимости от операнда: общий регистр, сегментный регистр или слово в памяти. См. также команды POP и PUSHF

Пример использования команды PUSH

mov ax,55 ;заносим ax 55
push ax   ;вносим ax в стек 
xor ax,ax  ;затем обнулили ax
pop ax    ;и вернули его прошлое значение из стека то есть теперь ax=55

Так же как и с регистрами можно работать с переменными, представим что у нас есть переменная temp в одно слово, нам нужно посчитать промежуточный результат а значение которое было до этого чтоб не потерялось:

push [temp]   ;вносим переменную в стек 
;определенные действия
pop [temp]    ;возвращаем значение переменной из стека

Так же все это дело можно комбинировать и с помощью команды push и pop можно заменить команду mov, либо из одной переменно внести значения в другую,  или бывает возникает ситуация когда нужно задать конкретное значение сегментным регистрам. Пример:

push cs    ;вносим в стек регистр кода
pop ds     ;затем это значение помещаем в регистр данных
push [temp];вносим переменную в стек 
pop [temp2];возвращаем значение переменной из стека в переменную temp2
push ax    ;внесли в стек значение одного регистра
pop bx     ;и вынули из стека это значение в другой регистр, то есть мы присвоили регистру bx значение ax
push [temp];эти двумя действиями присваиваем регистру ах 
pop ax     ;значение переменой temp
push ax    ;теперь наоборот переменной temp присваиваем
pop [temp] ;значение регистра ax

Добавить комментарий


Защитный код
Обновить