Форум myROBOT.ru » Шаг за шагом » С чего начать? » С чего начать изучение ассемблера?

Страниц (1): [1]
 

1. wlmn - 03 Апреля, 2017 - 10:19:08 - перейти к сообщению
Хотелось бы познакомиться с ассемблером так, чтобы потом можно было программировать и атмеловские микроконтроллеры. Я знаю, что их пишут сейчас на си, но тем не менее, мне кажется, будет полезно знать и ассемблер.
По ассемблеру куча какой-то литературы вокруг с какой-то вездесущей водой.
И не понятно, с чего конкретно начинать.

Во-первых нужен какой-то компилятор что ли... Ну вот скачал книжку про 32-битный ассемблер, там говорят, что нужен MASM. Скачиваю масм, он не хочет запускаться.
И вроде бы все логично: на 64-битном компе не хочет запускаться прога, предназначенная для 32-битного. Однако, слышал, если установить виртуальную машину, под 32 бита, то будут запускаться и такие проги... Так может есть просто компилятор, который, ну не знаю, будет имитировать работу ассемблера. Что-то как-то криво для учебных целей эмуль другой системы ставить.

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

А вообще, допустим, я хочу построить не квадракоптер, а робота, который за меня бы готовил, убирался и в универ ходил. На чем таких пишут? А если я хочу запрограммировать тот же атмеловский микроконтроллер, чтобы он проигрывал видео на дисплее - возможно ли это сделать?

В общем, скажите пожалуйста, как лучше построить свое обучение: с какого ассемблера начинать (чтобы микроконтроллеры программировать в дальнейшем)
Какое программное обеспечение скачать, чтобы хотя бы сымитировать выполнение ассемблеровского кода?
И если можете, скиньте литературы какой-нибудь, какую советуете.
2. Predator - 03 Апреля, 2017 - 11:41:25 - перейти к сообщению
вообще это язык на грани с машинным, у каждого процессора-контроллера свой и описан в датащите на процессор-контроллер.

если вы собираетесь писать на ассемблере под контроллеры- то не нужен вам MASM. Пишите сразу под контроллеры. WinAVR понимает, там и ассемблер проще.
3. wlmn - 03 Апреля, 2017 - 11:51:08 - перейти к сообщению
Predator пишет:
вообще это язык на грани с машинным, у каждого процессора-контроллера свой и описан в датащите на процессор-контроллер.

если вы собираетесь писать на ассемблере под контроллеры- то не нужен вам MASM. Пишите сразу под контроллеры. WinAVR понимает, там и ассемблер проще.


А не подскажите каких-нибудь видеоуроков или книжек про программирование авров на ассемблере и на си?
4. Predator - 04 Апреля, 2017 - 11:35:42 - перейти к сообщению
wlmn пишет:
Predator пишет:
вообще это язык на грани с машинным, у каждого процессора-контроллера свой и описан в датащите на процессор-контроллер.

если вы собираетесь писать на ассемблере под контроллеры- то не нужен вам MASM. Пишите сразу под контроллеры. WinAVR понимает, там и ассемблер проще.


А не подскажите каких-нибудь видеоуроков или книжек про программирование авров на ассемблере и на си?

Вот чего не подскажу - так этого, тут нужно взять готовый проект (чтобы было всё подключено и настроено) и датащит на контроллер с описанием системы команд - а дальше по принципу: надо проверить условие: CMP - модифицирует флаг 0 -> JZ - перепрыгнуть, если флаг 0 взведен. пишем CMP a,b; JZ a_ravno_b; и видим облом - CMP работает не с переменными а с регистрами -> надо сперва a и b в регистры положить.... в общем много думать и много работать.
А вообще я не рекомендовал-бы писать под контроллеры на ассемблере: усилий много, а толку от дополнительной оптимизации мало, разве что освоить и потом писать под ДСП...