|
Команди асемблера для Intel: POP, 386+ РОРА, 386+ POPAD, POPF,
ADO в Delphi AJAX Android C++ CakePHP CMS COM CSS Delphi Flash Flex HTML Internet Java JavaScript MySQL PHP RIA SCORM Silverlight SQL UML XML Бази даних Веб-розробка Генетичні алгоритми ГІС Гітара Дизайн Економіка Інтелектуальні СДН Колір Масаж Математика Медицина Музика Нечітка логіка ООП Патерни Подання знань Розкрутка сайту, SEO САПР Сесії в PHP Системне програмування Системний аналіз Тестологія Тестування ПЗ Фреймворки Штучний інтелект
|
Команди асемблера для Intel: POP, 386+ РОРА, 386+ POPAD, POPF,
POP Витягання слова із стекаКоманда pop виштовхує 16-бітове дане із стека, тобто пересилає слово з вершини стека (на яку указує регістр SP) за адресою операнда-приймача. Після цього вміст SP збільшується на 2, і SP указує на попереднє слово стека, яке тепер є його новою вершиною. Виштовхувати із стека можна тільки цілі слова (не байти). Програма повинна строго стежити за тим, щоб кожній команді проштовхування в стек push відповідала зворотна команда виштовхування із стека pop. Якщо стек використовується для тимчасового зберігання деяких даних, то витягувати ці дані із стека слід в порядку, зворотному їх збереженню.
Як операнд-приймач можна використовувати будь-який 16-розрядний регістр (окрім CS) або елемент пам'яті. Команда не впливає на прапори процесора. Приклад 1 push AX ;Временное збереження push BX ;в стеку push DS ;трех операндів pop DS ;Восстановление із стека pop BX ;трех операндів pop AX ; у зворотному порядку Приклад 2 push CS ;Пересылка CS через стек pop DS ;Теперь Ds=cs Приклад 3 ;У полях даних mem dw 0 ; У програмному сегменті pop mem ;Восстановление із стека в пам'ять
Приклад pop EAX ;Извлечение із стека подвійного слова 386+ РОРА Восстановленіє із стека всіх регістрівКоманда рора відновлює із стека вміст всіх регістрів, заздалегідь збережених в стеку командою pusha. Заповнення із стека регістрів здійснюється в наступному порядку: DI, SI, BP, SP, ВХ, DX, СХ, АХ. Початковий вміст покажчика стека SP, збережене в стеку командою pusha, командою рора із стека витягується, але відкидається. Команда не має параметрів. Приклад рора 386+ POPAD Відновлення із стека всіх регістрів в 32-розрядному режиміКоманда popad відновлює із стека вміст всіх розширених регістрів, заздалегідь збережених в стеку командою pushad. Заповнення із стека регістрів здійснюється в наступному порядку: EDI, ESI, EBP, ESP, ЕВХ, EDX, ЕСХ, ЕАХ. Початковий вміст покажчика стека ESP, збережене в стеку командою pusha, командою рора із стека витягується, але відкидається. Команда не має параметрів. Приклад popad POPF Відновлення із стека регістра прапорівКоманда popf пересилає верхнє слово стека (на яке указує регістр SP) в регістр прапорів FLAGS. Після цього вміст SP збільшується на 2, і SP указує на попереднє слово стека, яке тепер є його новою вершиною. Команда popf не має параметрів; вона впливає на всі прапори процесора, окрім прапорів VM і RF. Приклад 1 popf ;Регистр прапорів завантажується із стека Приклад 2 pushf ;Отправим прапори в стек mov Bp,sp ;Настроим ВР на прапори в стеку or [BP],100h ;Установим битий 100h (прапор TF) popf ;Вытолкнем у регістр прапорів. ;Тепер в регістрі прапорів Tf=1 386+ POPFD Відновлення із стека розширеного регістра прапорівКоманда popfd пересилає верхнє слово стека (на яке указує регістр ESP) в розширений регістр прапорів EFLAGS. Після цього вміст ESP збільшується на 4, і ESP указує на попереднє слово стека, яке тепер є його новою вершиною. Команда popfd не має параметрів; вона впливає на всі прапори процесора. Приклад popfd ;Регистр EFLGS завантажується із стека Зверніть увагу на додаткові посиланняГоловний розділСторінки, близькі за змістомзагрузка...
|
Сторінки, близькі за змістом ![]() Асемблер (англ. assembler) — загальноприйнята назва транслятора з автокоду. Асемблер переводить початкову програму, написану на автокоді, в переміщувану програму на мові машинній. Оскільки асемблер здійснює трансляцію на мову завантажувача, при завантаженні програми необхідна налаштування умовних адрес, тобто адрес, значення яких залежать від розташування даної програми в пам'яті ЦВМ і від її зв'язків з іншими незалежно трансльованими програмами. |
|
Copyright © 2008—2026 Портал Знань.
При використанні матеріалів посилання, для інтернет-ресурсів — гіперпосилання, на Znannya.org обов'язкове.
Зв'язок
|
НТУУ "КПІ" Інженерія програмного забезпечення КПІ Лабораторія СЕТ |
|