Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_po_poryadku_proga.doc
Скачиваний:
4
Добавлен:
15.04.2019
Размер:
1.07 Mб
Скачать

Xchg приемник, источник

Команда NOP - ничего не делающая команда

NOP

Эта команда не делает абсолютно ничего (пустая команда). Она только занимает пространство и время. Используется для резервирования места в сегменте кода или организации программной задержки.

22. Команды преобразования:

CBW Преобразование байта в слово (convert byte to word) Команда CBW заполняет регистр AH знаковым битом содержимого регистра АL, преобразуя тем самым 8-разрядное число со знаком в 16-разрядное. Команду удобно использовать для преобразования байтового делимого в двухбайтовое (слово) при делении на 8-разрядный операнд.

CWD Преобразование слова в двойное слово

(convert word to double word)

Команда CWD заполняет регистр DX знаковым битом содержимого регистра АХ, преобразуя тем самым 16-разрядное число со знаком в 32-разрядное. Команду удобно использовать для преобразования двухбайтового делимого в четырехбайтовое (двойное слово) при делении на 16-разрядный операнд.

CWDE Преобразование слова в двойное слово Команда CWDE заполняет старшие два байта регистра EAX знаковым битом содержимого регистра АХ, преобразуя тем самым 16-разрядное число со знаком в 32-разрядное.

CDQ Преобразование двойного слова в четвертное слово

(convert double to quadric) Команда CDQ заполняет регистр EDX знаковым битом содержимого регистра EАХ, преобразуя тем самым 32-разрядное число со знаком в 64-разрядное. Команду удобно использовать для преобразования четырехбайтового делимого в восьмибайтовое (четвертное слово) при делении на 32-разрядный операнд.

23Команды сравнения:

Логическое сравнение

TEST приемник, источник Команда используется для логического умножения двух операндов (вычисляет результат действия побитового «логического И») над приемником и источником, не сохраняя результата. TEST ECX,EDX

Устанавливает флаги SE ZF и PF в соответствии с полученным показателем, флаги OF и CF обнуляются, значение AF не определено. TEST, так же как и CMP используется в основном в сочетании с командами условного перехода и условной пересылки данных.

Команда TEST устанавливает только флаги, а операнд не изменяется.

Команды сравнения

CMP приемник, источник Сравнивает приемник и источник и устанавливает флаги. Сравнение - путем вычитания источника из приемника, причем результат вычитания никуда не записывается. Единственным следствием работы этой команды оказывается изменение флагов CF, OF, SF, ZF, AF и PF. Обычно команду СМР используют вместе с командами условного перехода и условной пересылки данных .

если ( АХ ) < ( BX ) , то значение бита SF=1. если ( АХ ) > ( BX ) , то значение бита SF=0 если ( АХ ) = ( BX ) , то значение бита ZF=1.

24 Команды управления:

Команда безусловного перехода JMP операнд Команда передает управление в другую точку программы, не сохраняя информации для возврата. Операндом может быть непосредственный адрес для перехода (обычно метка), а также регистр или переменная, содержащая адрес. Команда не изменяет содержимое флагов. Общий вид команды

JMP ADDRESS

Команды условных переходов Команды условного перехода имеют следующий общий вид : КОП Адрес КОП определяет условие перехода. Адрес определяет, куда нужно перейти, если условие, закодированное в коде операции, соответствует текущему значению регистра флажков.

Различают команды условного перехода для знаковых и беззнаковых чисел. Слова «выше -A» и «ниже - B» в таблице относятся к сравнению чисел без знака; слова «больше - G» и «меньше - L» учитывают знак. !!Команды условных переходов не поддерживают дальних переходов (>128)

Для чисел без знака JB/JNAE

Переход если ниже; переход если не выше или равно CF = 1

JAE/JNB

Переход если выше или равно; переход если не ниже CF = 0

JBE/JNA

Переход если ниже или равно; переход если не выше CF=1 или ZF = 1

JA/JNBE

Переход если выше; переход если не ниже или равно CF=0 и ZF=0

Для чисел со знаком JL/JNGE

Переход если меньше; переход если не больше или равно S<>0

JGE/JNL

Переход если больше или равно; переход если не меньше C = 0

JLE/JNG

Переход если меньше или равно; переход если не больше Z=1 или

Z<>0

JG/JNLE

Переход если больше; переход если не меньше или равно Z=0 или S=0

Для прочих данных JE/JZ Переход если равно ZF = 1

JNE/JNZ Переход если не равно ZF = 0

JP Переход при успешной проверке четности JPE;

переход при четности PF = 1

JNP Переход при неуспешной проверке четности JPO Переход при нечетности PF = 0 JS Переход если есть знак SF = 1

JNS Переход если нет знака SF = 0 JC Переход если есть перенос СF = 1 JNC Переход если нет переноса CF = 0 JO Переход если есть переполнение OF = 1 JNO Переход если нет переполнения

Команда перехода с учетом состояния регистра CX (ЕСХ) JCXZ метка

Выполняет ближний переход на указанную метку, если СХ=0 JECXZ метка

Выполняет ближний переход на указанную метку, если ЕСХ=0

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]