Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: PC +/- …
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
Страницы: 1, 2, 3, 4
Oldring
Цитата(aaarrr @ Apr 14 2011, 01:29) *
Их всегда слишком много, даже если проект на две копейки.


Это сколько же у вас меток в одном модуле встречается? laughing.gif
26 букв английского алфавита плюс 10 цифр дают 35594 различные метки длиной до трех символов, что, как мне кажется, должно полностью удовлетворить любителей бессмыссленных меток. Вы не пробовали преодолеть границы сознания, расширив кругозор до 4 символов?

Цитата(Wise @ Apr 14 2011, 01:30) *
Олдринг, вы тоже хам и провокатор?


Я трачу своё время на обучение начинающего, поместившего свой вопрос в теме "в помощь начинающему". Вы против того, что я при этом еще и немного веселюсь?
aaarrr
Цитата(SysRq @ Apr 14 2011, 01:31) *
Ежели не трудно, приведите пример хороший такой ситуации. Хотелось бы все же понять логику такого подхода.

Пожалуйста:
Код
brne    PC + 2
rjmp    xxx

...

sbis    REG, BIT
rjmp    PC - 1

А еще короткие (на 3-5 строк) циклы и тому подобное.
Oldring
Цитата(aaarrr @ Apr 14 2011, 01:39) *
Пожалуйста:


Повбивав би cranky.gif
aaarrr
Цитата(Oldring @ Apr 14 2011, 01:40) *
Повбивав би cranky.gif

Надо полагать, ваше сознание не вмещает столь сложные конструкции, весельчак вы наш?
Wise
Цитата(Oldring @ Apr 14 2011, 04:37) *
Я трачу своё время на обучение начинающего, поместившего свой вопрос в теме "в помощь начинающему". Вы против того, что я при этом еще и немного веселюсь?

Вы думаете, что форум "для начинающих" - место для веселья?
Администрация, вероятно, вас не поймет.
А если вы продолжите - я сам лично, вас пошлю..
Надеюсь, в этом нет сомнений?
Oldring
Цитата(aaarrr @ Apr 14 2011, 01:43) *
Надо полагать, ваше расширенное сознание не вмещает столь сложные конструкции, весельчак вы наш?



Да, я не помню и не хочу помнить, как именно там работает PC. На ARM, например, счетчик команд работает совершенно иначе.
И интересно было бы посмотреть на вас, пишущего в таком же стиле на x86 ассемблере.

Цитата(Wise @ Apr 14 2011, 01:45) *
Вы думаете, что форум "для начинающих" - место для веселья?
Администрация, вероятно, вас не поймет.
А если вы продолжите - я сам лично, вас пошлю..
Надеюсь, в этом нет сомнений?


Я думаю, что веселиться можно везде - правила форума этого не запрещают.
Пошлете вы или нет - вот это мне совершенно безразлично, профи вы наш. laughing.gif
SysRq
Цитата(aaarrr @ Apr 14 2011, 01:39) *
Пожалуйста:
Плохой пример sad.gif Вполне стоит поставить метку, именем её показать чего же мы тут ждём в этом коде. С ветвлениями аналогично: указать, к примеру, причину, вызвавшую переход в ту или иную ветку. С циклами вообще печально, ибо при последующих правках вероятность случайно заложить ошибку в коде резко возрастает.
aaarrr
Цитата(Oldring @ Apr 14 2011, 01:45) *
Да, я не помню и не хочу помнить, как именно там работает PC.

Да просто он там работает, в том-то и дело.

Цитата(Oldring @ Apr 14 2011, 01:45) *
На ARM, например, счетчик команд работает совершенно иначе.

И что же, мне это как-то помешает писать, например:
Код
mov     lr, pc
bx      r0

?
Совсем даже наоборот.
Oldring
Цитата(aaarrr @ Apr 14 2011, 01:51) *
Да просто он там работает, в том-то и дело.


Главное, чтобы там он не думал.
aaarrr
Цитата(SysRq @ Apr 14 2011, 01:50) *
С ветвлениями аналогично: указать, к примеру, причину, вызвавшую переход в ту или иную ветку.

А если причина - выход за допустимые пределы команды branch? Собственно, такой пример я и показал.

Цитата(SysRq @ Apr 14 2011, 01:50) *
С циклами вообще печально, ибо при последующих правках вероятность случайно заложить ошибку в коде резко возрастает.

