русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

PUSH - помещение операнда в стек


Дата добавления: 2015-06-12; просмотров: 762; Нарушение авторских прав


-----------------------------------------------------------------|Код Команда Число Описание ||операции тактовых || циклов || ||FF /6 PUSH m16 4 Помещение в стек || слова памяти ||FF /6 PUSH m32 4 Помещение в стек || двойного слова памяти ||50+ /r PUSH r16 1 Помещение в стек || слова - регистра ||50+ /r PUSH r32 1 Помещение в стек || двойного слова - регистра ||6A PUSH imm8 1 Помещение в стек || непосредственного байта ||68 PUSH imm16 1 Помещение в стек || непосредственного слова ||68 PUSH imm32 1 Помещение в стек || непосредственного двойного слова||0E PUSH CS 3 Помещение в стек CS ||16 PUSH SS 3 Помещение в стек SS ||1E PUSH DS 3 Помещение в стек DS ||06 PUSH ES 3 Помещение в стек ES ||0F A0 PUSH FS 3 Помещение в стек FS ||0F A8 PUSH GS 3 Помещение в стек GS | Работа команды IF StackAddrSize = 16THEN IF OperandSize = 16 THEN SP <- SP - 2; (SS:SP) <- (источник); (* Назначение слова *) ELSE SP <- SP - 4; (SS:SP) <- (источник); (* Назначение двойного слова *) FI; ELSE (* StackAddrSize = 32 *) IF OperandSize = 16 THEN ESP <- ESP - 2; (SS:ESP) <- (источник); (* Назначение слова *) ELSE ESP <- ESP - 4; (SS:ESP) <- (источник); (* Назначение двойного слова *) FI; ОписаниеКоманда PUSH декрементирует указатель стека на 2, если атрибут размераоперанда команды равен 16 битам; в противном случае она декрементируетуказатель стека на 4. Затем команда PUSH помещает операнд в новую вершинустека, на которую указывает указатель стека.Команда PUSH ESP помещает в стек значение регистра ESP, в том виде,который он имел до выполнения команды. В этом состоит отличие от 8086, гдекоманда PUSH SP помещает в стек новое значение (декрементированное на 2). Изменяемые флагиОтсутствуют Исключения защищенного режима#SS(0), если новое значение регистра SP или ESP не находится в границахстекового сегмента; #GP(0) в случае недопустимого исполнительного адресаоперанда памяти в сегментах CS, DS, ES, FS или GS; #SS(0) в случаенедопустимого адреса в сегменте SS; # PF(код сбоя) в случае страничногосбоя; #AC для невыравненной ссылки к памяти при текущем уровнепривилегированности, равном 3. Исключения режима реальных адресовОтсутствуют: если регистр SP или ESP равен 1, процессор переходит в режимзакрытия из-за недостаточного размера памяти стека. Исключения виртуального режима 8086Те же исключения, что и для режима реальных адресов: #PF (код сбоя) длястраничных сбоев. #AC для невыравненной ссылки к памяти при текущем уровнепривилегированности, равном 3. ПримечаниеПри использовании операнда памяти команда PUSH выполняется дольше, чемпоследовательность двух команд, пересылающая операнд через регистр.Разрешены последовательности парных команд PUSH/POP, не требующиедополнительного тактового цикла между ними.


<== предыдущая лекция | следующая лекция ==>
POPF/POPFD - Извлечение из стека регистров FLAGS или ERFLAGS | PUSHA/PUSHAD - Помещение в стек всех регистров общего назначения


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.685 сек.