Описать синтаксис и использование команд пересылки данных

MOV (MOVe operand) Пересылка операнда.

Синтаксис:
mov приемник, источник

Осуществляет пересылку данных между источником и приемником, через копирование второго операнда в первый операнд. Источником могут быть: число, регистр, ячейка памяти. Приемником – регистр, память(не может быть изображение). Ист и пр должны иметь одинаковый размер. Копировать из памяти в память нельзя. Лишь один из операндов может быть сегментным регистром; желательно использовать в качестве одного из операндов регистр al/ax/eax, так как в этом случае TASM генерирует более быструю форму команды mov.

MOVS/MOVSB/MOVSW/MOVSD (MOVe String Byte/Word/Double word) Пересылка строк байтов/слов/двойных слов Синтаксис:
movs / movsb / movsw / movsd приемник, источник

Команды пересылают элемент из одной ячейки памяти в другую. Размеры пересылаемых элементов зависят от применяемой команды. Команда movs может работать с элементами размером в байт, слово, двойное слово. В качестве операндов в команде указываются идентификаторы последовательностей этих элементов в памяти. Реально эти идентификаторы используются лишь для получения типов элементов последовательностей, а их адреса должны быть предварительно загружены в указанные выше пары регистров. Транслятор, обработав команду movs и выяснив тип операндов, генерирует одну из машинных команд movsb, movsw или movsd. Машинного аналога для команды movs нет. Для адресации операнда приемник обязательно должен использоваться регистр es.
Для того чтобы эти команды можно было использовать для пересылки последовательности элементов, имеющих размерность байт, слово, двойное слово, необходимо использовать префикс rep. Префикс rep заставляет циклически выполняться команды пересылки до тех пор, пока содержимое регистра ecx/cx не станет равным нулю

MOVSX (MOVe and Sign eXtension) Пересылка с расширением знака

Синтаксис:
movsx приемник,источник

Эта команда преобразовывает элементы со знаком меньшей размерности в эквивалентные им элементы со знаком большей размерности. Т.е. копирует содержимое источника в младшую часть приемника. А старшая часть заполняется знаковым битом. Пр должен быть в 2р > ист.

MOVZX (MOVe and Zero eXtension) Пересылка с нулевым расширением

Синтаксис:
movzx приемник,источник

Эта команда преобразовывает элементы без знака меньшей размерности в эквивалентные им элементы без знака большей размерности. Т.е. копирует содержимое источника в младшую часть приемника. А старшая часть заполняется 0.

При использовании команды movsx операция рассматривается как знаковое копирование. А при movzx – безнаковое. LEA (Load Effective Address) Загрузка эффективного адреса.

Синтаксис:

lea приемник, источник - Предназначена для получение эффективного адреса (смещения) источника. Пр явл регистром, а ист – переменной.

LODS/LODSB/LODSW/LODSD (LOad String Byte/Word/Double word operands) Загрузка строки байтов/слов/двойных слов

Синтаксис:
lods / lodsb / lodsw / lodsd источник

Команды извлекают элемент из ячейки памяти в один из регистров, т.е загрузка элемента из последовательности (цепочки) в регистр-аккумулятор al/ax/eax.

XLAT / XLATB (transLATe Byte from table) Преобразование байта

Синтаксис:
xlat адрес_таблицы_байтов xlatb

Команда помещает в al байт из табл памяти находящейся по адресу ES:DI со смещением относительно начала табл = al.

К качестве аргумента для команды xlat принято использовать название табл.








Опишите состав и назначение арифметических команд сложения

ADC (Addition with Carry) Сложение с переносом. Схема команды: adc приемник, источник. Назначение: сложение двух операндов с учетом переноса из младшего разряда. Алгоритм работы:

сложить два операнда; поместить результат в первый операнд: приемник=приемник+источник; в зависимости от результата установить флаги.

Применение: Команда adc используется при сложении длинных двоичных чисел. Ее можно использовать как самостоятельно, так и совместно с командой add. При совместном использовании команды adc с командой add сложение младших байтов/слов/двойных слов осуществляется командой add, а уже старшие байты/слова/двойные слова складываются командой adc, учитывающей переносы из младших разрядов в старшие. Таким образом, команда adc значительно расширяет диапазон значений складываемых чисел.

ADD (ADDition) Сложение. Схема команды: add приемник, источник

Назначение: сложение двух операндов источник и приемник размерностью байт, слово или двойное слово. Алгоритм работы:

сложить операнды источник и приемник; записать результат сложения в приемник; установить флаги.

Применение: Команда add используется для сложения двух целочисленных операндов. Результат сложения помещается по адресу первого операнда. Если результат сложения выходит за границы операнда приемник (возникает переполнение), то учесть эту ситуацию следует путем анализа флага cf и последующего возможного применения команды adc.

XADD (eXchange and ADD) Обмен и сложение

Синтаксис:
xadd пр, ист

Команда xadd используется для выполнения операции обмена и сложения двух операндов.


Inc


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: