Цитата(SKov @ Jun 17 2009, 11:31)

Самый простой ответ - пишите программу на Си, и компилятор все сам сделает

Интересный совет, осталось найти Си-компилятор...
Цитата(SKov @ Jun 17 2009, 11:31)

Если все-таки интересно на ассемблере, то тоже очень просто. ПИК не знает , что такое знаковое число и что такое беззнаковое число.
У него есть две команды - сложить (тут все понятно, при переполнении взводится флаг С в регистре статуса) и вычитание.
С вычитанием есть маленькая хитрость. Флаг С взводится, если при вычитании НЕ произошел заем за границей разрядной сетки.
То есть при вычитании C инверсный? Спасибо, не знал.
Цитата(SKov @ Jun 17 2009, 11:31)

А вообще, смотрите описание ассемблерной команды вычитания - там все четко написано.
Так что бит переполнения есть - это флаг С.
Спасибо, это все рассказывают в школе на уроках информатики. Флаг C устанавливается если произошел перенос из самого старшего бита, следовательно он является переполнением при беззнаковом сравнении. Для знакового же переполнением является перенос из предпоследнего разряда в последний, при этом устанавливается бит OV. Но признаком перехода по больше/меньше является не он, а "исключающее или" переполнения и знака. Обычно в процессорах есть либо такой флаг, либо команда перехода по значению этого "исключающего или". В пике я не нашел ни того, ни другого. Как же работать со знаковыми числами?