Другие языки программирования и технологии
Какие преимущества сохранил Ассемблер к Си?
Какие преимущества сохранил язык Ассемблер к языку Си? Ведь сейчас Си умеет очень много того за что раньше ценился язык машиных кодов. В чем Ассемблер выигрывает у Си и правильно ли я понимаю что Си ближайший конкурент, все остальные позади прилично?
В чистом виде не сохранил. При программировании драйверов удобен для явного указания адресов, регистров и прерываний. Но в конечном итоге, код драйвера - это, зачастую, смесь Cи и Asm-а.
Кроме того, бывают ситуации, когда сгенерированный сишный код, хоть и маленький в абсолютом размере, оказывается большим для данного микроконтроллера (например, для контроллеров светофоров) прежде всего, по объему занимаемой памяти.
С другой стороны, я слышал о ситуациях, когда организации было дешевле покупать более дорогие кристаллы, которые "тянули" бы код, сгенерированный Cи, чем обеспечивать зарплатой высококлассного специалиста на Asm-е.
Да, Cи часто называют макроассемблер по той причине, что многие конструкции языка довольно однозначно преобразуется в ассемблерный код. Это удобно и исходник куда понятнее ассемблерной лапши. С другой стороны, работая с асмом напрямую легче использовать определенные фишки конкретного контроллера и это даст более компактный код.
О ближайших конкурентах говорить сложно. Изначально C++ (как впрочем и D) имел несколько иную цель, отличную от Cи. Тот же Objective-C будет ближе к исходному Cи. Golang и Rust пока недостаточно развиты и распространены. Я пока затрудняюсь дать комментарии на их счет.
Кроме того, бывают ситуации, когда сгенерированный сишный код, хоть и маленький в абсолютом размере, оказывается большим для данного микроконтроллера (например, для контроллеров светофоров) прежде всего, по объему занимаемой памяти.
С другой стороны, я слышал о ситуациях, когда организации было дешевле покупать более дорогие кристаллы, которые "тянули" бы код, сгенерированный Cи, чем обеспечивать зарплатой высококлассного специалиста на Asm-е.
Да, Cи часто называют макроассемблер по той причине, что многие конструкции языка довольно однозначно преобразуется в ассемблерный код. Это удобно и исходник куда понятнее ассемблерной лапши. С другой стороны, работая с асмом напрямую легче использовать определенные фишки конкретного контроллера и это даст более компактный код.
О ближайших конкурентах говорить сложно. Изначально C++ (как впрочем и D) имел несколько иную цель, отличную от Cи. Тот же Objective-C будет ближе к исходному Cи. Golang и Rust пока недостаточно развиты и распространены. Я пока затрудняюсь дать комментарии на их счет.
не то вы сравниваете, не то!
Андрей Буравов
Оно то понятно, я к тому что сейчас Си умеет делать очень многое что и Ассемблер, в добавко так сказать к своему функционалу, вот я и спрашиваю что Си еще не добавил к своей мощи из арсенала Ассемблера. Повнимательнее ;)
а ничего что это языки абсолютно разного уровня? какие нафиг конкуренты.. .
новый форд фокус конкурент кроссовкам адидас? в чем он выигрывает?
новый форд фокус конкурент кроссовкам адидас? в чем он выигрывает?
Андрей Буравов
Оно то понятно, я к тому что сейчас Си умеет делать очень многое что и Ассемблер, в добавко так сказать к своему функционалу, вот я и спрашиваю что Си еще не добавил к своей мощи из арсенала Ассемблера. Повнимательнее ;)
Ассемблер при наличии умения позволит писать самый эффективный код. Ключевая фраза - при наличии умения. А еще ассемблер - архитектуро-зависимый язык. Так что написанное под x86 нигде кроме x86 не запустится.
С - позволяет писать почти такой-же по эффективности код с меньшим количеством геммороя, так как это высокоуровневый язык.
Вы, часом, не микроконтроллеры программировать собрались?
С - позволяет писать почти такой-же по эффективности код с меньшим количеством геммороя, так как это высокоуровневый язык.
Вы, часом, не микроконтроллеры программировать собрались?
Андрей Буравов
Вот как раз вопрос и был навеян тем что микроконтролеры сейчас проще на Си программировать. Что ж получаеться Ассемблер уже ничем не привлекателен?
Прога грамотно написанная на Ассемблере будет занимать меньше места и работать быстрее, чем если бы была написана на любом другом языке, деже С. Но, так как писать на Ассемблере большие программы нелегко, то используют ассемблерные вставки в местах кода, где нужно проделать громоздкие вычисления, используя как можно меньше ресурсов железа, а остальную часть, например, интерфейс, пишут на языках высокого уровня.
Места мало занимает прога написанная на ассемблере. других не знаю, не прогер ))
Похожие вопросы
- Сравнение языка Ассемблера и Си
- Что лучше ассемблер или Си ??
- Для программирования микроконтролеров кроме знания ассемблера или Си нужны знания радиоэлектроники?
- Говорят что ассемблер быстрее СИ в 1000 раз. Это скорость компиляции или использования???
- Добрый день. Подскажите пожалуйста плюсы и минусы ассемблера тасм, а так же его преимущества, например перед фасмом?
- Что может ассемблер?
- Почему многие программисты ненавидят ассемблер?Ведь у него куча плюсов!Он позволяет максимально задействовать
- что выбрать Ассемблер или С++? Знаком с Бейсиком, когдат начинал писать в маш. кодах для 8-битного проца, с Си не знаком
- Объясните команды Си/ассемблер
- Вопрос по изучению языка Ассемблера под MS DOS. (Нужны советы по программному обеспечению/программированию)