Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: PC +/- …
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
Страницы: 1, 2, 3, 4
Wise
..Борюсь с атмегами.. о, как они мне не нравятся.. ну всё, буквально, претит.. rolleyes.gif

..Вопрос такой.
У PIC-ов есть возможность написать: гоу ту доллар +/-, скажем, 7.
И программа перейдет по указанному адресу.
У атмег, аналогичный вариант выглядит, как, PC +/- 7.
Как бы, это работает. Но, недавно, что-то не пошло, пришлось по фрагментам в студии рассматривать. И обнаружил, что не прыгает оно на семь указанных строчек, а прыгает на шесть. А в других случаях прыгало..
Если указать восемь, будет прыгать на семь.
..Это глюк такой или есть нюансы, которых не знаю?
..С PIC-ами таких проблем не было.

P.S. Настоятельная просьба ко всем, решившим сюда ответить: ни слова о Си. О его достоинствах, преимуществах и т. д. Ни слова! Или сразу закрою тему.
defunct
Цитата(Wise @ Apr 11 2011, 20:44) *
Или сразу закрою тему.

А про
LabelXX:
сказать можно?

По теме, длину команды учитываете? rjmp - одно слово, jmp - два.
Соответственно
rjmp PC + 7
jmp PC + 7
дадут разный результат, jmp прыгнет как раз на 6.
Палыч
Цитата(Wise @ Apr 11 2011, 21:44) *
... обнаружил, что не прыгает оно на семь указанных строчек, а прыгает на шесть. А в других случаях прыгало.. Если указать восемь, будет прыгать на семь.
Цифирка эта - число слов, а команда (ассемблерная строка) может занимать в памяти не одно слово. Вы это учитываете?
Wise
Цитата(defunct @ Apr 12 2011, 01:02) *
По теме, длину команды учитываете? rjmp - одно слово, jmp - два.
Соответственно
rjmp PC + 7
jmp PC + 7
дадут разный результат, jmp прыгнет как раз на 6.

Нет, не учитываю. В той атмеге, с которой сражаюсь, только команда rjmp.
А еще использовал команды типа brne, breq, brsh, brlo.
Вы не могли бы мне растолковать, что я должен учитывать?
..В описании команд не нашел понятие "число слов", там есть "машинные циклы".
Я-то считал, что, просто, должно отсчитать семь указанных строчек..

..Потому что, если смотреть все строчки, через которые оно должно перепрыгнуть, вариантов много может быть, за сколько тактов они исполняются.
И тогда, проще уже поставить метку. Но, с PIC-ами у меня ни разу такой хни не возникало. И там я никогда не подсчитывал никакие слова.. rolleyes.gif

..Можно ли сформулировать общее правило для подсчета, куда скакнет программа, поскольку, такая непредсказуемость обескураживает, а повсеместно ставить метки.. конечно, придется, но это только углубит "симпатии" к AVR.

..И еще, вопрос про АЦП. Есть программа, у которой два кольца. То есть, она может ходить по одному кругу, либо, по другому, в зависимости от ситуации. В обоих кругах, в числе прочего, оцифровывается одно и то же напряжение аккумуляторной батареи.
..Так вот! Результаты оцифровки разные, в каждом кругу, отличаются на 0,5--0,7 вольта! Хренею от атмеги.. rolleyes.gif
Не могу предположить, что здесь не так написано - совершенно одинаковые фрагменты программы в обоих случаях.
..Пока что, прагматично на это плюнул, еще не столь важно, но, в принципе, как же так.. rolleyes.gif
нечитатель
http://electronix.ru/forum/index.php?showt...st&p=896052

Цитата(Wise @ Apr 11 2011, 22:10) *
В описании команд не нашел понятие "число слов", там есть "машинные циклы".
LDS – Load Direct from Data Space... Words: 2 (4 bytes)
Цитата
отсчитать семь указанных строчек..
Адресов в памяти. Микросхема не умеет читать текст с экрана.
Цитата
если смотреть все... проще уже поставить метку.
Проще. И надёжнее. И читаемее.
Зато именованную метку нельзя в макросе. Который более чем один раз используется.
Зато для короткого перехода посчитать строчки адреса быстрее, чем напечатать MoePonyatnoeIUnikalnoeImyaMetki_nomer117.
Цитата
с PIC-ами у меня ни разу
Любая инструкция занимала в памяти ровно одно слово.
Цитата
общее правило для подсчета
Atmel AVR Instruction Set.
При внимательном рассмотрении понимается, что количество слов в каждой инструкции необходимо и достаточно для практического применения. И что это всё зубрить наизусть не обязательно, когда логика (что может поместиться в 16 бит opcode и что не может).

