Jump to content
oleg st

Как написать в ассемблере переход без меток?

Recommended Posts

Posted (edited)

привет, как написать переход не используя меток в ассемблере, помню, что на пиках так можно было, но нужно для аврок.

как было на пиках:

goto $+1

nop

как сделать так же для авр:

rjmp ???

Edited by oleg st

Share this post


Link to post
Share on other sites

rjmp pc + 1


Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Share this post


Link to post
Share on other sites

Быстро и просто. Разработка бюджетного неизолированного источника питания на контроллере VIPer122

С помощью VIPer122 можно создавать как изолированные, так и неизолированные сетевые источники питания. Разберем самый простой и бюджетный вариант – разработку неизолированного понижающего источника питания с выходным током в несколько сотен миллиампер без трудоемких расчетов трансформаторов и компонентов обвязки.

Подробнее

Без меток никак. Забудьте. Размер у команд одно или два слова. Если переход длинный, то легко ошибиться. Каждую команду смотреть, сколько она слов занимает.

Пример. LDI 1 слово. STS два слова.

На ассемлере писать без меток - это выстрелить себе в ногу.

Share this post


Link to post
Share on other sites

Пополнение линейки ViperPlus от STMicroelectronics

Компания ST обновила семейство ШИМ-регуляторов со встроенным ключом ViperPlus, выпустив новые бюджетные микросхемы VIPER122 и VIPER222, и микросхемы VIPER265K и VIPER267K, имеющие встроенный ключ MOSFET напряжением 1050 В. С их помощью возможно реализовать топологии: изолированный и неизолированный обратноходовой преобразователь (flyback), понижающий преобразователь (buck), повышающе-понижающий преобразователь (buck-boost).

Подробнее

Еще один вариант:

ldi r16,adr

push r16

ret

 


Я не раздаю удочки. Я продаю рыбу.

Share this post


Link to post
Share on other sites

LED-драйверы LCM - бюджетное решение для умного дома!

Для более простого и бюджетного решения по организации управляемого освещения в здании с имеющейся системой KNX компания Mean Well предлагает готовые к использованию LED-драйверы семейства LCM/KN, управляемые по протоколу KNX. По своим техническим возможностям эти изделия похожи на драйверы из популярного семейства LCM/(DA).

Подробнее

2 часа назад, солар сказал:

Еще один вариант

Это не вариант, ибо ваш adr и есть метка.


Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Share this post


Link to post
Share on other sites

По большому счету и рс+смещ тоже метка. Ее прелесть в том, что компилятор сам ее рассчитает. (Да кто бы кому рассказывал.)


Я не раздаю удочки. Я продаю рыбу.

Share this post


Link to post
Share on other sites

Ни хрена подобного, повторяю. Длина команд разная. Хочешь выстрелить себе в ногу вперёд. Хотя бы в симуляторе накидай команды с различной длиной и намеренно ошибку. Поймёшь.

Глухое зацикливание. RJMP PC+O Это допустимо. Если ты точно знаешь длину каждой команды допустимо. Но это все таки выстрел в ногу, внёс изменения и привет.

Share this post


Link to post
Share on other sites
Posted (edited)
2 часа назад, demiurg1978 сказал:

Глухое зацикливание. RJMP PC+O Это допустимо. Если ты точно знаешь длину каждой команды допустимо. Но это все таки выстрел в ногу

Подводя черту: выстрел в ногу - допустимо. Точка. :) 

Edited by ARV

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Share this post


Link to post
Share on other sites
Posted (edited)

Крайне редко, но всё же иногда люблю вместо метки использовать PC+-

Как правило если много переходов в одном месте и на небольшие "расстояния" нужны.

Лень эти метки выдумывать. Да и текст они засоряют изрядно.

Часть кода где это использую обрамляю комментариями соотв. или в виде макроса оформляю.

И уже в макросе комментарии.

Если лень считать смещение, то сначала компилирую с реальной меткой и уже по листингу выясняю нужное +-.

Edited by AvrAsm

Share this post


Link to post
Share on other sites
2 часа назад, ARV сказал:

Подводя черту: выстрел в ногу - допустимо. Точка. :) 

Вы что то хотели сказать. Говорите.

Share this post


Link to post
Share on other sites

Я сказал: можно применять всё, что можно применять. В том числе и относительные переходы.


Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Share this post


Link to post
Share on other sites
Posted (edited)

Допустимо только rjmp pc+0 либо просто rjmp pc. Всё остальное рас*****яйство. Только Метки. Лень метку написать, переходи на яву. Си. Ассемблер не терпит рас пи здяйства

Edited by demiurg1978

Share this post


