реклама на сайте
подробности

 
 
12 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> ASM: приказали долго жить?, Сколько еще продержится
OlegIvanov
сообщение Jun 19 2006, 23:28
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 38
Регистрация: 12-09-05
Пользователь №: 8 464



На досуге интересует мнение всех кто занимается программированием МК - коль долго еще возможно будет использовать ASM в разработках. Понимаю что тапочки и нужно спешить осваивать C (аппаратные возможности растут и проще написать A*B, например...). Но как сейчас какие плюсы - пишешь то что надо, не зависишь от уровня тупости разработчиков C компилятора, т.е. все на виду (предпочитаю надежность быстроте разработки). Но бесит реализация арифметики на ASMе. Ваше мнение, господа?
Go to the top of the page
 
+Quote Post
prottoss
сообщение Jun 19 2006, 23:58
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(OlegIvanov @ Jun 20 2006, 07:28) *
На досуге интересует мнение всех кто занимается программированием МК - коль долго еще возможно будет использовать ASM в разработках.


ИМХО Асм в разработках будет использоваться всегда, потому как есть круг задач, для которых использование Си малоопроавдано, а порой и невозможно. В то же время большинство задач, наоборот, лучше создавать изначально на Си. Универсальность, легкость понимания, внедрение новых модулей, скорость разработки etc... Можно долго перечислять достоинства языка Си (и не только Си) перед Ассемблером


--------------------
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jun 20 2006, 00:11
Сообщение #3


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(OlegIvanov @ Jun 20 2006, 08:28) *
На досуге интересует мнение всех кто занимается программированием МК - коль долго еще возможно будет использовать ASM в разработках. Понимаю что тапочки и нужно спешить осваивать C (аппаратные возможности растут и проще написать A*B, например...). Но как сейчас какие плюсы - пишешь то что надо, не зависишь от уровня тупости разработчиков C компилятора, т.е. все на виду (предпочитаю надежность быстроте разработки). Но бесит реализация арифметики на ASMе. Ваше мнение, господа?

1. Какой тип МК имеется в виду?
2. Будут ли Ваши проекты развиваться в будущем? Если да, то не исключен переход на другие архитектуы, тогда нужно писать на СИ.

А вообще в инете много "религиозных" тем "АСМ vs. СИ"
Рекомендую почитать:
1. Это.
2. Это.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
arttab
сообщение Jun 20 2006, 02:54
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



Даже программируя на асме не всегда можно получить что хотел - вмешивается компилятор. Иногда неудачно.
Согласен с предыдущими высказываниями - асм будет жить для определенных задач. Будут расти в мк объемы памяти, производительность повышаться, но найдутся задачи где нужен асм (например на с тяжело обеспечить точные интервалы, сопостовимые с временем выполнения команд. например 50-30 тактов для АВР)


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
Harbour
сообщение Jun 20 2006, 04:25
Сообщение #5


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



Сильно на C разгонишься когда памяти 512 байт.
Go to the top of the page
 
+Quote Post
vanner
сообщение Jun 20 2006, 05:03
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 23-10-05
Пользователь №: 10 016



Цитата
Даже программируя на асме не всегда можно получить что хотел - вмешивается компилятор.


2 arttab:
Первый раз слышу, чтобы компилятор мешал при компиляции ассемблерного кода. Может примерчик. smile.gif

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

К тому же, когда есть ограничения по объему ни один компилятор си не будет оптимальнее кода написаного человеком. smile.gif
Go to the top of the page
 
+Quote Post
dxp
сообщение Jun 20 2006, 05:49
Сообщение #7


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(Harbour @ Jun 20 2006, 11:25) *
Сильно на C разгонишься когда памяти 512 байт.

Почти не слабее, чем на асме. На AT90S8515 все программы писались на С. В течение нескольких лет (с 1998 до 200х) пока не появились недорогие меги. Сам С никаких особых требований к памяти не предъявляет. Разве что стек для данных. Но это не мешает и даже наоборот способствует экономии памяти - память шарится под локальные объекты. Обычно стека в 50-80 байт хватало за глаза. В остальном память тратится ровно столько же, сколько и в асмовой программе - сколько глобальных/статических объектов там разместил, столько и съелось.

Попутно в те же времена и на AT90S2313 со 128 байтами ОЗУ вполне успешно писались программы на С без какого-либо напряга по памяти данных - там больше размер флеши напрягал, 2 килобайта маловато. smile.gif А уж 512 байт ОЗУ - это даже роскошно было.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
arttab
сообщение Jun 20 2006, 05:53
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



