MOVS/MOVSB/MOVSW/MOVSD
(MOVe String Byte/Word/Double word) Пересылка строк байтов/слов/двойных слов
Назначение: пересылка элементов двух последовательностей (цепочек) в памяти. Алгоритм работы: · выполнить копирование байта, слова или двойного слова из операнда источника в операнд приемник, при этом адреса элементов предварительно должны быть загружены: o адрес источника — в пару регистров ds:esi/si (ds по умолчанию, допускается замена сегмента); o адрес приемника — в пару регистров es:edi/di (замена сегмента не допускается); · в зависимости от состояния флага df изменить значение регистров esi/si и edi/di: o если df=0, то увеличить содержимое этих регистров на длину структурного элемента последовательности; o если df=1, то уменьшить содержимое этих регистров на длину структурного элемента последовательности; · если есть префикс повторения, то выполнить определяемые им действия (см. команду rep). Состояние флагов после выполнения команды:
Применение: MUL (MULtiply) Умножение целочисленное без учета знака
Назначение: операция умножения двух целых чисел без учета знака. Алгоритм работы: · если операнд, указанный в команде — байт, то второй сомножитель должен располагаться в al; · если операнд, указанный в команде — слово, то второй сомножитель должен располагаться в ax; · если операнд, указанный в команде — двойное слово, то второй сомножитель должен располагаться в eax. Результат умножения помещается также в фиксированное место, определяемое размером сомножителей: · при умножении байтов результат помещается в ax; · при умножении слов результат помещается в пару dx:ax; · при умножении двойных слов результат помещается в пару edx:eax. Состояние флагов после выполнения команды (если старшая половина результата нулевая):
Состояние флагов после выполнения команды (если старшая половина результата ненулевая):
Применение: О б ъ е к т н ы й к о д: |1111011w|mod100r/m|
PUSH (PUSH operand onto stack) Размещение операнда в стеке
Назначение: размещение содержимого операнда источник в стеке. Алгоритм работы: · уменьшить значение указателя стека esp/sp на 4/2 (в зависимости от значения атрибута размера адреса — use16 или use32); · записать источник в вершину стека (адресуемую парой ss:esp/sp). Состояние флагов после выполнения команды:
Применение: О б ъ е к т н ы й к о д (три формата): Регистр: |01010reg| Сегментный регистр: |000sg111| (sg-сегм.рег.) Регистр/память: |11111111|mod110r/m|
Пример:
my_proc proc near push ax push bx ;тело процедуры, в которой изменяется содержимое ;регистров ax и bx ... pop bx pop ax ret endp
SHL (SHift logical Left) Сдвиг логический операнда влево
Назначение: логический сдвиг операнда влево. Алгоритм работы: · сдвиг всех битов операнда влево на один разряд, при этом выдвигаемый слева бит становится значением флага переноса cf; · одновременно слева в операнд вдвигается нулевой бит; · указанные выше два действия повторяются количество раз, равное значению второго операнда. Состояние флагов после выполнения команды:
Применение: · если of=1, то текущее значение флага cf и выдвигаемого слева бита операнда различны; · если of=0, то текущее значение флага cf и выдвигаемого слева бита операнда совпадают. Этот эффект, как вы помните, обусловлен тем, что флаг of устанавливается в единицу всякий раз при изменении знакового разряда операнда.
SHR Сдвиг логический операнда вправо ASCII-коррекция после сложения
Назначение: логический сдвиг операнда вправо. Алгоритм работы: · сдвиг всех битов операнда вправо на один разряд; при этом выдвигаемый справа бит становится значением флага переноса cf; · одновременно слева в операнд вдвигается нулевой бит; · указанные выше два действия повторяются количество раз, равное значению второго операнда. Состояние флагов после выполнения команды:
Применение: XOR Логическое исключающее ИЛИ ASCII-коррекция после сложения
Назначение: операция логического исключающего ИЛИ над двумя операндами размерностью байт, слово или двойное слово. Алгоритм работы: · выполнить операцию логического исключающего ИЛИ над операндами: бит результата равен 1, если значения соответствующих битов операндов различны, в остальных случаях бит результата равен 0; · записать результат сложения в приемник; · установить флаги. Состояние флагов после выполнения команды:
Применение:
Популярное: Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние... Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (226)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |