Другие языки программирования и технологии

Скажите программирование на Языке ассемблера сложное? в сровнении с С++ ?

Info I-Textile.ru
Info I-Textile.ru
54
Зависит от степени владения тем и другим языком.
Например для меня по времени примерно одинаково.
При этом написание программы на Ассемблере в основном большую часть времени занимает набирание много-много строк кода. Все используемые команды хорошо известны, фрагменты алгоритмов тоже неоднократно применялись. Программа пишется просто "из головы".
А в С++ приходится подолгу изучать, как то или иное реализуется на этом языке. За описанием чуть ли не каждой функции приходится лезть в MSDN.

Всё потому что Ассемблер, как мне кажется, я знаю неплохо, а С/С++ совсем не владею.

Сам же Ассемблер очень простой язык. Команды выполняют элементарные операции (за исключением пары десятков команд) , запутаться в которых очень сложно. В отладке ассемблерная программа очень проста. Все регистры на виду, если что-то не то записалось в регистр - это сразу видно.
В С++ же голову сломаешь, почему не так работает, где что с чем перехлестнулось. Если отлаживаешь прямо в машинном коде, то очень мешают многочисленные "мусорные" пересылки данных, не выполняющие полезной работы, которые компилятор даже при очень высоком уровне оптимизации убрать не в состоянии. Это, кстати, присуще любому языку высокого уровня, не только С++. Чем выше уровень абстракции у языка, тем больше холостых операций с точки зрения алгоритма производится программой.

P.S. В настоящее время с использованием API программы на С и Ассемблере выглядят до смешного похоже. Весь алгоритм состоит из последовательного вызова одних и тех же функций. Пример.
АК
Александр Карась
51 590
Лучший ответ
Не думаю, что сложнее. Просто убивает, как много надо писать для того, что на 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 меньше всяких действий контролировать надо
MD
Mr.schvarz Dunkelkopf
55 279
Сложнее
Артур Шилов
Артур Шилов
1 751