Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.07.2017, 20:59   #1
fo,wf
Пользователь
 
Регистрация: 16.06.2017
Сообщений: 22
По умолчанию можно ли узучить ассемблер за 2года?

На уровень 30 из 100, при учёте того что: 0-5 начальный уровень, 5-15 лёгкие программы "хелло ворлд" и т. п., от 15 повышенные
С учётом того что я сейчас на 7 из 100, также с тем что я его узучаю стабильно.
fo,wf вне форума Ответить с цитированием
Старый 15.07.2017, 16:25   #2
agmag
Пользователь
 
Регистрация: 15.07.2017
Сообщений: 31
По умолчанию

Можно за меньше - зависит от опыта программирования.
Можно совершить такую ошибку, как начинать программировать на ассемблере, не изучив основных алгоритмов и структур данных, пытаться изобрести их самостоятельно, причем на ассемблере(что сложно и приведет к забрасыванию обучения), либо и вовсе их не зная, застрять и забросить обучение.

Поэтому первым идет Си или Паскаль - на них изучаются сортировка, типы данных(байтовое понимание), массивы, циклы, работа со строками, стек, преобразование между двоичным и текстовым представлением чисел(почти первая задача, которая решается на ассемблере новичками).
Точно также рекомендую не изучать OpenGL, используя ассемблер. Точно также и с WinAPI - сложность с ассемблером умножайте на 3. Если всё это пытаться изучать на ассемблере, то можно застрять и потом не возвращаться, т.к. тяжко потом читать незакомментированные полотна ассемблерных мнемоник. Таким подходом можно Годами подходить к ассемблеру и его забрасывать.

Поэтому первым делом изучается Си(не С++) - друг и брат ассемблера. Изучая Си, можно здорово улучшить навыки программирования на ассемблере и, изучая ассемблер, можно здорово поднять навыки программирования на Си.
И вот почему:
Код:
0000000000400526 <main>:
  400526:	55                   	push   rbp
  400527:	48 89 e5             	mov    rbp,rsp
  40052a:	48 83 ec 10          	sub    rsp,0x10
  40052e:	c7 45 fc 05 00 00 00 	mov    DWORD PTR [rbp-0x4],0x5
  400535:	c7 45 fc 00 00 00 00 	mov    DWORD PTR [rbp-0x4],0x0
  40053c:	eb 0e                	jmp    40054c <main+0x26>
  40053e:	bf e4 05 40 00       	mov    edi,0x4005e4
  400543:	e8 b8 fe ff ff       	call   400400 <puts@plt>
  400548:	83 45 fc 01          	add    DWORD PTR [rbp-0x4],0x1
  40054c:	83 7d fc 06          	cmp    DWORD PTR [rbp-0x4],0x6
  400550:	7e ec                	jle    40053e <main+0x18>
  400552:	b8 00 00 00 00       	mov    eax,0x0
  400557:	c9                   	leave  
  400558:	c3                   	ret
Этот ассемблерный листинг получается, если скомпилировать следующую программу:
Код:
int main(){
	int i=5;
	for(i=0;i<7;i++){
		puts("hi");
	}
	return 0;
}
а затем "просмотреть" исполнимый файл коммандой objdump -M intel intel-mnemonic -d a.out
Так можно узнавать как на ассемблере выглядит, например, цикл и другие конструкции, как проводятся оптимизации(развертка циклов и т.д.).
Си изучать лучше под Линуксом, типа Ubuntu.
agmag вне форума Ответить с цитированием
Старый 15.07.2017, 17:19   #3
Aoizora
Заблокирован
 
Регистрация: 11.11.2016
Сообщений: 261
По умолчанию

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

Для изучения асма советую писать криптор.

Последний раз редактировалось Aoizora; 15.07.2017 в 17:22.
Aoizora вне форума Ответить с цитированием
Старый 15.07.2017, 20:43   #4
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Цитата:
Сообщение от Aoizora Посмотреть сообщение
Для изучения асма советую писать криптор.
Ага, а лучше сразу операционную систему..

Цитата:
Сообщение от Aoizora Посмотреть сообщение
в системщине редко требуется что-то кроме вызова API и прерываний.
Я Вас умоляю, там, где только вызовы API, ассемблер ни разу не нужен. Никакого преимущества перед С
Black Fregat вне форума Ответить с цитированием
Старый 15.07.2017, 21:07   #5
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Цитата:
Сообщение от agmag Посмотреть сообщение
а затем "просмотреть" исполнимый файл коммандой objdump
..надеюсь это шутка? Учить асм по сишному дизасму, это самоубийство!
Пример выше на чистом асме укладывается в 4 строчки..
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 15.07.2017, 21:20   #6
Aoizora
Заблокирован
 
Регистрация: 11.11.2016
Сообщений: 261
По умолчанию

Цитата:
Сообщение от R71MT Посмотреть сообщение
..надеюсь это шутка? Учить асм по сишному дизасму, это самоубийство!
Пример выше на чистом асме укладывается в 4 строчки..
Зато реверсить сможет.
Aoizora вне форума Ответить с цитированием
Старый 15.07.2017, 21:21   #7
fo,wf
Пользователь
 
Регистрация: 16.06.2017
Сообщений: 22
По умолчанию

Цитата:
Сообщение от Black Fregat Посмотреть сообщение
Никакого преимущества перед С

нефига, компилятор ассемблера легке компилятора с. Для людей у которых скорость интернета 5кб/с (например я )это возможно единственная возможность программировать программы. :3
fo,wf вне форума Ответить с цитированием
Старый 15.07.2017, 23:38   #8
Aoizora
Заблокирован
 
Регистрация: 11.11.2016
Сообщений: 261
По умолчанию

Цитата:
Сообщение от fo,wf Посмотреть сообщение
нефига, компилятор ассемблера легке компилятора с. Для людей у которых скорость интернета 5кб/с (например я )это возможно единственная возможность программировать программы. :3
Может, ты себе вообще купишь процессор 8086 и будешь заниматься с ним извратом?
Цитата:
Сообщение от fo,wf Посмотреть сообщение
Для людей у которых скорость интернета 5кб/с (например я ). :3
Напомнило, как я в нулевых неделю с докачкой загружал тулчейн си с IDE по GPRS. Потом одна тян спросила меня, почему я в этом возрасте не бухал за гаражами и не клеил шкур.
Aoizora вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
можно ли писать php код внутри javascript инструкции if? если можно, то как это сделать? Ubihinon JavaScript, Ajax 2 20.02.2012 08:40
можно ли писать php код внутри javascript инструкции if? если можно, то как это сделать? Ubihinon PHP 2 18.02.2012 17:45
Как можно собрать Builder чтобы можно было бы заменять большие части кода? cargo29 Общие вопросы Delphi 17 18.02.2011 20:47
Как можно создать графический редактор где можно с помощю циркуля рисовать круг, а с линейки чертитьлинию Aksuubai Общие вопросы Delphi 3 03.06.2010 19:18
RichEdit. как можно вставлять картинку туда? как можно Скрол програмно вниз двигать? Svop Компоненты Delphi 7 28.11.2006 21:07