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

Неужели ассемблер действительно проще чем C ?

Недавно на каком-то форуме по программированию микроконтроллеров AVR услышал мнение, что Ассемблер проще и понятнее чем С/С++ .Мне всегда казалось что С/С++ куда проще чем ассемблер. Как по вашему мнению?
Bad Bad
Bad Bad
4 746
Ассемблер действительно самый простой язык программирования, если мнемоническую запись машинных кодов + директивы ассемблера вообще можно назвать языком программирования.

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

Upd.
>после С++ ,Ассемблер "труднопонемаемый" для меня

Вот скорее всего именно потому, что после.
Я вообще никому бы не советовал начинать изучение программирования с C/C++

Как-то давно я встретил интересную фразу про Forth: "Forth может из хорошего программиста сделать отличного, а из плохого - ужасного". На мой взгляд, это изречение вполне применимо и к C/C++
:-)
Алексей Иванов
Алексей Иванов
50 448
Лучший ответ
Микроконтроллер -- это такая железка, где каждый байт на счету. Поэтому выбираем ассемблер.
Проще. Намного проще. Его команды (команды процессора, которые в ассемблере однозначно заменяются мнемониками) выполняют элементарные операции. Нет разночтений, зависящих от контекста программы и реализации компилятора (типа i = ++i + ++i;).
Процессор ничего не знает о том, какие команды выполнялись до этого и какие будут выполняться после. Что находится в регистре или ячейке памяти: целое знаковое или беззнаковое число, код символа или часть двоичного представления вещественного числа - для него это просто двоичные числа. Всё это решает программист.

Короче говоря, язык элементарный.
Sergey Goncharenko!
Sergey Goncharenko!
51 590
Согласен с Игорем.

Если интересно тебе будет:
Есть такой сайтик васм. ру, почитай уроки раздела неофиту и ты поймешь, что ассемблер не так сложен, как кажется. Даже скорее наоборот. Была бы литература хорошая под рукой.
Contact Wars
Contact Wars
40 015
Си - проще, ассемблер - примитивней. Не забывай, что ассемблер - это система команд конкретного процессора, и программируя на ассемблере, оперируешь примитивами процессора. Для каждого процессора - свой ассемблер.
Sergey Kyhtin
Sergey Kyhtin
21 360
Кому как. Для контроллеров точно лучше asm. На обычный комп при знании обоих - без разницы, просто на асме дольше разрабатывать, но иногда оправдано использование асма
ассемблер - понятие двоякое.
писать программы на ассемблере проще, чем на цэ. я исхожу из того факта, что схемотехники, радиоинженеры и прочие некомпьютерные специалисты (даже электрики) достаточно хорошо и быстро усваивают ассемблеры, но с трудом пишут программы на си. однако следует заметить, что их программы достаточно просты: взять данные -> преобразовать -> отправить.
обратная инженерия - дело другое, хотя она почти всегда связана с отлаживанием кода для ассемблера. этот процесс сложнее прикладного программирования на си в том плане, что требует некоторого опыта и сноровки, если мы говорим не о простом кряке (где тупо дёргается алгоритм без понимания его сути) , а о настоящем реверсинге. возможно, именно в силу очень высокого порога вхождения в реверсинг бытует мнение, что ассемблер сложнее языков программирования высокого уровня.
AA
Adilzhan Aitbergenov
9 617
Ассемблер в принципе быстрее, при условии что ты правильно напишешь.
>Для каждого процессора - свой ассемблер.
Неа, ставь директиву.... Все подвиды ассемблера как правило поддерживают архитектуру i386
Adilzhan Aitbergenov те же avr не поддеривают x86. микроконтроолеры - и подавно.