Я не утверждаю, что в циклах нужно использовать PC+/- (и не использую), но название метки там тоже в подавляющем большинстве случаев не нужно.
Wise
Цитата(Oldring @ Apr 14 2011, 04:47) *
Я думаю, что веселиться можно везде - правила форума этого не запрещают.
Пошлете вы или нет - вот это мне совершенно безразлично, профи вы наш. laughing.gif

Нет, не везде..
Тем более, если вас заранее попросили..

..Я вас попросил, потом предупредил..
Профи я ваш или нет, а пойдете на ... публично, со страшной силой.
Oldring
Цитата(aaarrr @ Apr 14 2011, 01:54) *
А если причина - выход за допустимые пределы команды branch? Собственно, такой пример я и показал.


Ну и напишите ту же метку с префиксом not например


Цитата(Wise @ Apr 14 2011, 01:54) *
Профи я ваш или нет, а пойдете на ... публично, со страшной силой.


Если вы готовы цинично и публично нарушить правила этого форума - вперед. Я сам с удовольствием зарепорчу ваш пост модераторам.
aaarrr
Цитата(Oldring @ Apr 14 2011, 01:57) *
Ну и напишите ту же метку с префиксом not например

Нет уж, спасибо - не хочу я на пустом месте плодить бездумную писанину.
Oldring
Цитата(aaarrr @ Apr 14 2011, 01:59) *
Нет уж, спасибо - не хочу я на пустом месте плодить бездумную писанину.


Да пожалуйста. Надеюсь, мне никогда не придется читать ваш код с подобными переходами. А сами себе делайте что угодно.
SysRq
Цитата(aaarrr @ Apr 14 2011, 01:54) *
А если причина - выход за допустимые пределы команды branch?
Очень натянуто как-то. При наличии команды пропуска следующей команды, срабатывающей при выполнении заданного условия, и, поскольку веток две, всегда можно сделать переход жестко, безусловными переходами.
aaarrr
Цитата(Oldring @ Apr 14 2011, 02:01) *
Надеюсь, мне никогда не придется читать ваш код с подобными переходами.

Должен вас обрадовать - это крайне маловероятно.

Цитата(Oldring @ Apr 14 2011, 02:01) *
А сами себе делайте что угодно.

Спасибо, дохтур.
Oldring
Цитата(SysRq @ Apr 14 2011, 02:06) *
Очень натянуто как-то. При наличии команды пропуска следующей команды, срабатывающей при выполнении заданного условия, и, поскольку веток две, всегда можно сделать переход жестко, безусловными переходами.


Не всегда, но это не аргумент пользоваться такими "упрощениями".
aaarrr
Цитата(SysRq @ Apr 14 2011, 02:06) *
При наличии команды пропуска следующей команды, срабатывающей при выполнении заданного условия...

Какой такой команды? Для замены BRGE что предложите?
SysRq
Цитата(Oldring @ Apr 14 2011, 02:07) *
Не всегда...
Пример, пример давайте! Тема предметная, без примеров начинаются фломастеры на вкус и цвет rolleyes.gif
Oldring
Цитата(aaarrr @ Apr 14 2011, 02:07) *
Спасибо, дохтур.



Я не "дохтур".
Но вас я уже по этой истории конечно уже запомнил как человека, отстаивающего извращения в программировании.
Wise
Цитата(Oldring @ Apr 14 2011, 04:57) *
Если вы готовы цинично и публично нарушить правила этого форума - вперед. Я сам с удовольствием зарепорчу ваш пост модераторам.

Я-то готов, всегда.. когда не вижу других способов образумить..
Что вы провокатор - общеизвестно..
Флудите здесь который пост, да и нагло..

..Завтра днем зайду, если такая хрень продолжится - либо обматерю, либо обращусь к администрации.
Дерзайте..
rx3apf
Цитата(SysRq @ Apr 14 2011, 02:06) *
Очень натянуто как-то. При наличии команды пропуска следующей команды, срабатывающей при выполнении заданного условия, и, поскольку веток две, всегда можно сделать переход жестко, безусловными переходами.

