переносить / переполнять и вычитать в x86

Я пытаюсь обернуть голову вокруг переполнения и перенести флаги в x86.

Насколько я понимаю, для добавления номеров дополнения со знаком 2 флаги могут быть сгенерированы только одним из четырех способов (мои примеры - 4-битные числа):

pos + pos = neg (переполнение)0111 + 0001 = 1000 (7 + 1 = -8)pos + neg = pos (нести)0011 + 1110 = 0001 (3 + -2 = 1)Нег + нег = Нег (нести)1111 + 1111 = 1110 (-1 + -1 = -2)neg + neg = pos (переполнение и перенос)1000 + 1001 = 0001 (-8 + -7 = 1)

Итак, в сборке x86 вычитание B из A генерирует те же флаги, что и добавление A и -B?

Ответы на вопрос(2)

Ваш ответ на вопрос