Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Asembler или Си? Что изучать? 
:(
    Опции темы
nurik3
Дата 21.3.2010, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 21.3.2010

Репутация: нет
Всего: нет



Начал изучать программирование с asemblera. Скачал кучу книг, стал изучать самостоятельно, есесно ничего не понял. Затем попал на wasm.ru, статьи SERRGIO оказались просто гениальными, а вот уроки Iczelionа мне не понятны. Например, попадается слово "класс", а определение этому термину не дается. 
А может нужно сначала с Си начать?
PM MAIL   Вверх
stat007
Дата 21.3.2010, 21:27 (ссылка)    | (голосов:9) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 521
Регистрация: 9.10.2008

Репутация: -2
Всего: -4



Если ты хочешь писать программы для ОС и всё что связано с Операционной системой, тогда изучай Асемблер. Если же ты хочешь писать визуальные программы, то С++. Начинать с С не обязательно, т.к. С++ это новое поколение языка С, можно сказать его усовершенствование. Так что С++ изучай! smile 
PM MAIL   Вверх
DarkProg
Дата 21.3.2010, 21:28 (ссылка) |   (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


Профиль
Группа: Завсегдатай
Сообщений: 1784
Регистрация: 11.3.2009
Где: Земля

Репутация: нет
Всего: 19



Цитата(nurik3 @  21.3.2010,  21:07 Найти цитируемый пост)
А может нужно сначала с Си начать? 

"Ну ты блин даёшь" - как сказали в одном замечательном фильме.
С какого блин ассемблера начинают программирование, тебе бы в паскале для начала начать, а ты с конца начал, так тебе вообще ничего не будет понятно, я когда начинал уже даже бэйсик за язык не считался а я с него начинал, потом паскаль, потом делфи, а С - это ещё тот язык если с него начнёшь больше бошка болеть будет - начинать надо с простого.


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
nurik3
Дата 21.3.2010, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 21.3.2010

Репутация: нет
Всего: нет



Цитата(DarkProg @ 21.3.2010,  21:28)
Цитата(nurik3 @  21.3.2010,  21:07 Найти цитируемый пост)
А может нужно сначала с Си начать? 

"Ну ты блин даёшь" - как сказали в одном замечательном фильме.
С какого блин ассемблера начинают программирование, тебе бы в паскале для начала начать, а ты с конца начал, так тебе вообще ничего не будет понятно, я когда начинал уже даже бэйсик за язык не считался а я с него начинал, потом паскаль, потом делфи, а С - это ещё тот язык если с него начнёшь больше бошка болеть будет - начинать надо с простого.

Вообще-то я хочу понять, как работает компьютер, вот и начал с ASM. А вот Бейсик изучать не надо, он только мозги портит (писал на нем программки). 
Ну кто знает asm  и Си? Поделитесь с опытом? 

PM MAIL   Вверх
Данкинг
Дата 21.3.2010, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: нет
Всего: 130



Цитата(nurik3 @  21.3.2010,  22:31 Найти цитируемый пост)
А вот Бейсик изучать не надо, он только мозги портит (писал на нем программки). 

Странно. Я в школе начинал с GWBasic'а и TurboBasic'а - и ничего, основы программирования они мне дали.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
nurik3
Дата 21.3.2010, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 21.3.2010

Репутация: нет
Всего: нет



Цитата(Данкинг @ 21.3.2010,  22:34)
Цитата(nurik3 @  21.3.2010,  22:31 Найти цитируемый пост)
А вот Бейсик изучать не надо, он только мозги портит (писал на нем программки). 

Странно. Я в школе начинал с GWBasic'а и TurboBasic'а - и ничего, основы программирования они мне дали.

Прошу прощения, шутка про Бейсик неудачная, он мне тоже много что дал. Я с ним познакомился  на корвете, вот теперь охота все строки нумеровать. 
После того, как в аsmе встретился с "классами", подумал - это Си.  Такое чувство, что они очень похожи. Насколько Си отличается от аcсемблера? Стоит ли браться за аsm, не зная языка высокого уровня?

Это сообщение отредактировал(а) nurik3 - 22.3.2010, 00:00
PM MAIL   Вверх
Данкинг
Дата 22.3.2010, 00:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: нет
Всего: 130



Я думаю, всё же сначала логичней освоить язык высокого уровня, чтобы понять "что да как делается". А затем уже посредством ассемблера разбирать, "как это работает". smile

Добавлено через 1 минуту и 17 секунд
Цитата(nurik3 @  21.3.2010,  23:53 Найти цитируемый пост)
Я с ним познакомился  на корвете, вот теперь охота все строки нумеровать. 

В TurboBasic и QBasic нумеровать ничего уже не надо было. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
bsa
Дата 22.3.2010, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Лично я изучал так: basic, pascal, asm, C, C++. Могу сказать, что для написания сферических одноклеточных в вакууме, можно начать и с asm. Так как для выполнения простейшей операции придется писать довольно много кода... Поэтому в современном мире ассемблер используется в системном программировании (написание ядер ОС), при создании компиляторов, а также при тонкой оптимизации прикладных библиотек. При этом, на ассемблере редко пишутся функции полностью, чаще делаются просто небольшие вставки кода в текст программы на языке высокого уровня.
PM   Вверх
GoldFinch
Дата 22.3.2010, 00:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 6
Всего: 26



Си и асм, настолько разные вещи, что их лучше не сравнивать.
Для изучения программирования, изучения винды, изучения того "как оно изнутри работает" Си лучше не трогать, а изучать асм.
Если изучать С, то вы будете изучать систему типов С, стандартную библиотеку С, и прочие сторонние и ненужные вещи.

Применительно к системному программированию, асм ничем не сложнее Си
При изучении системы, все программы будут сводиться исключительно к вызову функций АПИ, 
если использовать invoke, то код на асме будет мало отличаться от аналогичного кода на С

Цитата(nurik3 @  21.3.2010,  21:07 Найти цитируемый пост)
Например, попадается слово "класс", а определение этому термину не дается.

надеюсь не "оконный класс" ;) ? про них надо читать msdn
родной поддержки классов в С нет, как и в асме.
в С++ классы есть, но это никак не связано с системным программированием.

Добавлено через 3 минуты и 18 секунд
разумеется прикладные программы на асме не пишут. это возможно, но слишком затратно.
на С\С++ прикладные программы тоже не пишут. причина та же.
а для низкоуровнего системного программирования, взаимодействия с существующим бинарным кодом - асм нужен.
PM MAIL ICQ   Вверх
borisbn
Дата 22.3.2010, 07:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



Могу предложить компромисс: писать на Си/Си++ с опцией "компилировать в асм" для того, чтобы разобраться, что там происходит на уровне процессора.
IMHO чем выше язык программирования, тем меньше ошибок. Даже драйвера в windows пишутся на Си++ (сам писал на NuMega)
P.S. Про "классы" в асм - приведи в контексте


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
nurik3
Дата 22.3.2010, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 21.3.2010

Репутация: нет
Всего: нет



Цитата(borisbn @ 22.3.2010,  07:37)
Могу предложить компромисс: писать на Си/Си++ с опцией "компилировать в асм" для того, чтобы разобраться, что там происходит на уровне процессора.
IMHO чем выше язык программирования, тем меньше ошибок. Даже драйвера в windows пишутся на Си++ (сам писал на NuMega)
P.S. Про "классы" в асм - приведи в контексте

Изучая ассемблер по книжке Iczelionа я встретил такие слова:
" ...  это инициализация класса окна. Класс окна - это не что иное, как наметки или спецификации будущего окна. Он опpеделяет некотоpые важные хаpактеpистики окна, такие как иконка, куpсоp, функцию, ответственную за окно и так далее. Вы создаете окно из класса окна. Это некотоpый соpт концепции ООП  ..." 
(и это все в ASMе !?).

Многие пишут, что ассемблер страшен, сложен. Но как работает подпрограмма (работу стека, регистра ebp и т.д.) я освоил на удивление легко, ничего сложного нету. 
  Дж. Либерти в своем учебнике "Освой С++ за 21 день" очень подробно описывает про глобальные и локальные переменные, даже есть такие слова: "будьте начеку". И действительно, можно запутаться. Для четкого понимания решил выучить подробнее, поэтому взялся за ассемблер. Стало все предельно ясно, ну как работает подпрограмма.
 Но вот новая проблема - "классы" (как понимаю, здесь я путаю "разные" "классы", если так можно выразится). 
Вот что получается, ассемблер и Си/C++ нужно учить попеременно? 
Подскажите выбрать правильное направление? 
Для меня главное, это изучения не языка программирования, а работы компьютера, ОС. 

Это сообщение отредактировал(а) nurik3 - 22.3.2010, 10:05
PM MAIL   Вверх
borisbn
Дата 22.3.2010, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



про класс окна лучше почитать в MSDN
Если же
Цитата(nurik3 @  22.3.2010,  10:03 Найти цитируемый пост)
Для меня главное, это изучения не языка программирования, а работы компьютера, ОС

то язык программирования (ассемблер или Си) IMHO тут не при чём. Нужны книги именно по архитектуре компьютера и ОС



--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
nurik3
Дата 22.3.2010, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 21.3.2010

Репутация: нет
Всего: нет



Цитата(borisbn @ 22.3.2010,  10:57)
про класс окна лучше почитать в MSDN
Если же
Цитата(nurik3 @  22.3.2010,  10:03 Найти цитируемый пост)
Для меня главное, это изучения не языка программирования, а работы компьютера, ОС

то язык программирования (ассемблер или Си) IMHO тут не при чём. Нужны книги именно по архитектуре компьютера и ОС

Чтоб знать, как работает ОС, думаю понадобится не один год упорных занятий, знание языков программирования и энглиш IMHO нужно.

Это сообщение отредактировал(а) nurik3 - 22.3.2010, 13:03
PM MAIL   Вверх
sdukshis
Дата 22.3.2010, 23:20 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 23.3.2009

Репутация: нет
Всего: 1



Ваш выбор можно определить на основе того, что Вы хотите:

 - научиться программировать: Pascal (управляющие конструкции, строковые алгоритмы, алгоритмы поиска и сортировки, структуры данных, алгоритмы на графах и т.д.)

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

- освоить язык промышленного уровня: C (только после того, как научитесь программировать, см. Pascal)

- писать программы не рассчитывая понять как они реально работают: С++ (изучаю его уже много лет, и все время узнаю о нем много нового)

- освоить язык промышленного уровня, для работы с которым и не надо знать как он работает: Java, C#

- прослыть модным прогером: Python, Go

- рекурсивно съесть свой мозг : Haskell

P.S. Моя история изучения ЯП
                                                                                                                       ...            ...
                                                                                                                       /              /
                                                                                                                     Haskell->Haskell -> ...
                                                                                                                    /              Haskell ->...
                                                                                                                   /              /
                                   Java -> Rip               Asm -> to be continued           Haskell -> Haskell - >...
                                 /                                /                                              /
QBasic -> Pascal -> C -> C++ -> C++ -> C++ -> C++-> C++ -> C++ -> C++ -> to be continued 
                                         \                  \                     \     \          \            \ 
                                          C# -> Rip    Prolog -> Rip  \     \          \            Pascal (for academic usage) 
                                                                                    \     \           C (we all usually gone to the basics) -> to be continued
                                                                                     \     lisp -> maybe in future
                                                                                    PHP -> Python -> to be continued

Это сообщение отредактировал(а) sdukshis - 22.3.2010, 23:33
PM MAIL   Вверх
borisbn
Дата 23.3.2010, 07:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



sdukshis, +1 smile
Почти в точности совпадает с моей историей. 
Я бы ещё добавил
- руководитель группы программистов smile


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0817 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.