Команды PUSH и POP
            Рубрика: Архитектура PC
            (Команды CPU)
        
		
        
            
            
             46570
        
		
                Опубликовано: 07.05.2017
            
		Команды PUSH и POP - это основные команды для работы со стеком. Позволяют заносить значения регистров и ячеек памяти в стек и извлекать их оттуда.
Команда PUSH
| Синтаксис: | PUSH op1 | 
| Операнды: | op1 - r/m16, r/m32, sr, i8, i16, i32 | 
| Назначение: | Помещение операнда в стек | 
| Процессор: | 8086+ | 
| Флаги: | Не изменяются | 
| Комментарий: | Команда PUSH уменьшает значение регистра стека на размер операнда (2 или 4) и копирует содержимое операнда в память по адресу SS:SP. Начиная с 80186 процессора появилась возможность помещать в стек непосредственные значения. При этом, если в стек заносится байт, то он расширяется до слова с сохранением знака. Начиная с 80286 процессоров, команда PUSH SP помещает в стек значение SP до того, как эта же команда его уменьшит, в то время как на 8086 значение SP помещалось в стек уже уменьшенным на два. Если команда выполняется в 32-разрядном режиме, то используется регистр ESP. | 
| Ограничения: | Нет | 
| Примеры: | push dx | 
Команда POP
| Синтаксис: | POP op1 | 
| Операнды: | op1 - r/m16, r/m32, sr | 
| Назначение: | Извлечение операнда из стека | 
| Процессор: | 8086+ | 
| Флаги: | Не изменяются | 
| Комментарий: | Команда POP копирует содержимое ячейки памяти по адресу SS:SP в операнд и увеличивает значение регистра стека на размер операнда (2 или 4). Если операнд использует регистр SP для косвенной адресации, команда POP вычисляет адрес уже после того, как она увеличивает SP. Если команда выполняется в 32-разрядном режиме, то используется регистр ESP. | 
| Ограничения: | С помощью команды POP нельзя загрузить из стека сегментный регистр CS. | 
| Примеры: | pop [bx] | 
Комментарии (0)