Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






LDS di,адрес_памяти





Флаги: Не меняются.

LES

Загрузка регистра дополнительного сегмента

Операция: Инициализирует начальный адрес дополнительного сегмента и адрес смещения к переменной для обеспечения доступа к данной переменной.

Флаги: Не меняются.

LOCK

Блокировка шины доступа к данным

Операция: Запрещает другим (сопроцессорам одновременно изменять элементы данных. Команда LOCK представляет собой однобайтовый префикс, который можно кодировать непосредственно перед любой командой. Данная операция посылает сигнал в другой процессор, запрещая использование данных, пока не будет завершена следующая команда.

Флаги: Не меняются.

Объектный код: 11110000

LODS/LODSB/LODSW

Загрузка однобайтовой или двухбайтовой строки

Операция: Загружает из памяти один байт в регистр AL или одно слово в регистр AХ. Несмотря на то, что команда LODS выполняет строковую операцию, нет смысла использовать ее с префиксом REP. Регистровая пара DS:SI адресует в памяти байт (для LODSB) или слово (для LODSW), которые загружаются в регистр AL или AХ соответственно. В случае, если флаг DF равен нулю, то операция прибавляет 1 (для байта) или 2 (для слова) к регистру SI.

В случае, если флаг DF равен единице, то операция вычитает 1 (для байта) или 2 (для слова) из регистра SI.

Флаги: Не меняются.

Объектный код: 1010110w (без операндов).

LOOP

Цикл

Операция: Управляет выполнением группы команд определенное число раз. До начала цикла в регистр CX должно быть загружено число выполняемых циклов. Команда LOOP находится в конце цикла, где она уменьшает значение в регистре СХ на единицу. В случае, если значение в регистре CX не равно нулю, то команда передает управление по адресу, указанному в операнде (прибавляет к регистру IP значение операнда); в противном случае управление передается на следующую после LOOP команду (происходит выход из цикла).

Флаги: Не меняются.

LOOPE/LOOPZ

Цикл, если равно или нуль

Операция: Управляет выполнением группы команд определенное число раз или пока установлен флаг ZF (в единичное состояние). Команды LOOPE/LOOPZ аналогичны команде LOOP, за исключением того, что по этим командам цикл прекращается либо по нулевому значению в регистре CX, либо по нулевому значению флага ZF (ненулевое состояние).

Флаги: Не меняются.

LOOPNE/LOOPNZ

Цикл, если не равно или не нуль

Операция: Управляет выполнением группы команд определенное число раз или пока сброшен флаг ZF (в нулевое состояние). Команды LOOPNE/LOOPNZ аналогичны команде LOOP за исключением того, что по этим командам цикл прекращается либо по нулевому значению в регистре CX, либо по единичному значению флага ZF (нулевое состояние).

Флаги: Не меняются.

 

 

MOV

Пересылка данных

Операция: Пересылает один байт или одно слово между регистрами или между регистром и памятью, а также передает непосредственное значение в регистр или в память. Команда MOV не может передавать данные между двумя адресами памяти (для этой цели служит команда MOVS). Существует семь типов команды MOV.

Флаги: Не меняются.

MOVS/MOVSB/MOVSW

Пересылка строки байт или строки слов

Операция: Пересылает данные между областями памяти. Команды MOVS(B/W) обычно используются с префиксом REP. Команда MOVSB пересылает любое число байтов, а команда MOVSW — любое число слов. Перед выполнением команды регистровая пара DS:SI должна адресовать источник пересылки («откуда») а регистровая пара ES:DI — получатель пересылки («куда»). В случае, если флаг DF равен нулю, то операция пересылает данные слева направо и увеличивает регистры SI и DI. В случае, если флаг DF равен единице то операция пересылает данные справа налево и уменьшает регистры SI и DI.

Флаги: Не меняются.

Объектный код: 1010010w (без операндов).

MUL

Беззнаковое умножение

Операция: Умножает беззнаковое множимое (8 или 16 бит) на беззнаковый множитель (8 или 16 бит). Левый единичный бит рассматривается как бит данных, но не как знак минус для отрицательных чисел. Для 8-битового умножения множимое должно находиться в регистре AL, а множитель возможен в регистре или в памяти, например MUL CL. Произведение получается в регистре АХ. Для 16-битового умножения множимое должно находиться в регистре АХ, а множитель возможен в регистре или в памяти, например MUL ВХ. Произведение получается в регистровой паре DX:AX.

Флаги: Команда воздействует на флаги CF и OF (флаги AF, PF, SF и ZF не определены).

 


 

NEG

Изменение знака числа

Операция: Меняет двоичное значение из положительного в отрицательное и из отрицательного в положительное. Команда NEG вычисляет двоичное дополнение от указанного операнда: вычитает операнд из нуля и прибавляет единицу. Операндом может быть байт или слово в регистре или в памяти.

Флаги: Команда воздействует на флаги AF, CF, OF, PF, SF и ZF.

NOP

Нет операции

Операция: Применяется для удаления или вставки машинных кодов или для задержки выполнения программы. Команда NOP выполняет операцию XCHG АХ,АХ, которая ничего не меняет.

Флаги: Не меняются.

Объектный код: 10010000 (без операндов)

NOT

Логическое НЕТ

Операция: Меняет нулевые биты на единичные и наоборот. Операндом может быть байт или слово в регистре или в памяти.

Флаги: Не меняются.

OR

Логическое ИЛИ

Операция: Выполняет поразрядную дизъюнкцию (ИЛИ) над битами двух операндов. Операндами являются байты или слова в регистрах или в памяти, второй операнд может иметь непосредственное значение. Команда OR обрабатывает операнды побитово. В случае, если любой из проверяемых бит равен единице, то бит в операнде 1 становится равным единице, в противном случае бит в операнде 1 не изменяется.

Флаги: Команда воздействует на флаги CF, OF, PF, SF и ZF (флаг AF неопределен).

OUT

Вывод байта или слова в порт

Операция: Передает в выводной порт байт из регистра AL или слово из регистра AХ. Порт кодируется как фиксированный числовой операнд (OUT порт#,АХ) или как переменная в регистре DX (OUT DX.AX). Процессоры имеют, кроме того, команду OUTS (Output String — вывод строки).

Флаги: Не меняются.

POP

Извлечение слова из стека

Операция: Передает слово (помещенное ранее в стек) в указанный операнд. Регистр SP указывает на текущее слово в вершине стека. Команда POP извлекает слово из стека и увеличивает значение в регистре SP на 2. Существует три типа команды POP в зависимости от операнда: общий регистр, сегментный регистр, слово в памяти.

Флаги: Не меняются.

POPA

Извлечение из стека всех общих регистров

Операция: Извлекает из стека восемь значений в регистры Dl, SI BP, SP, BX, DX, CX, AX в указанной последовательности и увеличивает регистр SP на 16. Регистры обычно записываются в стек ранее соответствующей командой PUSHA.

Флаги: Не меняются.

Объектный код: 01100001 (без операндов).

POPF

Извлечение флагов из стека

Операция: Передает биты (помещенные ранее в стек) во флаговый регистр. Регистр SP указывает на текущее слово в вершине стека. Команда POPF передает биты из этого слова во флаговый регистр и увеличивает значение в регистре SP на 2. Обычно команда PUSHF записывает значения флагов в стек, а команда POPF восстанавливает эти флаги.

Флаги: Команда воздействует на все флаги.

Объектный код: 10011101 (без операндов).

PUSH

Занесение слова в стек

Операция: Сохраняет значение слова (адрес или элемент данных) в стеке для последующего использования. Регистр SP указывает на текущее слово в вершине стека. Команда PUSH уменьшает значение в регистре SP на 2 и передает слово из указанного операнда в новую вершину стека. Существует три типа команды PUSH в зависимости от операнда: общий регистр, сегментный регистр или слово в памяти.


Флаги: Не меняются.

PUSHA

Занесение в стек всех общих регистров

Операция: Записывает в стек восемь значений регистров AX, CX, DX, BX, SP, BP, SI, DI в указанной последовательности и уменьшает регистр SP на 16. Обычно команда POPA позже восстановит эти регистры из стека.

Флаги: Не меняются.

Объектный код: 01100000 (без операндов).

PUSHF

Занесение флагов в стек

Операция: Сохраняет значения флагов из флагового регистра в стеке для последующего использования. Регистр SP указывает на текущее слово в вершине стека. Команда PUSHF уменьшает значение в регистре SP на 2 и передает флаги в новую вершину стека.

Флаги: Не меняются.

Объектный код: 10011100 (без операндов).







Date: 2015-05-22; view: 666; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.022 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию