Я столкнулся с ситуацией, которая кажется немного неинтуитивной при работе с двоичным вычитанием и битами флага NZCV.
Рассмотрим следующие значения
0xF7 0b 1111 0111
0xFF 0b 1111 1111
Если они оба считаются значениями 8B, где
0x000000F7 0b 0000 .... 0000 1111 0111
0x000000FF 0b 0000 .... 0000 1111 1111
При вычитании конечный результат равен
0x FF FF FF F8 0b 1111 .... 1000
Я понимаю, как получается этот результат, но не понимаю, почему для этой операции не установлен бит переноса.
Насколько мне известно, бит переноса устанавливается при заимствовании MSB, разве это не так?