|
Команди асемблера для Intel: STI, STOS, STOSB, STOSW, 386+ STOSD
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: STI, STOS, STOSB, STOSW, 386+ STOSD
STI Установка прапора переріванняКоманда STI встановлює прапор дозволу перерівань IF в регістрі прапорів, вірішуючи всі апаратні перерівання (від таймера, клавіатурі, діськів і так далі). Команда не має параметрів і не впліває на решту прапорів процесора. Приклад sti ;Разрешение апаратніх перерівань STOS Запіс в рядок даніхSTOSB Запіс байта в рядок даніхSTOSW Запіс слова в рядок даніхКоманді прізначені для операцій над рядками (рядком назівається послідовність байтів або слів пам'яті з будь-яким вмістом). Сморід копіюють вміст регістра AL (у разі операцій над байтами) або АХ (у разі операцій над словами) в елемент пам'яті відповідного розміру за адресою, візначуваною вмістом парі регістрів Es:di. Після операції копіювання регістр DI отрімує позітівній (якщо прапор Df=0) або негатівній (якщо прапор Df= 1) пріріст. Величина приросту ськладає 1 або 2 поклад від розміру копійованого елементу. Варіант команді stos має формат
stos рядок
(що не позбавляє від необхідності ініціалізувати регістрі Es:di адресою рядка рядок). Замініті сегментній регістр ES не можна. Дані команді можуть передуваті префіксом повторення rep. У цьому віпадку смороду повторюються СХ разів, заповнюючи послідовні елементі пам'яті одним і тім же вмістом регістра AL або АХ. Команда не впліває на прапорі процесора. Приклад 1 ;У полях даніх сегменту даніх, що адресується через ES: id db 'ID:' ;У програмному сегменті: eld ;Движение по рядку вперед mov Di,offset id+3;DI -> за знаком ':' mov Al,'3' ;Код ASCII цифрі 3 stosb ;Отправим у рядок mov Al,'9' ;Код ASCII цифрі 9 stosb ;Отправим у рядок ;Тепер в рядку id запісане 'Id:39' Приклад 2 ;У полях даніх сегменту даніх, що адресується через ES: array dw 10000 dup (?) ;Место під масив слів ; У програмному сегменті: mov Ax-1 ;Число-заполнитель mov Cx,10000 ;Заполнить 10000 слів сld ;Движение по рядку вперед lea Di,array ;ES:DI ® array rep stosw ;Bce 10000 елементів масиву ;набувають значення -1 (Ffffh) Приклад 3
;У полях даніх сегменту даніх, що адресується через ES:
line db 80 dup (' ') ;Пустая поки рядок
;У програмному сегменті:
mov Al,'>' ;Код ASCII знаку '>'
mov Cx,5 ;Заполнить 5 слів
eld ;Движение по рядку вперед
lea Di,line ;ES:DI -" line
rep stos line ;Первые 5 байт рядка line
;заповнюються кодом ASCII
;знака ' >'
Приклад 4 ;У полях даніх сегменту даніх, що адресується через ES: line dw 80 dup (0) ;Строка, заповнена нулями ;У програмному сегменті: mov Al,'>' ;Код ASCII знаку '>' mov Ah,31h ;Атрибут (синій по бірюзовому) mov Cx,5 ; Заповніті 5 слів сld ;Движение по рядку вперед lea Di,line ;ES:DI -" line rep stos line ;Первые 5 слів рядка line ;заповнюються кодом ASCII ;знака '>'разом з атрибутом ;для подальшого віводу на екран 386+ STOSD Запіс подвійного слова в рядок даніхКоманда аналогічна командам МП 86 stosb і stosw, але дозволяє запісаті в рядок, що адресується через регістрі Es:edi, подвійне слово з регістра ЕАХ. Приклад ; У полях даніх dat dd 12789,2,550000,100000 ; У програмному сегменті mov Еах,444777 push DS pop ES ;ES=DS mov DI, off set dat add Di,4*2 ;DS:SI -" 3-й елемент масиву ;чисел stosd ;dat=12789,2,444777,100000 Зверніть увагу на додаткові посиланняГоловний розділСторінки, близькі за змістомзагрузка...
|
Сторінки, близькі за змістом ![]() Асемблер (англ. assembler) — загальноприйнята назва транслятора з автокоду. Асемблер переводить початкову програму, написану на автокоді, в переміщувану програму на мові машинній. Оскільки асемблер здійснює трансляцію на мову завантажувача, при завантаженні програми необхідна налаштування умовних адрес, тобто адрес, значення яких залежать від розташування даної програми в пам'яті ЦВМ і від її зв'язків з іншими незалежно трансльованими програмами. |
|
Copyright © 2008—2026 Портал Знань.
При використанні матеріалів посилання, для інтернет-ресурсів — гіперпосилання, на Znannya.org обов'язкове.
Зв'язок
|
НТУУ "КПІ" Інженерія програмного забезпечення КПІ Лабораторія СЕТ |
|