Где в AVR команда пропуска по условию ? По битам в i/o или в регистрах - да. А вот по битам в регистре состояния - облом. Вообще, IMHO, глупо было выносить SREG из зоны доступности sbis/sbic - в PIC16 этот момент гораздо приятнее...
aaarrr
Цитата(Oldring @ Apr 14 2011, 02:12) *
Я не "дохтур".

А похожи.

Цитата(Oldring @ Apr 14 2011, 02:12) *
Но вас я уже по этой истории конечно уже запомнил как человека, отстаивающего извращения в программировании.

Ну, если включать иногда на секунду мозг считается извращением, то я бессилен что-либо возразить.
Oldring
Цитата(SysRq @ Apr 14 2011, 02:11) *
Пример, пример давайте! Тема предметная, без примеров начинаются фломастеры на вкус и цвет rolleyes.gif


Уже написали. brge/brlt.

Цитата(Wise @ Apr 14 2011, 02:13) *
..Завтра днем зайду


Приятных вам снов.

Цитата(aaarrr @ Apr 14 2011, 02:15) *
Ну, если включать иногда на секунду мозг считается извращением, то я бессилен что-либо возразить.


Нет, "включать мозги" как раз извращением не считается.
Извращение - это думать, что включаешь мозги, когда на самом деле - нет.
aaarrr
Цитата(Oldring @ Apr 14 2011, 02:21) *
Уже написали. brge/brlt.

Даже хуже. Как верно заметил rx3apf, SREG не попадает в область IO, соответственно, никакие из его флагов не доступны командам sbic/sbis.
Oldring
Цитата(aaarrr @ Apr 14 2011, 02:29) *
Даже хуже. Как верно заметил rx3apf, SREG не попадает в область IO, соответственно, никакие из его флагов не доступны командам sbic/sbis.



Даже хуже, но это всё равно не аргумент, чтобы заниматься подобной хакерней.
SysRq
Цитата(rx3apf @ Apr 14 2011, 02:14) *
По битам в i/o или в регистрах - да. А вот по битам в регистре состояния - облом.
Да. Но команда IN флаги не меняет, насколько я помню.

--

Цитата(aaarrr @ Apr 14 2011, 02:11) *
Для замены BRGE что предложите?
Осмысленные метки, я их изначально предлагаю biggrin.gif Ежели доводить до абсурда, то разложить на составляющие результат BRGE тоже возможно.

Цитата(aaarrr @ Apr 14 2011, 02:15) *
Ну, если включать иногда на секунду мозг считается извращением...
Вряд ли извращением, конечно, но неоправданным риском точно. Доверять сие стоит лишь транслятору с ЯВУ, т.к. он не ошибается.
aaarrr
Цитата(Oldring @ Apr 14 2011, 02:33) *
Даже хуже, но это всё равно не аргумент, чтобы заниматься подобной хакерней.

Нет, батенька, не тянут такие конструкции на "хак": слишком уж просто и очевидно.

P.S. Блестящий, остроумнейший неологизм! Примите мои искренние поздравления, маэстро.

Цитата(SysRq @ Apr 14 2011, 02:44) *
Да. Но команда IN флаги не меняет, насколько я помню.

Код
in      reg, SREG
sbrc    reg, BIT
rjmp    xxx

Несколько вычурно, не находите? Да и с GE/LT все равно облом.

Цитата(SysRq @ Apr 14 2011, 02:44) *
Вряд ли извращением, конечно, но неоправданным риском точно. Доверять сие стоит лишь транслятору с ЯВУ, т.к. он не ошибается.

Объясните мне, где я рискую ошибиться в такой конструкции:
Код
brhs    PC + 2
rjmp    xxx
Oldring
Цитата(aaarrr @ Apr 14 2011, 02:50) *
Нет, батенька, не тянут такие конструкции на "хак": слишком уж просто и очевидно.


Именно на хак и тянет.
Экономия в набивании нескольких символов за счет того, что повышается риск ошибоок при модификации программы и ухудшает видимость структуры программы. Метки, кстати, служат еще одной важной функции - показывают, куда может быть передано управление. Соответственно, иногда только текстовым поиском можно легко найти все места, откуда осуществляется переход на помеченную инструкцию.

Цитата(aaarrr @ Apr 14 2011, 02:50) *
Объясните мне, где я рискую ошибиться в такой конструкции:
Код
brhs    PC + 2
rjmp    xxx