Цитата
И еще, вопрос про АЦП

http://electronix.ru/forum/index.php?showt...st&p=899169
http://electronix.ru/forum/index.php?showt...st&p=913607
alexeyv
Цитата
Зато именованную метку нельзя в макросе. Который более чем один раз используется.


Да ну?!?!
Код
.macro        read_eeprom
ee_r:    sbic    eecr,eewe
        rjmp    ee_r
        out        eearl,@1l
        out        eearh,@1h
        sbi        eecr,eere
ee_r1:    sbic    eecr,eewe
        rjmp    ee_r1
        in        @0,eedr
.endmacro
;Example ->    read_eeprom DAT_reg ,z


или ee_r1 и ee_r это не метки?
zombi
Цитата(Wise @ Apr 11 2011, 21:44) *
У атмег, аналогичный вариант выглядит, как, PC +/- 7.

Не могу понять о какой команде речь. Можно пример?
demiurg_spb
Цитата(zombi @ Apr 12 2011, 13:05) *
Не могу понять о какой команде речь. Можно пример?
Уже был:
Цитата(defunct @ Apr 11 2011, 22:02) *
rjmp PC + 7
jmp PC + 7
ИМХО писать программу с таким способом перехода - моветон (за очень и очень редким исключением).
Метки помогут отцу русской демократии.
Код
    ldi r16,5
loop:
    ....
    dec r16
    brne loop
И никаких запар с изменением размера тела цикла...
Wise
Цитата(demiurg_spb @ Apr 12 2011, 16:45) *
ИМХО писать программу с таким способом перехода - моветон (за очень и очень редким исключением).
Метки помогут отцу русской демократии.

..Метки отцу помогают..
Он ставит их в значимых местах программы.. и так, кое-где.. rolleyes.gif

..А вот "пи си плюс-минус" - очень удобно для тактических коротких переходов на обозримых кусках текста, моветон это или нет..
Потому что не наметишься.. если около сотни или больше всяких передвижений..

..А вообще, атмега - редкое фуфло..
Я как-нибудь соберу в кучу все свои претензии пользователя, да и выложу..
Пусть им (атмеговцам) будет стыдно.. rolleyes.gif
zombi
Цитата
rjmp PC + 7
jmp PC + 7

Этож нафига такое нужно!?
Всю жизнь метки использую, и никаких проблем, прыгает всегда куда нужно biggrin.gif
Палыч
Цитата(Wise @ Apr 12 2011, 14:04) *
Я как-нибудь соберу в кучу все свои претензии пользователя, да и выложу..
Пусть им (атмеговцам) будет стыдно..
Подозреваю, что стыдно им не будет. У них есть хорошая "отмазка": система команд оптимизированна под трансляторы с ЯВУ...
_Pasha
Цитата(zombi @ Apr 12 2011, 13:22) *
Этож нафига такое нужно!?
Всю жизнь метки использую, и никаких проблем, прыгает всегда куда нужно biggrin.gif

Ага, в макросах sm.gif - особенно! Много же там локальных меток можно наставить!
Атмеловские макросредства - это чудо структурно-прикладной лингвистики sm.gif

Цитата(Wise @ Apr 12 2011, 13:04) *
..А вообще, атмега - редкое фуфло..

и именно поэтому они дерут пики 18-е по скорости выполнения умножения 16*16 бит в 2 раза, и даже в 4 - на 20МГц biggrin.gif
aaarrr
Цитата(demiurg_spb @ Apr 12 2011, 13:45) *
ИМХО писать программу с таким способом перехода - моветон (за очень и очень редким исключением).
Метки помогут отцу русской демократии.

Спрошу интереса ради: какой-нибудь аврасм поновее не поддерживает ли временные метки?
_Pasha
Цитата(aaarrr @ Apr 12 2011, 13:41) *
Спрошу интереса ради: какой-нибудь аврасм поновее не поддерживает ли временные метки?

