Мой тип чисел - это целое число со знаком, состоящее из двух чисел со знаком.
В регистрах памяти% rdi / edi / di у меня есть 0xFFFFFFFF.В% rsi / esi / si у меня 0x80000000.
Моя инструкция addl %edi, %esi
.
Как правильно добавить их?
Я думаю, что ответ:
Поскольку я добавляю полный 32-битный регистр, у меня есть преимущество добавления полных сумм 0xFFFFFFFF и 0x80000000.
Итак, к подписанному добавлено целое число со знаком, и они оба 32-разрядные.Я эффективно добавляю -2147483648 и 0x80000000.Поскольку 0x80000000 - это 2147483648 в шестнадцатеричном формате, я добавляю эти два и получаю ноль.
Флаг нуля активирован Флаг переноса активирован (так как я добавляю старшее значение 32-битного регистра)