Pull to refresh
33
0

никто

Send message

приходите в гости, похоже мы заняты одним и тем же :-)

кстати для арм ассемблера у меня уже есть редактор, и я думаю вы много там найдете полезного (коль пишите (писали) на асме - то знаете все грабли которые обычно в этом процессе поджидают)

https://t.me/ArmAsmEditor

поставил вам плюса, но они не помогут, здесь за асм хейтят (больше всего те кто в асме нифига не понимают :-) последний пример в конце комментариев к моей последней статье)

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

и вопрос про ваше знание ассемблера остался - так на что заменить этот говнокод ?

я отвечал на ваш вопрос про то какой код генерит компилятор си...

и поверьте - оптимизации включены

ну если вы улучшить не можете - возможно вы просто не знаете ассемблера... вот и все... и компилятор си тут не при чем :-)

если в коде выше вы не можете ничего улучшить - то без комментариев...

потому что кто хоть немного знает - он бы из 4 инструкций оставил 2, если хорошо знает ОДНУ инструкцию !!!!

и это на каких то 4х строчках кода.... 4 байта как минимум экономии и минимум 2 такта исполнения

p.s. это из под куба

где вы здесь видели технологический ресурс ?!! на хабре уже давно больше всего лайков набирают переводные статьи как чел при помощи отвертки смог разобрать батарею теслы и заменить один ее элемент :-)

или те же статьи от HR которые рассказывают какие задачки (одна дибильнее другой) они задают на собеседованиях...

и так далее...

так что забудьте уже про "технологический ресурс".. уж лет 5 как нет... посмотрите блок справа

у меня пока идет проработка языка..

а что за преимущества в куче регистров вы выделяете ? не дергать постоянно память если данные можно хранить в регистрах ?

так вроде нет препятствий

а про С-- где посмотреть ? гугл только про си выдает результаты и си++.. :-(

ну вот как раз представление инструкций в виде некоего псевдокода и позволит реализовать сворачивание асм кода...

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

то есть от асма я отходить не хочу...

ну это пока вы программируете в рамках одной архитектуры.. и ваши инструкции не слишком сложны (посмотрите арм-ассемблер, а потом risc-v ассемблер - они как антиподы :-) у одного много различных сложных инструкций, а у второго - вроде все инструкции простые - но тоже свой синктаксис и мнемоники....)

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

ну и насколько возможно сделать суррогатный микрокод для эмуляции тех инструкций которых нет на одной из архитектур..

про размер инструкции - в арме это зачастую так просто не работает (есть тумб2 формат - а это 16 бит вместо 32ух.. и есть еще выравнивание.)...

тоже самое и про число тактов - для этого есть DWT и там все бывает очень интересно в зависимости от того какое выравнивание у инструкции, и проще по DWT определять реальные цифры чем пытаться высчитать..

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

ну все немного не так как вы пишите.. поверьте, у себя в группе мы дизассемблировали сишные программы... оверкода там дофига

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

например, неоднократно видели когда си применяет при работе с битовыми полями and\or хотя есть например BFI... возможно это из за того что на cortex-m0 просто нет bfi в системе команд... но в cortex-m3 \ cortex-m4 все равно используется and\or...

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

кто то отминусил... поставил два плюса (в статью и карму)...

1) зачем введено такое понятие, почему нельзя иметь сквозную нумерацию регистров, а компилятор сам распределит где виртуальные, а где нет?

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

для ассемблера гонять регистры на стек\со стека - реально не всегда удобно при отладке :-( да и с точки зрения быстродействия выгоды не столь очевидны (а иногда и просто нет)

2) вы уверены, что итоговый код, когда значения виртуальных регистров будут летать туда-сюда в память (у нас ситуация что физических регистров меньше виртуальных, значит мы должны их хранить в кеше) будет оптимальней скомпилированного сишного кода, где компилятор оптимизирован под реальное количество регистров. Я когда-то смотрел скомпилированный код под MSP процессор и реально офигел, что он был довольно нетривиальным, т.е. не такой линейный как я ожидал

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

И? открывайте плейлист ! GNU ARM ASM EDITOR

можно просто в ютубе в поиске набрать ArmAsmEdit и там найти любое видео, и там в подсказках будет ссылка на весь плейлист и на следующее видео

не открывается ссылка на ютуб ? гм...

для ассемблера AVR как то тоже не нашел удобного редактора.. писал в WinAVR в свое время.. чуть удобнее блокнота конечно, но все равно не то...

сам реализовывал в первую очередь те функции которых не хватало лично мне...

получилось примерно так:

https://youtu.be/UTGufdw_D4Y

может быть присоединитесь к моей группе телеграмм ? ( https://t.me/ArmAsmEditor )

мне нужен опыт (и желательно разный) от людей пишущих на асме...

в своем первом редакторе попытался некоторые задумки реализовать (заодно можете оценить, правда он для arm cortex ассемблера)..

может быть смогли бы предложить еще какие то идеи по функциональности....

Information

Rating
Does not participate
Location
Чукотский АО, Россия
Date of birth
Registered
Activity