Link to post
Share on other sites
13 минут назад, demiurg1978 сказал:

Только Метки

А как же быть с вычисляемыми переходами?


Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Share this post


Link to post
Share on other sites

Не учите плохому. Метки. Точка. Иначе пресловутый человеческий фактор. На будущее. Приводите конкретные примеры.

Share this post


Link to post
Share on other sites
13 минут назад, Геннадий сказал:

А вычисляются они не по меткам?

Вычисляемый переход потому и вычисляемый, что не по меткам.


Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Share this post


Link to post
Share on other sites

А может у ТС как раз и стоит задача максимально усложнить понимание и возможность вносить изменения в код.

Share this post


Link to post
Share on other sites

Для этого есть ещё более продвинутый метод - писать в машинных кодах. :D

Share this post


Link to post
Share on other sites
1 час назад, Lexter сказал:

Для этого есть ещё более продвинутый метод - писать в машинных кодах. :D

Вы не поняли: написание в машинных кодах затрудняет не разбор кода, а написание кода. Ведь ассемблер это и есть машинный код, только более просто записанный.


Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Share this post


Link to post
Share on other sites
Posted (edited)

Если в сразу в маш. кодах писать, то это уже будет скорее прошивка а не исходник.

А так, вроде и текст и мнемоника есть, а без 100 гр. и не разберёшься. 

 

9 часов назад, ARV сказал:

Вычисляемый переход потому и вычисляемый, что не по меткам.

А дайте пример вычисляемого перехода.

Или Вы про ijmp, icall ?

Edited by AvrAsm

Share this post


Link to post
Share on other sites
44 минуты назад, AvrAsm сказал:

Или Вы про ijmp, icall ?

Угу. В других платформах и иные есть.


Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Share this post


Link to post
Share on other sites

Вычисляемый - это когда сидишь считаешь, сколько слов занимает каждая команда. 

Share this post


Link to post
Share on other sites

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


Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Share this post


Link to post
Share on other sites
57 минут назад, demiurg1978 сказал:

Вычисляемый - это когда сидишь считаешь...

Точнее будет : сидишь - вычисляешь!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • Наша огромная страна и есть рынок сбыта. Даже людям в 200 ойро необходимо дома иметь бытовую технику от лампочки до индукционной плиты и телевизора. Немыслим без электроники весь наземный и подземный транспорт, машиностроение, пищевая, химическая, лёгкая  промышленность со множеством автоматики итд итп. Я замучаюсь все перечислять. Да пофигу, что было. Вопрос в том, что необходимо возрождать свое собственное производство во всех отраслях промышленности, а не покупать у китайцев .
    • Дорисуйте выпрямитель с конденсатором.
    • Операционник подключается к выходам темброблока, темброблок отключен и фактически вход TDA связан только с инверсным входом и землей через обвязку и конденсатором, вторая нога которого в воздухе. Сравниваю номиналы обвязки и даташитов на TDA2050 и UTC2030 - отличия в полтора - два раза, и вообще разводка какая-то странная.  Хочу выпаять одну из TDA  и собрать отдельно, заменить номиналы обвязки на рекомендуемые и проверить будет ли шум, если шума не будет то приходит идея сделать новую плату лутом и собрать по схеме из ДШ. До кучи можно будет трансформатор поменять на что-то вроде ТТП40 и вынести диодный модуль с конденсаторами ближе к трансу.    Нарисовал часть схемы после темброблока в KiCad, к сожалению номиналы SMD конденсаторов не видны (может они с обратной строны?). Некоторые номиналы сильно отличаются от того, что в даташите TDA2050 и TDA2030 (R19, R23, R34, C13, C15, C24), да и схема отличается (в даташите нет C39, C40, C20) может это приводить к шуму? 1597443486872_TDA.sch
    • Ну вот, пока на вас не наорёшь, совсем думать не хотите. Теперь понесу в ремонт. А ещё кто-то сказал что новую заказать, только негде, совсем нигде
    • Доброго времени суток всем! Подскажите пожалуйста, собрал инвертор, поварил, все не плохо! Решил подключить осциллятор для тиг сварки, при искровом разряде чегото контроллер перезапускается. Не знаю в чем может быть проблема. Стоит на защиту конденсатор и варистор по выходу, все как пологается, а такая вот неприятность. Помогите что добавить в схему?
    • Если лама горит значит есть КЗ. Лампу включают за место предохранителя, хотя тут и не уместно уже. Что касается вопроса @stereorail то у него неисправность в БП, вот после того как заменит все сгоревшие можно и через лампочку включать, через гвозди он уже пробовал, не прокатило.
    • Индуктивность обмоток трансформатора какая то странная.
×
×
  • Create New...