Вроде нет до сих пор. Но могу ошибаться: после перехода на гнутый асм 3 года назад, как-то поотстал от шедевров.
GetSmart
Вообще, не знаешь архитектуру = кривые руки.
defunct
Цитата(Wise @ Apr 12 2011, 13:04) *
..А вообще, атмега - редкое фуфло..

Точно, поэтому бросьте затею с mega и работайте дальше с нетрыньдовым pic'ом у него команд меньше и все одной длины.


Цитата
Ага, в макросах - особенно! Много же там локальных меток можно наставить!

Любая метка объявленная внутри макроса становится локальной. Поверено.
Транслятор добавляет к имени метки @<имя макроса>@<уникальное число>.

Цитата
Спрошу интереса ради: какой-нибудь аврасм поновее не поддерживает ли временные метки?

уникальности внутренних меток можно добиться если не скупиться на длину оной и выработать правило для отличия внутренних от внешних меток.
Как для себя __ - значит внутренняя, потом первым словом копируется имя внешней метки и через двойное подчеркивание пишу имя локальной метки
Код
func1:

  ...
__func1__do_this:
  ...

__func1__do_that:
   ..
_Pasha
Цитата(defunct @ Apr 12 2011, 15:13) *
Любая метка объявленная внутри макроса становится локальной. Поверено.

С какой версии?
defunct
Цитата(_Pasha @ Apr 12 2011, 15:17) *
С какой версии?

AVRASM: AVR macro assembler 2.1.42 (build 1796 Sep 15 2009 10:48:36)
Да и в более старых так было.

"С" какой именно версии - не отслеживал, но предположу что с очень древней, потому как, как начал пользовать макросы, так они себя и вели и ничего не менялось.
_Pasha
Цитата(defunct @ Apr 12 2011, 15:22) *
Да и в более старых так было.

Наверняка оно в старых не работало. По этой причине макросы 16/32 битных операций образца 1999 - 2000 года были написаны без меток, с РС+N, и далее вопрос больше не подымался. Узнаю все больше нового.
Wise
Цитата(defunct @ Apr 12 2011, 19:13) *
Точно, поэтому бросьте затею с mega и работайте дальше с нетрыньдовым pic'ом у него команд меньше и все одной длины.

Да рад бы.. rolleyes.gif

..А если написал, что атмега - фуфло, значит, есть аргументы.
aaarrr
Цитата(defunct @ Apr 12 2011, 16:13) *
уникальности внутренних меток можно добиться если не скупиться на длину оной и выработать правило для отличия внутренних от внешних меток.
Как для себя __ - значит внутренняя, потом первым словом копируется имя внешней метки и через двойное подчеркивание пишу имя локальной метки

В том-то и дело, что уникальность эта вкупе с чрезмерной длиной даром не нужна, только текст засоряет.
Куда как удобнее было бы писать:
Код
0
    ...
    dec     r16
    brne   %b0
    ...
    brcs    %f0
    ...
0

zombi
Интересно как сие решается у других процов (длина команды у которых может быть разной)?
_Pasha
Цитата(zombi @ Apr 12 2011, 17:51) *
Интересно как сие решается у других процов (длина команды у которых может быть разной)?

Например, mlasm был такой, см. стр.60
zombi
Цитата(_Pasha @ Apr 12 2011, 19:01) *
Например, mlasm был такой, см. стр.60

Прикольно, но как по мне, уж очень морочливо.
Проще уж метку поставить.
Тем более если
Цитата(defunct)
Любая метка объявленная внутри макроса становится локальной. Поверено.

Ну и навсяк случ скачать последнюю версию компилятора.
_Pasha
Вообще- то по правильному это
Цитата
LOCAL <список-локальных-меток>

