Цитата(Rst7 @ Apr 14 2011, 11:57)

Система команд в текущем случае эффективна и не избыточна. Причем, именно вкупе с реализацией адресного пространства - доступ к SREG только через IN/OUT, без битовой возни. А если SREG будет доступен SBIC/SBIS, то это будет избыточность. Лучше туда что-то полезное положить.
Но ведь не кладут. И, вдобавок, при расширении периферии, все ползет, хорошо, что хоть порты на месте. Система команд, кстати, отягощена лишними мнемокодами, имеющими тот же опкод (к вопросу о "неизбыточности"). А пропуск по биту в SREG от перехода по условию все же различается - в первом случае по желанию можно в обоих ветках идти сколь угодно далеко. Я ведь написал "IMHO", и при нем остаюсь - этот момент _мне_ представляется непродуманным. Но речь шла совершенно о другом.
Цитата
А вообще, если свербит, и мозг не умеет понимать сразу с листа, то сделайте макрос, назовите его SKIP xx, где xx - условие. Ну или еще как.
И вот КАК это сделать ? Чтобы именно пропускал _одну_ последующую команду ? Препроцессор написать ?
Цитата(Oldring @ Apr 14 2011, 12:00)

Основной обсуждаемый вопрос - кошерно ли использовать PC в ассемблерном тексте, описывающем команду перехода, программисту явно, или следует обязательно положиться в вычислении смещения на ассемблер?

Нет. Пока я вижу, что _любое_ использование PC вызывает у оппонентов отторжение, переходящее в классовую ненависть. PC полностью вручную никто не считает, а вопрос, хорошо ли, что смещение оперирует дискретами PC а не длительностью конкретной цепочки команд, затерялся где-то в начале обсуждения, да так тихо и загнулся. И был лишь поводом для начала боевых действий.
Цитата
PS Основной вопрос ТС: "почему мои любимые пиковские хаки не работают у меня на AVR, ох, как я ненавижу, как я ненавижу..." Вопрос настоящего инженера, бесспорно.

Это он с MSP430 не работал...