Сложение выполняется как Два дополнения , и результат больше 8 бит.0x80 + 0x80 = 0x100
или в двоичном виде:
0b10000000
+ 0b10000000
-------------
= 0b100000000
и, следовательно, результат равен 0 и установлен флаг переноса.
Не думайте о -128
как отрицательном числе, скорее подумайтев качестве положительного числа (128
), которое имеет ту же битовую комбинацию, что и комплимент двух ваших отрицательных чисел, затем выполните сложение без знака.(И поэтому установлен флаг переноса.)