Другие языки программирования и технологии
Неужели ассемблер действительно проще чем C ?
Недавно на каком-то форуме по программированию микроконтроллеров AVR услышал мнение, что Ассемблер проще и понятнее чем С/С++ .Мне всегда казалось что С/С++ куда проще чем ассемблер. Как по вашему мнению?
Ассемблер действительно самый простой язык программирования, если мнемоническую запись машинных кодов + директивы ассемблера вообще можно назвать языком программирования.
Но вот программировать на нём и отлаживать программы гораздо сложнее и трудозатратнее, чем на на языках высокого уровня.
Вот такой вот парадокс.
Upd.
>после С++ ,Ассемблер "труднопонемаемый" для меня
Вот скорее всего именно потому, что после.
Я вообще никому бы не советовал начинать изучение программирования с C/C++
Как-то давно я встретил интересную фразу про Forth: "Forth может из хорошего программиста сделать отличного, а из плохого - ужасного". На мой взгляд, это изречение вполне применимо и к C/C++
:-)
Но вот программировать на нём и отлаживать программы гораздо сложнее и трудозатратнее, чем на на языках высокого уровня.
Вот такой вот парадокс.
Upd.
>после С++ ,Ассемблер "труднопонемаемый" для меня
Вот скорее всего именно потому, что после.
Я вообще никому бы не советовал начинать изучение программирования с C/C++
Как-то давно я встретил интересную фразу про Forth: "Forth может из хорошего программиста сделать отличного, а из плохого - ужасного". На мой взгляд, это изречение вполне применимо и к C/C++
:-)
Микроконтроллер -- это такая железка, где каждый байт на счету. Поэтому выбираем ассемблер.
Проще. Намного проще. Его команды (команды процессора, которые в ассемблере однозначно заменяются мнемониками) выполняют элементарные операции. Нет разночтений, зависящих от контекста программы и реализации компилятора (типа i = ++i + ++i;).
Процессор ничего не знает о том, какие команды выполнялись до этого и какие будут выполняться после. Что находится в регистре или ячейке памяти: целое знаковое или беззнаковое число, код символа или часть двоичного представления вещественного числа - для него это просто двоичные числа. Всё это решает программист.
Короче говоря, язык элементарный.
Процессор ничего не знает о том, какие команды выполнялись до этого и какие будут выполняться после. Что находится в регистре или ячейке памяти: целое знаковое или беззнаковое число, код символа или часть двоичного представления вещественного числа - для него это просто двоичные числа. Всё это решает программист.
Короче говоря, язык элементарный.
Согласен с Игорем.
Если интересно тебе будет:
Есть такой сайтик васм. ру, почитай уроки раздела неофиту и ты поймешь, что ассемблер не так сложен, как кажется. Даже скорее наоборот. Была бы литература хорошая под рукой.
Если интересно тебе будет:
Есть такой сайтик васм. ру, почитай уроки раздела неофиту и ты поймешь, что ассемблер не так сложен, как кажется. Даже скорее наоборот. Была бы литература хорошая под рукой.
Си - проще, ассемблер - примитивней. Не забывай, что ассемблер - это система команд конкретного процессора, и программируя на ассемблере, оперируешь примитивами процессора. Для каждого процессора - свой ассемблер.
Кому как. Для контроллеров точно лучше asm. На обычный комп при знании обоих - без разницы, просто на асме дольше разрабатывать, но иногда оправдано использование асма
ассемблер - понятие двоякое.
писать программы на ассемблере проще, чем на цэ. я исхожу из того факта, что схемотехники, радиоинженеры и прочие некомпьютерные специалисты (даже электрики) достаточно хорошо и быстро усваивают ассемблеры, но с трудом пишут программы на си. однако следует заметить, что их программы достаточно просты: взять данные -> преобразовать -> отправить.
обратная инженерия - дело другое, хотя она почти всегда связана с отлаживанием кода для ассемблера. этот процесс сложнее прикладного программирования на си в том плане, что требует некоторого опыта и сноровки, если мы говорим не о простом кряке (где тупо дёргается алгоритм без понимания его сути) , а о настоящем реверсинге. возможно, именно в силу очень высокого порога вхождения в реверсинг бытует мнение, что ассемблер сложнее языков программирования высокого уровня.
писать программы на ассемблере проще, чем на цэ. я исхожу из того факта, что схемотехники, радиоинженеры и прочие некомпьютерные специалисты (даже электрики) достаточно хорошо и быстро усваивают ассемблеры, но с трудом пишут программы на си. однако следует заметить, что их программы достаточно просты: взять данные -> преобразовать -> отправить.
обратная инженерия - дело другое, хотя она почти всегда связана с отлаживанием кода для ассемблера. этот процесс сложнее прикладного программирования на си в том плане, что требует некоторого опыта и сноровки, если мы говорим не о простом кряке (где тупо дёргается алгоритм без понимания его сути) , а о настоящем реверсинге. возможно, именно в силу очень высокого порога вхождения в реверсинг бытует мнение, что ассемблер сложнее языков программирования высокого уровня.
Ассемблер в принципе быстрее, при условии что ты правильно напишешь.
>Для каждого процессора - свой ассемблер.
Неа, ставь директиву.... Все подвиды ассемблера как правило поддерживают архитектуру i386
>Для каждого процессора - свой ассемблер.
Неа, ставь директиву.... Все подвиды ассемблера как правило поддерживают архитектуру i386
Adilzhan Aitbergenov
те же avr не поддеривают x86. микроконтроолеры - и подавно.
Похожие вопросы
- простые числа c++
- нужны ли ассемблер и C/C++ в современном программировании ?
- срочно помогите написать программу на ассемблере вычисляющую R. R=x2+y2, где x=a+b-c, y=b*c-a. a,b,c вводятся с клавы
- Почему скомпилированный код на Ассемблер занимает меньше места чем на C, а на C меньше чем на C++?
- Что может ассемблер?
- Почему многие программисты ненавидят ассемблер?Ведь у него куча плюсов!Он позволяет максимально задействовать
- Простейшая задачка на Ассемблере
- Помогите написать на ассемблере програму для вычисления виражения y=(c-(d/2)+33 )/(2*a*a-1). c=5,d=6,a=3.
- Свои иконки на свои программы c++ или ассемблер
- Какие языки еще изучить? (Знаю C++, LUA, C#, PHP, HTML, CSS, Python, JavaScript, некоторые виды Ассемблера)