Я в компьютерной архитектуре и мой проф. не смог дать удовлетворительный ответ.
Предполагая, что у нас 32-битный процессор, если у нас есть два целых числа без знака x и y , оба из которых больше 2 31 что они слишком велики для правильного преобразования в форму дополнения до двух) как мы выполняем вычитание?
Если вычитаемое значение было константой, я вижу, как компилятор мог бы компенсировать это в статическом анализе. Но как нам справиться с этой возможностью во время выполнения, особенно в статически скомпилированном языке, таком как C? Это просто вызывает ошибку переполнения или некоторые архитектуры subu
поддерживают специальные операции?
Все, что я нахожу для MIPS, говорит о том, что оно просто выполняет вычитание из двух дополнений, но в этом случае это не должно работать, не так ли?