Зависит от степени владения тем и другим языком.
Например для меня по времени примерно одинаково.
При этом написание программы на Ассемблере в основном большую часть времени занимает набирание много-много строк кода. Все используемые команды хорошо известны, фрагменты алгоритмов тоже неоднократно применялись. Программа пишется просто "из головы".
А в С++ приходится подолгу изучать, как то или иное реализуется на этом языке. За описанием чуть ли не каждой функции приходится лезть в MSDN.
Всё потому что Ассемблер, как мне кажется, я знаю неплохо, а С/С++ совсем не владею.
Сам же Ассемблер очень простой язык. Команды выполняют элементарные операции (за исключением пары десятков команд) , запутаться в которых очень сложно. В отладке ассемблерная программа очень проста. Все регистры на виду, если что-то не то записалось в регистр - это сразу видно.
В С++ же голову сломаешь, почему не так работает, где что с чем перехлестнулось. Если отлаживаешь прямо в машинном коде, то очень мешают многочисленные "мусорные" пересылки данных, не выполняющие полезной работы, которые компилятор даже при очень высоком уровне оптимизации убрать не в состоянии. Это, кстати, присуще любому языку высокого уровня, не только С++. Чем выше уровень абстракции у языка, тем больше холостых операций с точки зрения алгоритма производится программой.
P.S. В настоящее время с использованием API программы на С и Ассемблере выглядят до смешного похоже. Весь алгоритм состоит из последовательного вызова одних и тех же функций. Пример.
Другие языки программирования и технологии
Скажите программирование на Языке ассемблера сложное? в сровнении с С++ ?
Не думаю, что сложнее. Просто убивает, как много надо писать для того, что на C++ делалось в одной строчке.
эффективность с++ близка к ассемблеру и только иногда делаются вставки ассемблерные для ускорения, но это совсем мизер.
Вот отвечал сегодня:
Как поменять местами байты в переменной short в cи
указателем или же можно как-то по другому
short p = 12345;
char *b1;
char *b2;
b1 = (char*)&p;
b2 = b1++;
char tmp;
tmp = *b1;
*b1 = *b2;
*b2 = tmp;
а вот для ассемблера:
short p = 12345;
asm { ror p, 8 }
Но это только в тех случаях, когда есть эффективные команды проца, да и стандартные функции си обычно писались со вставками на ассемблере.
На ассемблере сложнее, даже си в общем сложный, потому для вэба и сделали PHP меньше всяких действий контролировать надо
Вот отвечал сегодня:
Как поменять местами байты в переменной short в cи
указателем или же можно как-то по другому
short p = 12345;
char *b1;
char *b2;
b1 = (char*)&p;
b2 = b1++;
char tmp;
tmp = *b1;
*b1 = *b2;
*b2 = tmp;
а вот для ассемблера:
short p = 12345;
asm { ror p, 8 }
Но это только в тех случаях, когда есть эффективные команды проца, да и стандартные функции си обычно писались со вставками на ассемблере.
На ассемблере сложнее, даже си в общем сложный, потому для вэба и сделали PHP меньше всяких действий контролировать надо
Сложнее
Похожие вопросы
- Вопрос по изучению языка Ассемблера под MS DOS. (Нужны советы по программному обеспечению/программированию)
- Какой язык программирования лучше всего для сложных математических расчетов?
- Сравнение языка Ассемблера и Си
- Почему разновидностей языка ассемблера так много?
- Программирование! По языку C#!
- Программирование на языке СИ с использованием подпрограммы-функции
- какую программу лучше использовать для программирования на языке Си?
- какой язык менее сложный для самообучения программированию
- Вопрос про язык ассемблера
- Целесообразно ли при обучении программированию включать курс ассемблера?