внутри макроса, и ессно до их использования.
Тем самым пересечение имен исключается на корню
ARV
Цитата(Wise @ Apr 12 2011, 18:08) *
..А если написал, что атмега - фуфло, значит, есть аргументы.
блин, а мужики-то и не знают... biggrin.gif
GetSmart
Да, да. Атмегой плохо орехи колоть получается sm.gif
demiurg_spb
Цитата(aaarrr @ Apr 12 2011, 14:41) *
Спрошу интереса ради: какой-нибудь аврасм поновее не поддерживает ли временные метки?
За поновее не скажу, ибо с AVRASM лет 8 назад завязал, окромя крайне редких gnu-тых макро-асм вставок.
ARV
Цитата(demiurg_spb @ Apr 13 2011, 09:12) *
За поновее не скажу, ибо с AVRASM лет 8 назад завязал, окромя крайне редких gnu-тых макро-асм вставок.
вроде твердо помню: не поддерживал атмеловский ассемблер локальных меток в макросах... но вот под впечатлением от прочитанной темы взял и попробовал: гад, поддерживает! с какой именно версии стал поддерживать - не выяснил, но в ассемблерах (1 и 2 версий), идущих со студией 4.18 все метки в макросах являются локальными... в дизассемблированном коде переходы делаются правильно, ни ошибок ни варнингов о переопределении меток не выдается. чудеса! wacko.gif
zombi
Цитата(ARV @ Apr 13 2011, 10:19) *
вроде твердо помню: не поддерживал атмеловский ассемблер локальных меток в макросах...

С чего Вы это взяли???

Специально тест написал:
CODE
;
.listmac
;--------------------------
.MACRO AAA
RJMP M2
M0: RJMP ME
M1: RJMP M0
M2: NOP
RJMP M1
ME: NOP
NOP
.ENDM
;--------------------------
;
CLI
RJMP RESET

.ORG $100

RESET: AAA
AAA
AAA
RJMP RESET


и странслировал двумя новыми AVRASMами:
Цитата(Atmel)
AVRASM: AVR macro assembler 1.77.3 (Nov 3 2009 14:11:39)
AVRASM: AVR macro assembler 2.1.42 (build 1796 Sep 15 2009 10:48:36)

и даже откопал 1996 года, куда уже старше biggrin.gif
Цитата(Atmel)
AVRASM: AVR macro assembler version 1.03a (Aug 26 1996 01:03:00)

ВСЕ НОРМАЛЬНО. ВСЕ МЕТКИ ЛОКАЛЬНЫ. НИКАКИХ ЕРРОРОВ!
@Ark
Цитата
Интересно как сие решается у других процов (длина команды у которых может быть разной)?

Очень просто все решается в нормальных процессорах. Во время выполнения текущей команды программный счетчик всегда смотрит на следующую команду. И это не зависит от длины текущей команды и ее функции (даже если это ветвление). Считается, что на момент выполнения выборка и декодирование команды уже произведены, и программный счетчик установлен уже на следующую (по естественному порядку выполнения) команду.
Если PC используется в качестве аргумента команды, то нужно считать, что он принимает именно такое значение.
Нормальные ассемблеры также принимают такое соглашение по умолчанию.
P.S. Естественно, что за всех производителей процессоров и всех писателей ассемблеров я ответить не могу. laughing.gif
zombi
Цитата(@Ark @ Apr 13 2011, 16:52) *
Считается, что на момент выполнения выборка и декодирование команды уже произведены, и программный счетчик установлен уже на следующую (по естественному порядку выполнения) команду.

А разве бывает по другому?
Я так понял что речь о том что при выполнении команды
RJMP PC+X
происходит изменение PC на величину X адресов а "программистам" хотелось бы на X команд biggrin.gif
и если все команды занимают один адрес то все красиво, а вот если команды могут занимать более одного адреса вот тут-то и начинются чудеса у тех кто ленится метки использовать biggrin.gif biggrin.gif biggrin.gif
SysRq
Нефиг писать на ассемблере там где он не нужен.

Цитата(Wise @ Apr 11 2011, 21:44) *
...ни слова о Си. О его достоинствах, преимуществах и т. д. Ни слова! Или сразу закрою тему.
Давно пора.
zombi
Цитата(Wise @ Apr 12 2011, 14:04) *
..А вообще, атмега - редкое фуфло..
Я как-нибудь соберу в кучу все свои претензии пользователя, да и выложу..
Пусть им (атмеговцам) будет стыдно.. rolleyes.gif

Цитата(SysRq @ Apr 13 2011, 18:11) *
Цитата(Wise @ Apr 11 2011, 21:44) *
...ни слова о Си. О его достоинствах, преимуществах и т. д. Ни слова! Или сразу закрою тему.
Давно пора.

И что, так и будем дальше в неведении прозибать biggrin.gif
SysRq
Цитата(zombi @ Apr 13 2011, 19:15) *
И что, так и будем дальше в неведении прозибать biggrin.gif
Здесь одно из двух:

