Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 02.11.2010
Сообщений: 78
1

Команды-синонимы условного перехода.

23.03.2012, 22:21. Просмотров 1795. Ответов 1
Метки нет (Все метки)

Подскажите все команды-синонимы среди команд условного перехода, и объясните, почему они являются синонимами (ну кроме использования одинаковых значений флагов). И почему разработчики архитектуры x86 добавили команды-синонимы? Например, команды JZ и JE – синонимы, так как осуществляют переход при ZF = 0. Какие ещё есть?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.03.2012, 22:21
Ответы с готовыми решениями:

Операторы условного перехода
Ребят....у меня поблема....задача работает совсем не правильно...помогите разобраться...все...

Команды перехода.
Имеется такой вот код: title prog ; c=<A=<d .286p .MODEL Large,C LOCALS @@ .DATA EXTRN C...

Команды перехода
Уважаемые форумчане, необходим любой код на Assembler, имеющий как можно больше различных команд...

Команды безусловного перехода. Типы переходов
Ввод и преобразование чисел в языке Ассемблера. Гуглил, гуглил, так и не нашел то, что нужно,...

1
Ушел с форума
Автор FAQ
13887 / 6921 / 786
Регистрация: 11.11.2010
Сообщений: 12,458
24.03.2012, 04:21 2
Цитата Сообщение от 13xXx13 Посмотреть сообщение
почему разработчики архитектуры x86 добавили команды-синонимы?
13xXx13, C чего ты это взял? Разработчики архитектуры x86 создали 16 команд перехода по условию, а вот создатели компиляторов называли их по разному, в зависимости от места применения, поэтому и появились команды синонимы.
КомандаУсловие код команды Значение флагов
JO переполнение (overflow) 01110000XXXXXXXX OF = 1
JNO нет переполнения (no overflow) 01110001XXXXXXXX OF = 0
JB/JNAE/JC ниже (below) /не выше и не равно (neither above nor equal) /перенос (carry)01110010XXXXXXXX CF = 1
JNB/JAE/JNCне ниже (not below) /нет переноса (not carry)/выше или равно (above or equal) 01110011XXXXXXXX CF = 0
JE/JZ равно (equal) /ноль (zero) 01110100XXXXXXXX ZF = 1
JNE/JNZ не равно (not equal) /не ноль (not zero) 01110101XXXXXXXX ZF = 0
JBE/JNA ниже или равно (below or equal) /не выше (not above) 01110110XXXXXXXX CF or ZF = 1
JNBE/JA выше (above) /не ниже и не равно (neither below nor equal) 01110111XXXXXXXX CF or ZF = 0
JS знак есть (sign) /отрицательное число 01111000XXXXXXXX SF = 1
JNS знака нет (no sign) /положительное число 01111001XXXXXXXX SF = 0
JP/JPE четное (parity)/паритет четный (parity even) 01111010XXXXXXXX PF = 1
JNP/JPO паритет не чётный (parity odd)/не четное (no parity) 01111011XXXXXXXX PF = 0
JL/JNGE меньше (less) /не больше и не равно (neither greater nor equal) 01111100XXXXXXXX SF xor OF = 1
JNL/JGE не меньше (not less) /больше или равно (greater or equal) 01111101XXXXXXXX SF xor OF = 0
JLE/JNG меньше или равно (less or equal) /не больше (not greater) 01111110XXXXXXXX (SF xor OF) or ZF = 1
JNLE/JG больше (greater) /не меньше и не равно (neither less nor equal) 01111111XXXXXXXX (SF xor OF) or ZF = 0

Смотрим Kris Kaspersky "Тонкости дизассемблирования (дизассемблирование в уме)"
Если подходить к командам условного перехода с позиции машинной кодировки команд, то четыре старших бита команды (для микропроцессора i8086) содержат код 7, а четыре младших бита команды обозначают условие операции. Условие задается в битах 1-3, а установка бита 0 приводит к его инверсии.
номер бита 7-4 3-1 0
значениеКод операции Условие Инверсия
Те же самые биты используются и при кодировке команд SETcc и CMOVcc (код операции F9 для команд SETcc и F4 для CMOVcc, кроме того в кодировке команд CMOVcc, как и в коде любой команды MOV, будут присутствовать биты режима, биты адреса регистра приемника и биты адреса регистра источника). Как видишь, условий совсем немного, и проблем с их запоминанием обычно не возникает. Теперь уже не нужно мучительно вспоминать jz – это 74h или 75h. Так как младший бит команды равен нулю, то jz – это 74h, а jnz, соответственно, 75h.
Код Мнемоника Условие
000 O Переполнение
001 B, NAE, С Меньше
010 Z Равно
011 BE, NA Меньше или равно
100 S Знак
101 P, PE Четно
110 L, NGE Меньше (знаковое)
111 LE, NG Меньше или равно (знаковое)
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.03.2012, 04:21

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Вычислить выражение с использованием команды условного перехода
Вычислить выражение с использованием команды условного перехода. у=27-(7а+8b) если А>В и 11в+17...

Команды передачи управления (команды условного и безусловного переходов)
Необходимо определить переменные А, В, С как знаковые байтовые переменные. Написать программу...

Не работает цикл после условного перехода jg
Добрый день! Буду благодарна, если укажете мне на ошибку в коде. Изначальная суть задачи: все...

Команды условного перехода
Здравствуйте, до боли простая задача: реализовать условный переход, если загруженное значение <=...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.