Цитата(Potter @ Feb 5 2007, 16:07)

Само число находится в РОН. Я так понимаю что у каждомго регистра общего назначения имеется где-то бит определяющий знак числа. Но я могу очень грубо ошибаться. Поправте пожалуйста......
Задача собственно простая: В в двух регистрах общего назначения хранится два числа. Числа могут быть положительные а могут быть отрицательные. Надо эти два числа сложить. Подскажите пожалуйста как это зделать?
И еще маленький вопросик... Как работать с портами и как их настраивать я знаю... Вот что-то только у меня не получается нормально работать с портом F в меге 128. Подскажите пожалуйста чего я незнаю....
Заранее огромнешее спасибо за помощь....
Бит отрицательного числа нигде не хранится. Его просто не существует. Само отрицательное число (как и дробное кстати), - это наше представление о числах. То есть в одном байте можно хранить число от 0 до 255, или от -128 до +127. В этом смысле признаком отрицательного числа является старший бит. Но, практически им не пользуются, так как вся арифметика выполняется и так. Если требуется больший диапазон, то используют несколько байтов по той же схеме.
Принцип прост. "-1" - 0xff. Отриц. число преобразуется в положительное путём инверсии с прибавлением 1 (и наоборот также). Можете это проверить. Такая операция для байта есть на ASMе AVR. Для двухбайтовых этой командой не пользуются применяют как я описал.
Если Вы сложите -1 (0xff) и 1 (1), то получите искомое число 0. Если (-1) + (-1) = (-2) (0xfe). То же будет и с вычитанием. С умножением и делением всё несколько сложнее, но тоже можно на пальцах вычислить. Есть также особенности при работе с переносами.
По поводу порта F? - никаких особенностей нет. Я не слышал. Проверь может ф-ции альтернативные у пинов. Например JTAG. А какие проблемы у Вас???