Цитата(Wise @ Apr 11 2011, 21:44) *
..Это глюк такой или есть нюансы, которых не знаю?

И очевидный ответ:
Цитата(GetSmart @ Apr 12 2011, 15:55) *
...не знаешь архитектуру = кривые руки.
_Pasha
Цитата(zombi @ Apr 13 2011, 15:24) *
и даже откопал 1996 года, куда уже старше biggrin.gif

ДОСовский? Ы.
zombi
Цитата(_Pasha @ Apr 13 2011, 21:28) *
ДОСовский? Ы.

Ага. Он даже про AT90S8515 ниче не знает!
forever_student
Цитата(GetSmart @ Apr 13 2011, 08:52) *
Да, да. Атмегой плохо орехи колоть получается sm.gif

bb-offtopic.gif А гвозди забивать ваще никак crying.gif ...
Если уж совсем лениво Datasheet'ы читать, есть книга Евстифеева - практически их перевод на русский язык.

Цитата(Wise @ Apr 12 2011, 14:04) *
....А вообще, атмега - редкое фуфло...

Считал также первые три дня знакомства с ними (после PIC16).
Потом оказалось, что 99,9% их "фуфловости" - результат моих "гениальных" biggrin.gif упражнений в программировании.
Wise
Цитата(zombi @ Apr 13 2011, 20:25) *
Я так понял что речь о том что при выполнении команды
RJMP PC+X
происходит изменение PC на величину X адресов а "программистам" хотелось бы на X команд biggrin.gif
и если все команды занимают один адрес то все красиво, а вот если команды могут занимать более одного адреса вот тут-то и начинются чудеса у тех кто ленится метки использовать biggrin.gif biggrin.gif biggrin.gif

Еще раз пост Ark-а перечитайте, он хорошо поясняет причину, по которой задан вопрос в теме.
Возможно, вы не поняли..

..Может быть, я и программист в кавычках, как вы отметили, однако, я не просил вас давать оценку моему уровню.
Для симметрии, хотите услышать мою оценку вашего уровня? У меня сложилось некоторое мнение, на основании ваших постов здесь..


Цитата(SysRq @ Apr 13 2011, 21:11) *
Нефиг писать на ассемблере там где он не нужен.

Давно пора.



Цитата(SysRq @ Apr 13 2011, 22:24) *
Здесь одно из двух:


И очевидный ответ:

Вы провокатор или хам?
..Кажется, ясно и вежливо попросил, в самом начале..
Хотите на грубость нарваться? да легко..


Цитата(forever_student @ Apr 14 2011, 02:12) *
Если уж совсем лениво Datasheet'ы читать, есть книга Евстифеева - практически их перевод на русский язык.


..Считал также первые три дня знакомства с ними (после PIC16).
Потом оказалось, что 99,9% их "фуфловости" - результат моих "гениальных" biggrin.gif упражнений в программировании.

Вы с чего взяли, что я не читал дэйтшиты и книги Евстифеева?
На чем такая уверенность основана, на том, что я задал вопрос?
Так для этого и форум..
..А книг, могу еще штук 16 перечислить, хотите?

..Я сказал, что выложу все свои "фи" атмегам, а их много накопилось, и выложу.
Но, сейчас я занят. Все позже.. rolleyes.gif
Oldring
Цитата(Wise @ Apr 12 2011, 14:04) *
..Метки отцу помогают..
Он ставит их в значимых местах программы.. и так, кое-где.. rolleyes.gif

..А вот "пи си плюс-минус" - очень удобно для тактических коротких переходов на обозримых кусках текста, моветон это или нет..
Потому что не наметишься.. если около сотни или больше всяких передвижений..


Чушь. Сударь явно любит садо-мазо. В особо извращенной форме - с ассемблером.
Переходите лучше на MS Paint
http://i.min.us/ikq8hS.gif
aaarrr
Цитата(Oldring @ Apr 14 2011, 00:52) *
Чушь. Сударь явно любит садо-мазо.

Запомнить пару-тройку не однословных команд - садо-мазо? По-моему, сочинять безумные названия для меток куда хуже.
PC+/- - это единственная адекватная альтернатива временным меткам, к сожалению.
Wise
Цитата(Oldring @ Apr 14 2011, 03:52) *
Чушь. Сударь явно любит садо-мазо.