Глюки компилятора неисключены. и ошибки юзера, которые он не выдал.
Попробую чеговспомнить:
использовал мнемонику вида (1 << х) и для части команд она интарпитировалась неправильно. Помоему с портом работал и получалось что я хочу выставить бит 2^х в порте в 1. До х =3 не ругался и делал не то что я хотел. и с вводом цифр раз накасячил, а он ошибок не выдал и присвоил 0 значения.
Оптимизация в студии есть - вместо загрузки в рон 0, поменял на обнуление регистра рон


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
defunct
сообщение Jun 20 2006, 05:55
Сообщение #9


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(arttab @ Jun 20 2006, 05:54) *
Даже программируя на асме не всегда можно получить что хотел - вмешивается компилятор. Иногда неудачно.

Хм.. "компилятор" асма более верно называть транслятором с асма.. Не вмешивается транслятор в то, что написано, а только переводит текст в маш. команды. Не получается то, что хочется только в том случае если код содержит баги или если есть баги в структуре программы.
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Jun 20 2006, 05:57
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



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


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
arttab
сообщение Jun 20 2006, 06:13
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



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


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



Цитата
Как говорится - пока существуют процессоры будет существовать и асм. Даже если писать на чистом С, отладка без знания асма может стать весьма затруднительным делом.


Согласен. И будет существовать от экономии. взять стромный по памяти мк (дешевый) и сваять на нем на асме, то что на с не влезет.
Знаю людей, которые мегу 128 асемблерным кодом забили и им этой меги столо не хватать


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
_Bill
сообщение Jun 20 2006, 06:29
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219



Цитата(OlegIvanov @ Jun 20 2006, 02:28) *
На досуге интересует мнение всех кто занимается программированием МК - коль долго еще возможно будет использовать ASM в разработках. Понимаю что тапочки и нужно спешить осваивать C (аппаратные возможности растут и проще написать A*B, например...). Но как сейчас какие плюсы - пишешь то что надо, не зависишь от уровня тупости разработчиков C компилятора, т.е. все на виду (предпочитаю надежность быстроте разработки). Но бесит реализация арифметики на ASMе. Ваше мнение, господа?

Ассемблер будет жить ВСЕГДА. А что касается арифметики, то все арифметические операции можно оформить в виде подпрограмм, это делается только один раз. Дальше ими только пользуешься.
Есть свои ++ при программировании как на ассемблере, так и на Си. Хотя я Использую Си больше 20 лет, но ассемблер не забываю. Ассемблер - это для души.
Если говорить о Си, то современные компиляторы генерируют код не намного хуже, чем это сделал бы программист. Мне, например, удается соптимизировать код, сгенерированный компилятором, от силы % на 10. Естественно, что прогаммист должен "прочувствовать" используемый им компилятор и помогать ему генерировать эффективный код.
Go to the top of the page
 
+Quote Post
otrog
сообщение Jun 20 2006, 06:33
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589



Цитата(arttab @ Jun 20 2006, 10:13) *
Знаю людей, которые мегу 128 асемблерным кодом забили и им этой меги столо не хватать

ИМХО если бы писали на С, еще и место бы осталось.


--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jun 20 2006, 06:38
Сообщение #14


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Хм, надо же.
Опять подняли религиозную тему!
Накняпали уже 11 постов и не переругались wink.gif
Растём!
Теперь по теме.
Знать асм и писать на асме это далеко не одно и то же.
Здесь я где-то согласен с beer_warrior, что отлаживать тонкости, особенно связанные с железом, зная асм легче.
Другое дело - писать. Стараюсь в своих проектах избегать этого где только возможно.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jun 20 2006, 06:56
Сообщение #15


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(vanner @ Jun 20 2006, 08:03) *
Цитата
Даже программируя на асме не всегда можно получить что хотел - вмешивается компилятор.


2 arttab:
Первый раз слышу, чтобы компилятор мешал при компиляции ассемблерного кода. Может примерчик. smile.gif
Пожалуйста. сделайте RJMP на +0x400 слов (переход из таблицы векторов Boot-области в Application). Согласно описанию AVR Instruction Set в качестве аргумента RJMP берет смещение в словах. Однако "втюхать" это смещение ассемблеру от IAR "в лоб" невозможно. Асм от WinAVR такое тоже есть отказался.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

12 страниц V   1 2 3 > » 
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 14:45
Рейтинг@Mail.ru


Страница сгенерированна за 0.01476 секунд с 7
ELECTRONIX ©2004-2016