На первый взгляд, конечно, кажется, что "brhs PC + 2" текстуально полностью эквивалентно скипу следующего rjmp, если применять единообразно. Но это неверно. Помню, как-то ради быстрого перехода на больший кристалл заменил в проекте все rjmp и rcall на jmp и call текстовой заменой wink.gif

Цитата(SysRq @ Apr 14 2011, 02:44) *
Доверять сие стоит лишь транслятору с ЯВУ, т.к. он не ошибается.


Все врут. laughing.gif

В моей практике было несколько случаев, когда аккуратное расследование показывало, что наврал именно транслятор. Даже такой хорошо известный и очень надежный транслятор, как MSVC 6.0
SysRq
Цитата(aaarrr @ Apr 14 2011, 02:50) *
Несколько вычурно, не находите?
Нахожу, конечно же. Однако, информативность кода та же, что без меток, но меньше шансов ляпнуть ошибку.

Цитата(aaarrr @ Apr 14 2011, 02:50) *
Да и с GE/LT все равно облом.
Нет, не облом, если декомпозировать команду. Но выглядеть будет крайне идиотски, не спорю.

Цитата(aaarrr @ Apr 14 2011, 02:50) *
Объясните мне, где я рискую ошибиться в такой конструкции:
Код
brhs    PC + 2
rjmp    xxx
В процессе правки заменить rjmp на jmp, потому что код разросся (а правили сложно, долго, и где-то много ниже этого вот места), и компилятор ругался на невозможность relative jump. Ошибка по невнимательности. Человеческий фактор.
aaarrr
Цитата(Oldring @ Apr 14 2011, 03:06) *
Именно на хак и тянет.
Экономия в набивании нескольких символов за счет того, что повышается риск ошибоок при модификации программы и ухудшает видимость структуры программы. Метки, кстати, служат еще одной важной функции - показывают, куда может быть передано управление. Соответственно, иногда только текстовым поиском можно легко найти все места, откуда осуществляется переход на помеченную инструкцию.

Какой текстовый поиск? Речь идет об очевидных конструкциях. Ну куда еще может быть передано управление командой "rjmp PC - 1", кроме как на предыдущую?

Цитата(SysRq @ Apr 14 2011, 03:07) *
Нахожу, конечно же. Однако, информативность кода та же, что без меток, но меньше шансов ляпнуть ошибку.

Информативность много ниже. Я уж не говорю о потерянном времени и затраченном регистре.

Цитата(SysRq @ Apr 14 2011, 03:07) *
Нет, не облом, если декомпозировать команду. Но выглядеть будет крайне идиотски, не спорю.

Ну, так можно и до виртуальной машины дойти потихоньку.

Цитата(Oldring @ Apr 14 2011, 03:06) *
На первый взгляд, конечно, кажется, что "brhs PC + 2" текстуально полностью эквивалентно скипу следующего rjmp, если применять единообразно. Но это неверно. Помню, как-то ради быстрого перехода на больший кристалл заменил в проекте все rjmp и rcall на jmp и call текстовой заменой wink.gif

Цитата(SysRq @ Apr 14 2011, 03:07) *
В процессе правки заменить rjmp на jmp, потому что код разросся (а правили сложно, долго, и где-то много ниже этого вот места), и компилятор ругался на невозможность relative jump. Ошибка по невнимательности. Человеческий фактор.

Если уж мы имеем дело с ассемблером, то человеческий фактор и так проявляется на каждом шагу. В конце концов, можно и метку в процессе copy-paste воткнуть не туда. Поэтому элементарную внимательность никто не отменяет.
SysRq
Цитата(aaarrr @ Apr 14 2011, 03:29) *
В конце концов...
Класс и цена ошибки другие. Время и усилия на поиск и устранения больше, последствия намного более непредсказуемые, поддерживать код сложнее.
Не вижу ничего хорошего в таком подходе, эх sad.gif
aaarrr
Цитата(SysRq @ Apr 14 2011, 03:58) *
Класс и цена ошибки другие. Время и усилия на поиск и устранения больше, последствия намного более непредсказуемые, поддерживать код сложнее.
Не вижу ничего хорошего в таком подходе, эх sad.gif

Я далек от того, чтобы вводить классификацию ошибок. А время на поиск и устранение вообще трудно предсказать. Вот попробуйте найти ошибку в такой конструкции:
Код
    ldi     r16, 0
    sbrс    r17, 2
    ldi     r16, 1

