В Visual Studio написал такой код: Код (C): int main() { int a; int b; UCHAR i=0; i = 254; // i=i+2; _asm { add i,2 mov eax, 0xffffffff add eax, 2 jo aa } b = 0; aa: a = 0; return 0; Подскажите, пожалуйста, почему проверка не выполняется и не происходит переход на аа?
Переполнение != перенос https://wasm.in/blogs/perenos-i-perepolnenie-chto-oni-predstavljajut-soboj-na-samom-dele.275
Llirik, Содержимое OF после сложения/вычитания соответствует формуле Overflow Flag = Sign Op1 XOR Sign Op2 XOR Sign Flag XOR Carry Flag
Всем спасибо! Сделал так: Код (Text): i = 254; i+=3; _asm { jc aa jo aa } b = 0; aa: a = 0; return 0;
А зачем сразу и карри и оверфлоу проверять? Карри это переполнение беззнакового типа, оверфлоу переполнение знакового.