Команда NEG
Рубрика: Архитектура PC
(Команды CPU)
2312
Опубликовано: 07.05.2017
Команда NEG позволяет инвертировать знак числа. Всегда трактует значение операнда, как число со знаком.
Команда NEG
Синтаксис: | NEG op1 |
Операнды: | op1 - r/m8, r/m16, r/m32 |
Назначение: | Изменение знака |
Процессор: | 8086+ |
Флаги: | Если значение операнда равно 0, флаг CF сбрасывается в 0, иначе устанавливается в 1. Остальные флаги (OF, SF, ZF, AF, PF) устанавливаются в соответствии с результатом операции. |
Комментарий: | Команда NEG выполняет над числом, содержащимся в операнде, операцию дополнения до двух. Значение операнда вычитается из нуля, а результат помещается обратно в операнд. Эта операция эквивалентна обращению знака операнда, если рассматривать его как число со знаком. |
Ограничения: | Нет |
Примеры: |
neg ax |
Комментарии (2)
- К. - 2023-07-09 12:38:07
- Написано, что флаги OF, SF, ZF, AF, PF выставляются в соответствии с результатом операции, однако не написано, что это за операция (влияние на флаги операций "изменение знака" или "дополнение до двух" не определено, это лишь варианты названия операции). Правильно было бы сказать, что данная операция представляет собой ВЫЧИТАНИЕ ОПЕРАНДА ИЗ НУЛЯ. При этом не только перечисленные флаги, но и все флаги, включая cf, выставляются по результату операции (влияние на флаги операции вычитания известно).
- К. - 2023-07-09 12:49:34
- "Всегда трактует значение операнда, как число со знаком" — это неверно! Операнд трактуется одновременно как знаковое и беззнаковое число (как и во всех операциях сложения и вычитания). По результату операции выставляются ВСЕ флаги, в частности флаг of выставляется по результату вычитания из нуля операнда как числа со знаком, флаг cf - как числа без знака.