Пример вполне себе из жизни. Не дословно, конечно, но изюминка сохранена.
SysRq
Цитата(aaarrr @ Apr 14 2011, 04:21) *
Вот попробуйте найти ошибку...
Чесгря, шрифты ошибку сдали сразу (сглаживание не работает на латинице в [сode]). Но, однако, разве компилятор не предупреждает о подобном?
aaarrr
Цитата(SysRq @ Apr 14 2011, 04:48) *
Но, однако, разве компилятор не предупреждает о подобном?

Не знаю, как на новых, но аврасм из студии 3.56 даже не морщится.
Да со шрифтами тогда мне так не повезло, естественно biggrin.gif
forever_student
Цитата(Wise @ Apr 14 2011, 00:37) *
Вы с чего взяли, что я не читал дэйтшиты и книги Евстифеева?
На чем такая уверенность основана, на том, что я задал вопрос?

Sorry, если обидел... Не хотел.
Не уверенность, а , скорее, удивление ... не тому, что задан вопрос, а
какой вопрос задан.

Цитата(Wise @ Apr 14 2011, 00:37) *
..А книг, могу еще штук 16 перечислить, хотите?

Смысл? Их читать надо rolleyes.gif

Цитата(Wise @ Apr 14 2011, 00:37) *
..Я сказал, что выложу все свои "фи" атмегам, а их много накопилось, и выложу.
Но, сейчас я занят. Все позже.. rolleyes.gif

Было бы очень интересно.
demiurg_spb
Цитата(aaarrr @ Apr 14 2011, 04:21) *
Я далек от того, чтобы вводить классификацию ошибок. А время на поиск и устранение вообще трудно предсказать. Вот попробуйте найти ошибку в такой конструкции:
Код
    ldi     r16, 0
     sbrс    r17, 2
     ldi     r16, 1

Пример вполне себе из жизни. Не дословно, конечно, но изюминка сохранена.

Что-то не прожевать изюминку. Не вижу ничего криминального.
Колитесь, в чём фишкаsm.gif
SysRq
Цитата(demiurg_spb @ Apr 14 2011, 09:01) *
Колитесь, в чём фишкаsm.gif
Не можем. Топикстартер просил ни слова о том, что тут только кажется таковым, создавая фишку biggrin.gif
demiurg_spb
Так ведь интересно!
ILYAUL
Да интересно. Хоть я понял в чём ошибка решил проверить , а поймает её студия и получил результат не ловит. Хотя шрифт тут же ее выдал
Rst7
QUOTE (rx3apf @ Apr 14 2011, 01:14) *
Где в AVR команда пропуска по условию ? По битам в i/o или в регистрах - да. А вот по битам в регистре состояния - облом. Вообще, IMHO, глупо было выносить SREG из зоны доступности sbis/sbic - в PIC16 этот момент гораздо приятнее...



QUOTE (aaarrr @ Apr 14 2011, 01:29) *
Даже хуже. Как верно заметил rx3apf, SREG не попадает в область IO, соответственно, никакие из его флагов не доступны командам sbic/sbis.



QUOTE (Oldring @ Apr 14 2011, 01:33) *
Даже хуже, но это всё равно не аргумент, чтобы заниматься подобной хакерней.



Простите, господа, но не ожидал я от Вас такого загона. Скажите, какая разница между SBxx (выполнение следующей команды через такт или невыполнение стоимостью 2 такта) и BRxx (с крайним случаем перехода через команду - выполнение следующей команды через такт (переход не выполняется) или невыполнение при помощи перехода, а не пропуска, тоже ценой 2 такта)?
SysRq
Цитата(ILYAUL @ Apr 14 2011, 11:17) *
...решил проверить , а поймает её студия и получил результат не ловит.
У меня противоположный результат (проверил только вот; дома AVRStudio не было на ПК). AVRASM: AVR macro assembler 2.1.42 (build 1796 Sep 15 2009 10:48:36) успешно обнаруживает и соответствующим образом ругается.

--

Цитата(Rst7 @ Apr 14 2011, 11:18) *
Скажите, какая разница...
В первом случае отсутствие необходимости указать куда переходить. Метка. Суть темы, собственно.
zombi
Цитата(Wise @ Apr 14 2011, 00:37) *
..Может быть, я и программист в кавычках, как вы отметили, однако, я не просил вас давать оценку моему уровню.

