Ассемблер
Ассемблер
Я вот где то читал, что под каждый процессор - свой ассемблер. Так для ВСЕХ ли AVR МК он одинаков?
1. Стоит ли его учить?
2. С чего лучше начать?
3. И вообще, возможно ли мне, пацану, 15 лет, выучить этот злой язык программирования?
я смотрел, что в даташите на меги, там есть операторы для ассемблера.
1. Стоит ли его учить?
2. С чего лучше начать?
3. И вообще, возможно ли мне, пацану, 15 лет, выучить этот злой язык программирования?
я смотрел, что в даташите на меги, там есть операторы для ассемблера.
Не умеешь - не берись, но не взявшись не научишься...
- Реклама
- DrWatson
- Опытный кот
- Сообщения: 890
- Зарегистрирован: Вт янв 20, 2009 14:49:08
- Откуда: Гондурас, Мурманск
Язык ассемблера (автокод) — язык программирования низкого уровня. В отличие от языка машинных кодов, позволяет использовать более удобные для человека мнемонические (символьные) обозначения команд. При этом для перевода с языка ассемблера в понимаемый процессором машинный код требуется специальная программа, называемая ассемблером.
- Если вы такие умные, то почему тогда строем не ходите?
ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης
ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης
- Реклама
Re: Ассемблер
Да, для семейства AVR одинаков.Stalker46 писал(а):...под каждый процессор - свой ассемблер. Так для ВСЕХ ли AVR МК он одинаков?
Не стоит. Слишком много времени придётся потратить, чтобы получить результат.Stalker46 писал(а):1. Стоит ли его учить?
С языка "C".Stalker46 писал(а):2. С чего лучше начать?
Возможно всё, но вот только оно Вам надо? Или это всё для того, чтобы сказать: "Во я какой крутой, на ассемблере пишу".Stalker46 писал(а):3. И вообще, возможно ли мне, пацану, 15 лет, выучить этот злой язык программирования?
Вот мне, например, пришлось писать на ассемблере процессора i8080 только лишь потому, что не было в моём распоряжении среды разработки, которая бы поддерживала хоть какой-нибудь язык высокого уровня. Позднее пришлось писать ассемблерные вставки для программ для IBM PC из-за того, что процессоры были дохленькие (8 Мгц) и программа на C не успевала сделать то, что надо. А когда я дорвался для микроконтроллеров AVR, то решил, что хватит уже с меня ассемблеров. Ну их в болото. Поэтому пишу на C, а ассемблера просто не знаю...
Низкого уровня означает, что синтаксис и мнемоники языка "более приближены" к железу и принципу работы процессора или МК..
А высокого.. на то они и высокие, что от самого железа очень высоки.. в смысле далеки..
Когда пишешь на языках высокого уровня, ты не особо задумываешься о том, какая у тя железка..
..
Именно поэтому на "асме" ты пишешь для конкретного семейства кристаллов, а на "С" можно и для нескольких писать...
А высокого.. на то они и высокие, что от самого железа очень высоки.. в смысле далеки..
Когда пишешь на языках высокого уровня, ты не особо задумываешься о том, какая у тя железка..
..
Именно поэтому на "асме" ты пишешь для конкретного семейства кристаллов, а на "С" можно и для нескольких писать...
Язык низкого уровня использует непосредственно команды процессора. Хотя бы эти команды и имеют некие буквенные названия. Поэтому он привязан к конкретному процессору. Ассемблер - язык низкого уровня.
Язык высокого уровня непосредственно команды процессора не использует, а использует некие операторы, которые что-то там делают. Набор этих операторов не зависит от типа и конструкции процессора и архитектуры микропроцессорной системы. Поэтому программисту, использующему язык высокого уровня, глубоко плевать, какая там архитектура - "Гарвардская" или "Фон-Неймановская", и чихать на то, сколько в процессоре регистров общего назначения и как их использовать. "C" - язык высокого уровня. Но даже язык высокого уровня позволяет в случае чего покопаться в нижнем белье процессора, если очень хочется...
Язык высокого уровня непосредственно команды процессора не использует, а использует некие операторы, которые что-то там делают. Набор этих операторов не зависит от типа и конструкции процессора и архитектуры микропроцессорной системы. Поэтому программисту, использующему язык высокого уровня, глубоко плевать, какая там архитектура - "Гарвардская" или "Фон-Неймановская", и чихать на то, сколько в процессоре регистров общего назначения и как их использовать. "C" - язык высокого уровня. Но даже язык высокого уровня позволяет в случае чего покопаться в нижнем белье процессора, если очень хочется...
Когда я начинал, я купил себе каждой твари по паре:
ATtiny13 - за то, что у него ног мало, и это самый дешёвый контроллер, который поддерживается средой разработки CodeVisionAVR.
ATtiny2313 - за то, что это не сильно навороченный контролер для несложных поделок
ATmega8 - за то, что он почему-то пользуется всенародной любовью, и для него в сети выложено много всякого.
ATtiny13 - за то, что у него ног мало, и это самый дешёвый контроллер, который поддерживается средой разработки CodeVisionAVR.
ATtiny2313 - за то, что это не сильно навороченный контролер для несложных поделок
ATmega8 - за то, что он почему-то пользуется всенародной любовью, и для него в сети выложено много всякого.
Последний раз редактировалось Барсик Пн июн 22, 2009 11:42:51, всего редактировалось 1 раз.
Но асм универсален, очень быстры программы в работе, еще и экономия памяти. Идеальный, если не считать трудность программирования на нем больших программ. Я жалею что до сих пор его плохо знаю. Если он - первый язык программирования, то должен казаться самым простым из всех
Ну вот еще скажу что без знания асма не так просто ломать (взламывать) или даже просто отлаживать программы написанные на языках высокого уровня.
Конечно на ассемблере возможно нет смысла писать большие программы, т.к. это сложно и трудно, но по моему знание этого "языка" будет большим плюсом при написании системных программ, программ для железа. В большинстве нормальных языках высокого уровня (пусть тот-же С) возможно писать часть кода на асме.
На трекере torrents.ru можно найти очень много книг (даже сборников книг) по программированию.
Ну и еще можно сказать что если не программировать на ассемблере, то достаточно узнать хотябы его основы (это замет всего ничего по времени), и пойти изучать другой язык.
Конечно на ассемблере возможно нет смысла писать большие программы, т.к. это сложно и трудно, но по моему знание этого "языка" будет большим плюсом при написании системных программ, программ для железа. В большинстве нормальных языках высокого уровня (пусть тот-же С) возможно писать часть кода на асме.
На трекере torrents.ru можно найти очень много книг (даже сборников книг) по программированию.
Ну и еще можно сказать что если не программировать на ассемблере, то достаточно узнать хотябы его основы (это замет всего ничего по времени), и пойти изучать другой язык.
- Вложения
-
- fr08v101.rar
- пример программы для Windows с использованием ассемблерного кода (на размер файла и содержание посмотрите).
Внимание! В программе есть звук и она использует трехмерную графику (на древних компах не запускать). - (62.12 КБ) 282 скачивания
Последний раз редактировалось Upgrader Пн июн 22, 2009 11:53:25, всего редактировалось 2 раза.
Ну уж коль пошла такая пьянка.. www.wasm.ru
- saschai
- Говорящий с текстолитом
- Сообщения: 1596
- Зарегистрирован: Вс дек 14, 2008 20:36:47
- Откуда: SPb
А что ты в школе на информатике изучал?2. С чего лучше начать?
Мое мнение от простого к сложному
по крайней мере тот же Васик, даст тебе, на начальном этапе, представление об идиологии построения программы, и , опять же мое мнение, наглядное прелставление процессах происходящих в МК, по крайней мере мозги повернет в правильном направлении
- Redrik Shuhart
- Друг Кота
- Сообщения: 3641
- Зарегистрирован: Пт апр 03, 2009 22:12:58
- Откуда: Из Украины, Кировоградская облась,


