Я хочу знать о инструкции NEG, это также влияет на флаг переполнения !!! .. я узнал, что это просто отрицает значение переменной, но не может знаете, что это влияет на флаг переполненияделает инструкцию NEG на языке ассемблера устанавливает флаг переполнения
ответ
Если вы хотите узнать, какие инструкции, обратитесь к справочным руководствам.
essential reference, namely the Intel instruction set manual говорит это о инструкции NEG:
Flags Affected
The CF flag set to 0 if the source operand is 0; otherwise it is set to 1.
The OF, SF, ZF, AF, and PF flags are set according to the result.
Так что ясно, что инструкции NEG наборы флаг O; поэтому он влияет на флаг O, который является исходным вопросом OP. И он делает это каждый раз, когда он выполняется. (Люди не должны путать «не изменилось» с «не установлено»).
В этом конкретном справочном руководстве не указан конкретный алгоритм, указывающий, когда O установлен на ноль или один. Однако процессоры Intel являются 2-мя дополнительными машинами. Команда Subtract имеет то же самое словосочетание. NEG X эквивалентен (0 SUBTRACT X). Поэтому NEG должен установить бит O в соответствии с «переполнением» для (0 SUBTRACT X); это установит O, когда X будет 0x8000000.
Проверка Intel Basic Archiecture Manual, мы находим это описание битовых:
OF (bit 11) Overflow flag
— Set if the integer result is too large a positive number or too small a
negative number (excluding the sign-bit) to fit in the destination operand;
cleared otherwise. This flag indicates an overflow condition for signed-integer
(two’s complement) arithmetic
, подтверждающее наше понимание.
Почему вы не проверяете ссылку на набор инструкций вместо запроса здесь и ожидаете ответа? – Jester
Я посмотрел туда, но его действительно трудно получить оттуда ... нужен только один-два строчных ответа, я просто новичок в этом. –