Под "программистами" я не имел ввиду конкретно Вас, сорри если Вы приняли на свой счет.
Цитата(Wise @ Apr 14 2011, 00:37) *
Для симметрии, хотите услышать мою оценку вашего уровня? У меня сложилось некоторое мнение, на основании ваших постов здесь..

Представляю оценку biggrin.gif . Стыдно признаться, но я ни разу не использовал мнемонику PC+/-7.
Цитата(Wise @ Apr 14 2011, 00:37) *
Еще раз пост Ark-а перечитайте, он хорошо поясняет причину, по которой задан вопрос в теме.
Возможно, вы не поняли..

Возможно и я не понял.

Но я всетаки хочу разобраться и понять вконце концов суть вашего вопроса.
Попробую сформулировать по другому:
Вы утверждаете что ATMELовские трансляторы не правильно компилируют некоторые команды у которых аргументом является програмный счётчик?
rx3apf
Цитата(Rst7 @ Apr 14 2011, 11:18) *
Простите, господа, но не ожидал я от Вас такого загона. Скажите, какая разница между SBxx (выполнение следующей команды через такт или невыполнение стоимостью 2 такта) и BRxx (с крайним случаем перехода через команду - выполнение следующей команды через такт (переход не выполняется) или невыполнение при помощи перехода, а не пропуска, тоже ценой 2 такта)?

Разница принципиальная - с тупого конца разбивать, или с острого ! Присоединяйтесь к нашей партии !!! wink.gif
Rst7
QUOTE
В первом случае отсутствие необходимости указать куда переходить. Метка. Суть темы, собственно.


Нет. Суть темы - явно в кривых руках топикстартера. А это локальный оффтопик про якобы "говносистему команд". Причем, от профессионалов, что и удивляет.

QUOTE
Разница принципиальная - с тупого конца разбивать, или с острого !


Ах в этом смысле biggrin.gif
Oldring
Цитата(Rst7 @ Apr 14 2011, 11:18) *
Скажите, какая разница между SBxx (выполнение следующей команды через такт или невыполнение стоимостью 2 такта) и BRxx (с крайним случаем перехода через команду - выполнение следующей команды через такт (переход не выполняется) или невыполнение при помощи перехода, а не пропуска, тоже ценой 2 такта)?


Текстуальная. Что мы и обсуждаем.
Сергей Борщ
За всю жизнь переход без метки использовал только один раз:
CODE
        .section .drv.vectors,"ax",@progbits

        RJMP    ColdStart
        RJMP    . + 0x800 - 2      ; INT0_vect, redirect to application section
        RJMP    . + 0x800 - 2      ; INT1_vect, redirect to application section
        RJMP    . + 0x800 - 2      ; TIMER2_COMP_vect, redirect to application section
        RJMP    . + 0x800 - 2      ; TIMER2_OVF_vect, redirect to application section
        RJMP    TX_START_Handler   ; TIMER1_CAPT_vect
        ........
В остальных случаях хватало локальных и временных меток потому что гнутый асм их поддерживает. А студийный кроме них не поддерживает еще кучу всего и за это идет лесом сразу.
Rst7
QUOTE
Текстуальная.


Да ну? Напомню начальный вброс:

QUOTE
Вообще, IMHO, глупо было выносить SREG из зоны доступности sbis/sbic - в PIC16 этот момент гораздо приятнее...
Oldring
Цитата(Rst7 @ Apr 14 2011, 11:48) *
Да ну? Напомню начальный вброс:


Не, фразой "даже хуже" обсуждалось, что brxx нельзя заменить на аналог sbrc без метки и хака с PC.
rx3apf
Цитата(Rst7 @ Apr 14 2011, 11:48) *
Да ну? Напомню начальный вброс:

Да ладно, грызня была уже до этого. Доступ к SREG разнообразил бы ассортимент команд, не плодя лишние опкоды, но и только. А основной вопрос - кошерно ли использовать PC в команде перехода. При наличии пропусков по состоянию бита в SREG во многих случаях такое и не потребовалось, но не всегда. В том и вопрос, что нагляднее - PC+2 или лишняя метка.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.