..Узнаю форум.. Понеслась..
Ваш пост, конечно, обоснован и не чушь?
Может быть, мне предположить, что вы любите?

..Если ветка будет сползать в сторону вот таких постов, как последние, закрою.
..Вот знал же, что бесполезно (мне) задавать здесь вопросы - на один корректный ответ по теме, будет дюжина дряни..
Но, профессионалы же ведь.. люди тактичные, вежливые, точные в своих ответах..
Щас, размечтался.
Oldring
Цитата(aaarrr @ Apr 14 2011, 01:01) *
Запомнить пару-тройку не однословных команд - садо-мазо? По-моему, сочинять безумные названия для меток куда хуже.
PC+/- - это единственная адекватная альтернатива временным меткам, к сожалению.


Единственная адекватная альтернатива, когда проект разрастается и меток становится слишком много - воспользоваться достижениями цивилизации в виде полноценной среды с нормальными макрассемблером и линкером, позволяющими собирать проект из отдельных модулей. Хоть IAR, хоть гнушными тулзами.
Wise
Цитата(aaarrr @ Apr 14 2011, 04:01) *
Запомнить пару-тройку не однословных команд

Для 48-ой атмеги (с которой бьюсь rolleyes.gif) - ровно четыре, если не ошибся.
SysRq
Цитата(Wise @ Apr 14 2011, 00:37) *
Вы провокатор или хам?
Си, сеньор lol.gif


Цитата(aaarrr @ Apr 14 2011, 01:01) *
По-моему, сочинять безумные названия для меток куда хуже.
Зачем безумные? Названия должны помогать читать написанный алгоритм. Правильные названия меток и переменных куда лучше часто встречающихся в коде комментариев типа "; переход, если не равно".
Oldring
Цитата(Wise @ Apr 14 2011, 01:12) *
Для 48-ой атмеги (с которой бьюсь rolleyes.gif) - ровно четыре, если не ошибся.


В древние времена многим приходилось писать и без всякого ассемблера, в машинных кодах. Первые ассемблеры были написаны так совершенно точно. Команд там всего-ничего, для настоящего профи их запомнить - не проблема. У меня до сих пор валяется программируемый калькулятор, как память, в котором приходилось коды команд помнить

Так зачем вам вообще ассемблер? laughing.gif
aaarrr
Цитата(SysRq @ Apr 14 2011, 01:15) *
Названия должны помогать читать написанный алгоритм. Правильные названия меток и переменных...

90% локальных меток название не нужно вообще. Алгоритм читать они только помешают.

Цитата(Oldring @ Apr 14 2011, 01:06) *
Единственная адекватная альтернатива, когда проект разрастается и меток становится слишком много...

Их всегда слишком много, даже если проект на две копейки.
Wise
Цитата(SysRq @ Apr 14 2011, 04:15) *
Си, сеньор lol.gif

..То есть, с вами нечего церемониться..
Да вы, похоже, еще и дурак - вопрос-то был риторический..

Цитата
Названия должны помогать читать написанный алгоритм.

Я тоже так думаю:
Цитата
..Метки отцу помогают..
Он ставит их в значимых местах программы.. и так, кое-где..


Цитата
Так зачем вам вообще ассемблер?

Олдринг, вы тоже хам и провокатор?
Я же просил, не обсуждать (сравнивать) ассемблер и Си.. или что там еще..
Это уже было и плохо кончилось..
Вы читать умеете?
SysRq
Цитата(aaarrr @ Apr 14 2011, 01:20) *
90% локальных меток название не нужно вообще. Алгоритм читать они только помешают.
Ежели не трудно, приведите пример хороший такой ситуации. Хотелось бы все же понять логику такого подхода.
rx3apf
Цитата(aaarrr @ Apr 14 2011, 01:01) *
Запомнить пару-тройку не однословных команд - садо-мазо? По-моему, сочинять безумные названия для меток куда хуже.
PC+/- - это единственная адекватная альтернатива временным меткам, к сожалению.

+1024. И вот конструкция breq PC+2 rjmp xxx мне кажется куда более наглядной, чем тупая установка очередной метки. Правда, если вдруг не доглядеть, и rjmp при очередной переделке превратится в jmp, будет неприятно..
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.