Автор Тема: Asm для новичков  (Прочитано 7302 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн point212

  • Модераторы
  • *****
  • Пол: Мужской
  • Мосс смотрит на вас...
Re: Asm для новичков
« Ответ #15 : 21 Марта 2007, 11:28:33 »
Потому, что потом переходим на С# и получаем еще больше денег, чем за С++ :-) (но С++ нужно знать, чтобы лучше потом писать код и оптимизировать его правильно на языках более высокого уровня)
Спорно, кстати. Что нужно знать именно С++ чтобы лучше писать код на C#. Имхо нужно просто иметь бОльшой опыт программирования, чтобы составлять эффективные алгоритмы. И уметь их записывать в коде так, чтобы понятно было что они делают.
А всеми трюками по оптимизации должен заниматься компилятор.
Цитировать
point212
Ан вот и не религия совсем :-) Но после такой фразы ненароком может возникнуть холивар :-))))))
Поздно. Он уже начался. :) Потому что религия. Фанатеги. И джихад! :)

Цитировать
Pretorean
А чем С++ сложнее чистого С?? По мне- так гораздо проще и удобнее. Или вы не с ним сравнивали? :-)
Ну не скажи. Если С++ и С равнять, то ++ однозначно сложнее.
Я сначала брался учить С++... по тоооолстой такой зелёной книжке (автор зарубежный)... запутался в нюансах.
Потом попалась мне брошюрка страниц на 100 по Си. Советская. Замечательно ровным слоем легла в голове :)

Оффлайн tAZAR

  • Редкий гость
Re: Asm для новичков
« Ответ #16 : 21 Марта 2007, 11:56:00 »
Я сначала брался учить С++... по тоооолстой такой зелёной книжке (автор зарубежный)... запутался в нюансах.
Потом попалась мне брошюрка страниц на 100 по Си. Советская. Замечательно ровным слоем легла в голове :)
Ну, понеслась душа в рай :-)

По толстой зеленой книжке можно выучить с++ на среднякок (одной очень мало :-) )
По тонкой, на 100л, брошурке Си выучить нельзя.. Это только на справочник катит (по объему)... Можно просто кратко ознакомится... Ровным слоем она легла, потому, что там ничего серьезного, цто пудофф, написано не было.
Да, в С++ придется учить STL, концепцию объектно-ориентированного программирования (или вам это не нужно, будем все писать процеДУРНО? :-) ), MFC или WTL, или QT, или GTK+ например, Win32 API (ну, или какая там у вас ось? :-) )

Насчет перехода С++-C# просто хорошо знать именно С++ и иметь опыт программирования на нем (ИМХО). Тогда будут более правильные приложения на языках более высокого уровня. Т.к. основы оптимизации и т.д.- это, все же С/С++.
Копмилятор, кстати, не должен оптимизировать абсолютно все :-) Программисту тоже не должно быть влом написать быстро работающий код. Если я, например, не буду оптимизировать свой код - то  мои сливалки будут работать не пару часов, а пару суток (объемы в xls от 2,5 гектар...) :-)
Дальше хочу от вас аргументофф :-)

Оффлайн point212

  • Модераторы
  • *****
  • Пол: Мужской
  • Мосс смотрит на вас...
Re: Asm для новичков
« Ответ #17 : 21 Марта 2007, 12:02:33 »
Ну, понеслась душа в рай :-)

По толстой зеленой книжке можно выучить с++ на среднякок (одной очень мало :-) )
Я за стандарт говорил. А уж библиотеки - это пожалуйста заверните отдельно.

Цитировать
По тонкой, на 100л, брошурке Си выучить нельзя.. Это только на справочник катит (по объему)... Можно просто кратко ознакомится... Ровным слоем она легла, потому, что там ничего серьезного, цто пудофф, написано не было.
Конечно небыло. Синтаксис и десяток примеров.

Цитировать
Да, в С++ придется учить STL, концепцию объектно-ориентированного программирования (или вам это не нужно, будем все писать процеДУРНО? :-) ), MFC или WTL, или QT, или GTK+ например, Win32 API (ну, или какая там у вас ось? :-) )
Ну и в других ЯП прийдется. Без ввода-вывода программы должно быть прикольные получаются.

Цитировать
Насчет перехода С++-C# просто хорошо знать именно С++ и иметь опыт программирования на нем (ИМХО). Тогда будут более правильные приложения на языках более высокого уровня. Т.к. основы оптимизации и т.д.- это, все же С/С++.
Нет. Ну почему таки С/С++? Чем другие ЯП хуже?
Я имею в виду всякие Паскакали и прочие Бейсики :)
Основные конструкции языка те же. А разница между С++ и C# не меньше чем разница между Pascal и C#

Цитировать
Копмилятор, кстати, не должен оптимизировать абсолютно все :-) Программисту тоже не должно быть влом написать быстро работающий код. Если я, например, не буду оптимизировать свой код - то  мои сливалки будут работать не пару часов, а пару суток (объемы в xls от 2,5 гектар...) :-)
Дальше хочу от вас аргументофф :-)
Я имею в виду, конечно, что программист должен изобретать нормальные алгоритмы, а не шлемалевские.
А уж конкретными заморочками, как быстрее будет работать
int i;i=0;for(i;i<99;){i++} или for(int i=0;i<99;i++){} - это не его забота (пример взят с потолка).

Оффлайн tAZAR

  • Редкий гость
Re: Asm для новичков
« Ответ #18 : 21 Марта 2007, 12:15:40 »
Я за стандарт говорил. А уж библиотеки - это пожалуйста заверните отдельно.
STL - стандартная библиотека С++ (читай - стандарт С++, просто С++). Пожалуйста, не говори больше таких вещей :-)
"Standart Template Library"
Поэтому - это Базовый Функционал языка, неотделимая его часть.
Вот Boost  - это уже сторонняя либа.

Конечно небыло. Синтаксис и десяток примеров.
Во.Во. Можешь почитать с таким же успехом подобную книжку по С++... Эффект будет такой же, а пользы ноль, как и от брошурки по С.

Ну и в других ЯП прийдется. Без ввода-вывода программы должно быть прикольные получаются.
Up :-) Просто MFC  - это не VCL и не "не знаю как это называется" в VB... там бубен потребуется заточеный :-)
И его именно учить придется, а не прокачивать навык FastClick в рисовалке окошек и варкрафте... :-)

Нет. Ну почему таки С/С++? Чем другие ЯП хуже?
Я имею в виду всякие Паскакали и прочие Бейсики :)
Бейсики предлагаю сразу в расчет не брать, ибо зло и отстой..
Паскакали? Паскакали :-) Делфя +Object Pascal - ничего так язык и IDE (только в совокупности) для быстрой разработки софта с упором на интерфейс :-) Но синтаксис паскаля заставляет мой, простите, если такого писать нельзя - вырежте, "анус напрягаться" + рвотный рефлекс..

Основные конструкции языка те же. А разница между С++ и C# не меньше чем разница между Pascal и C#
Я имею в виду, конечно, что программист должен изобретать нормальные алгоритмы, а не шлемалевские.
А уж конкретными заморочками, как быстрее будет работать
int i;i=0;for(i;i<99;){i++} или for(int i=0;i<99;i++){} - это не его забота (пример взят с потолка).
Гкхм... Тфу..
Разница между  Pascal и C# - во всем, кроме одного папы :-) С# гораздо ближе к С++ и Java синтаксисом, методологией и архитектурой. Хотя, упорные делфисты-паладины кричат, что все слизано с делфи... это их, по ходу, греет тот факт, что отец Делфи проектировал С# :-)
Только вот отец Делфи просто осознал свою ошибку, и решил сделать на этот раз все правильно..

Оффлайн point212

  • Модераторы
  • *****
  • Пол: Мужской
  • Мосс смотрит на вас...
Re: Asm для новичков
« Ответ #19 : 21 Марта 2007, 12:39:09 »
STL - стандартная библиотека С++ (читай - стандарт С++, просто С++). Пожалуйста, не говори больше таких вещей :-)
"Standart Template Library"
Поэтому - это Базовый Функционал языка, неотделимая его часть.
Вот Boost  - это уже сторонняя либа.
Не понял. Это та, которая содержит всякие String и прочие cout?
Ну так ее в принципе можно оторвать... я так понял что С++ проектировался с расчетом на то, что он платформонезависим, а менять надо только библиотеки ввода-вывода.

Цитировать
Во.Во. Можешь почитать с таким же успехом подобную книжку по С++... Эффект будет такой же, а пользы ноль, как и от брошурки по С.
Правильно. Но конкретную либу можно доучить уже в процессе программирования. А за составление алгоритмов отвечает как раз парадигма ЯП. Вот её в той тоненькой книжечке и описали.
С другой стороны, я по синтаксису не могу различить что передо мной С или С++, пока не встречу какую-нибудь работу с ООП :)

Цитировать
Up :-) Просто MFC  - это не VCL и не "не знаю как это называется" в VB... там бубен потребуется заточеный :-)
MFC - это ужас. В древности пытался начать учить это чудо. Еще для Borland Pascal for Win. Кроме как "кошмар" и назвать никак не могу.

Цитировать
И его именно учить придется, а не прокачивать навык FastClick в рисовалке окошек и варкрафте... :-)
У тебя всё таки предвзятое отношение к интерфейсам.
VCL и её подобия - это хорошо. Хотя может это и не самая логичная библиотека. Но в сочетании с RAD, которые ты обозвал рисовалкой - средство, которое позволяет экономить время и напряжения мозгов. Мне нужно выполнять задачу, а не заморачиватся тем, как правильно написать обертку для очередного окошка. И тут рисовалки очень даже кстати. Это прямо подтверждается тем, что все иные стили разработки GUI приложений практически вытеснены с рынка.

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

Цитировать
Бейсики предлагаю сразу в расчет не брать, ибо зло и отстой..
Паскакали? Паскакали :-) Делфя +Object Pascal - ничего так язык и IDE (только в совокупности) для быстрой разработки софта с упором на интерфейс :-) Но синтаксис паскаля заставляет мой, простите, если такого писать нельзя - вырежте, "анус напрягаться" + рвотный рефлекс..
О! Мы таки зацепили Паскаль :) Ну теперь действительно понеслась!
Не вижу разницы между синтаксисами Си и Паскаля. Тут скорее дело привычки. Если твоей "первой любовью" был Си - все остальные языки будут казаться ужасом.
У меня "первой любовью" оказался паскаль. (Бейсик че-то не приколол). Но тем не менее от Перла и Питона меня не воротит. Зато воротит от Лиспа и Форта.

Цитировать
Гкхм... Тфу..
Разница между  Pascal и C# - во всем, кроме одного папы :-) С# гораздо ближе к С++ и Java синтаксисом, методологией и архитектурой. Хотя, упорные делфисты-паладины кричат, что все слизано с делфи... это их, по ходу, греет тот факт, что отец Делфи проектировал С# :-)
Только вот отец Делфи просто осознал свою ошибку, и решил сделать на этот раз все правильно..
Так вот в том то и дело, что Сишники упорно пытаются доказать что С# продолжение линии С-С++-С#. А на деле это винигрет из C++ Java и Pascal.

Дядя Вирт тоже осознал свою ошибку и создал Модулу-2. И кто на ней пишет? Так что дело в общем-то не в папе. А в раскрученности брэнда. Есть стереотип "Писать на С++ - это круто". Вот народ и пишет. Или там "Писать на паскале просто".


Воот...
[/quote]

Оффлайн tAZAR

  • Редкий гость
Re: Asm для новичков
« Ответ #20 : 21 Марта 2007, 13:31:49 »
Не понял. Это та, которая содержит всякие String и прочие cout?
Ну так ее в принципе можно оторвать... я так понял что С++ проектировался с расчетом на то, что он платформонезависим, а менять надо только библиотеки ввода-вывода.
Прости, но это бред.. STL есть везде, где есть С++ :-) это не  только std in/out :-) это еще и куча алгоритмов и нетипизированных контейнеров типа vector<xxx>, map<xxx>  и т.д.. Так вот, еще раз: STL и С++ - это стандартный С++ для всех платформ (это стандарт С++, ISO). Неделимое понятие :-) А cin и cout работают на любой платформе, кстати :-)

Правильно. Но конкретную либу можно доучить уже в процессе программирования. А за составление алгоритмов отвечает как раз парадигма ЯП. Вот её в той тоненькой книжечке и описали.
В составлении алгоритмов незаменимо помогает STL. Так что, прочитав только тонкую книжечку я никогда не скажу, что знаю С++ хоть как-то.

С другой стороны, я по синтаксису не могу различить что передо мной С или С++, пока не встречу какую-нибудь работу с ООП :)
А вот это очень плохо :-( Тем более, что в исходнике на С++ ты сразу увидишь ООП :-)

MFC - это ужас. В древности пытался начать учить это чудо. Еще для Borland Pascal for Win. Кроме как "кошмар" и назвать никак не могу.
У тебя всё таки предвзятое отношение к интерфейсам.

VCL и её подобия - это хорошо. Хотя может это и не самая логичная библиотека. Но в сочетании с RAD, которые ты обозвал рисовалкой - средство, которое позволяет экономить время и напряжения мозгов. Мне нужно выполнять задачу, а не заморачиватся тем, как правильно написать обертку для очередного окошка. И тут рисовалки очень даже кстати. Это прямо подтверждается тем, что все иные стили разработки GUI приложений практически вытеснены с рынка.
Насчет VCL - а я и не спорю :-) Нормальная либа, написанная на Делфи, использующаяся в C++ Builder программистами на С++... Это меня, правда, наводит на некоторые сомнительные мысли... Логичности ей, мягко говоря, не хватает. А так - ничего - привыкнуть можно.. Тем более, что скорость рисования "морды" зависит не от VCL, а от IDE дизайнера. Поэтому, давай называть вещи своими именами, а не говорить VCL, когда имеется в виду  дизайнер форм в IDE.. И еще насчет VCL - сам знаешь, что у меня есть небольшой опыт в этой области, и знаешь, что я положительно отзывался о Делфийном дизайнере окошек, собственно, почему делфи для проекта и выбрал.. Но мы же просто говорим о С++ - так там нужно будет учить или MFC или WTL, или QT и т.д.... VCL там нет. (Борланд Билдера не в счет)..

Другой вопрос что существование таких систем существенно снижает порог вступления в роль программиста. Т.е. любой чайник изучивший синтаксис может писать проги, даже не зная основ алгоритмизации.
+1 :-) Ой как правильно сказал.

О! Мы таки зацепили Паскаль :) Ну теперь действительно понеслась!
Не вижу разницы между синтаксисами Си и Паскаля. Тут скорее дело привычки. Если твоей "первой любовью" был Си - все остальные языки будут казаться ужасом.
У меня "первой любовью" оказался паскаль. (Бейсик че-то не приколол). Но тем не менее от Перла и Питона меня не воротит. Зато воротит от Лиспа и Форта.
Моя "первая любовь - Turbo Pascal  :-) После встречи с С++ и С, паскаля выгнал вон.

Так вот в том то и дело, что Сишники упорно пытаются доказать что С# продолжение линии С-С++-С#. А на деле это винигрет из C++ Java и Pascal.
Наличие наследования всего от Object не говорит о принадлежности к паскалю. Я уже долго пишу на C# в связи с производственной необходимостью, так вот - от делфи там ничего, кроме того, что это тоже объектно-ориентированный язык. :-)

Дядя Вирт тоже осознал свою ошибку и создал Модулу-2. И кто на ней пишет? Так что дело в общем-то не в папе. А в раскрученности брэнда. Есть стереотип "Писать на С++ - это круто". Вот народ и пишет. Или там "Писать на паскале просто".
Брэнд рулит - это неоспоримо. Вирту кучу плюсов за 3 тома, за модулу, кажется, многие ему бы чего-нибудь оторвали с удовольствием :-)
Писать на С++ - это круто, да. И наиболее актуально в сфере нашего рынка труда.

Кстати, долго держал вот это в кармане:
template
и
generics

А в Делфи нету :-)

Воот...


Вооот... Кто больше "О" ? :-)))))

Оффлайн Pretorean

  • Мастер
  • Пол: Мужской
Re: Asm для новичков
« Ответ #21 : 21 Марта 2007, 14:46:06 »
очередной флуд Си vs Паскаль ... админ, замыкай тему.

Оффлайн tAZAR

  • Редкий гость
Re: Asm для новичков
« Ответ #22 : 21 Марта 2007, 15:05:55 »
очередной флуд Си vs Паскаль
Ничего не флуд.. Пусть человек почитает, и выберет себе ЯП вместо асма..

Оффлайн Dio

  • Мастер
  • Пол: Мужской
Re: Asm для новичков
« Ответ #23 : 21 Марта 2007, 16:55:11 »
Флуд развели. У вас попросили помощи в асме а вы тут о сях и паскале. Асм жив и всегда будет жить. Во многих отраслях нет замены асму... Если человек решил что это ему нужно не стоит его отговаривать. Может вы сбиваете его с пути истинного...  Когда вам задают вопрос о том с какого дистра линукса начать чайнику изучение вы же не советуете ему виндовс виста, потому что это легко красиво и модно.

Оффлайн point212

  • Модераторы
  • *****
  • Пол: Мужской
  • Мосс смотрит на вас...
Re: Asm для новичков
« Ответ #24 : 21 Марта 2007, 17:26:18 »
Злыдни вы писюкатые, уже и пофлудить нельзя. Я вот из этого обсуждения почерпнул важные для себя сведения, которых не знал.

Оффлайн tAZAR

  • Редкий гость
Re: Asm для новичков
« Ответ #25 : 22 Марта 2007, 09:40:13 »
Асм жив и всегда будет жить. Во многих отраслях нет замены асму... 

Г.н. Dio, приведите, пожалуйста, примеры в студию на предмет многих отраслей, где без асма не прожить. И тогда человек посмотрит на эти отрасли, и подумает, насколько сильно ему нужен асм. Он, может, просто решил Яп поучить хороший, так, мое ИМХО :-) - уж лучше чуть-чуть на нем пописать, ради интереса, а потом сразу спрыгивать на язык более высокого уровня. Если ж ему пригодится асм в некоторых участках кода - так пусть смело спрыгивает на С/С++/Delphi - там ведь асмовые вставки еще никто не запрещал :-)

Оффлайн point212

  • Модераторы
  • *****
  • Пол: Мужской
  • Мосс смотрит на вас...
Re: Asm для новичков
« Ответ #26 : 22 Марта 2007, 10:34:23 »
АСМ нужен чтобы разобраться в архитектуре компьютера. Но все книжки, какие я видел относятся максимум к архитектуре i686. Дополнительно рассматривают DMA, IRQ. И взаимодействие с ISA,PCI,AGP. А про все новшества вроде USB, EMA, PCI-X, многопроцессорность, параллельные вычисления фиг кто расскажет. Так что и в качестве обучалки по архитектуре ПК уже не катит.

Оффлайн Pretorean

  • Мастер
  • Пол: Мужской
Re: Asm для новичков
« Ответ #27 : 22 Марта 2007, 10:51:27 »
АСМ нужен чтобы разобраться в архитектуре компьютера. Но все книжки, какие я видел относятся максимум к архитектуре i686. Дополнительно рассматривают DMA, IRQ. И взаимодействие с ISA,PCI,AGP. А про все новшества вроде USB, EMA, PCI-X, многопроцессорность, параллельные вычисления фиг кто расскажет. Так что и в качестве обучалки по архитектуре ПК уже не катит.
чтоп с нуля во всё это вникнуть нужно хотябы прочитать книжку по асму где описана работа в защищенном режыме 386-го, потом начинать курить Си и в комплекте либо книжку "Ядро линукса в коментариях" либо "Операционные системы. Разработка и реализация" Таненбаума
там вся переферия подробно в примерах разжована

Оффлайн Dio

  • Мастер
  • Пол: Мужской
Re: Asm для новичков
« Ответ #28 : 22 Марта 2007, 12:11:47 »
Г.н. Dio, приведите, пожалуйста, примеры в студию на предмет многих отраслей, где без асма не прожить. И тогда человек посмотрит на эти отрасли, и подумает, насколько сильно ему нужен асм. Он, может, просто решил Яп поучить хороший, так, мое ИМХО :-) - уж лучше чуть-чуть на нем пописать, ради интереса, а потом сразу спрыгивать на язык более высокого уровня. Если ж ему пригодится асм в некоторых участках кода - так пусть смело спрыгивает на С/С++/Delphi - там ведь асмовые вставки еще никто не запрещал :-)
Любые эмбиент системы. И не нужно рассказывать что программы для микроконтроллеров пишутся на сях а дальше всё за вас сделает транслятор. Благодаря людям которые не задумываются об архитектуре, операционные системы до сих пор работают на i586. Бинарные дистры линухов большей части и вообще идут i486 с влючёной опцией x86  в ядре. Опять же из этого вытекает что быстрей работает тот комп у кого больше мегагерц. Большая часть пользователей работает на XP который вы можете запустить хоть на первом пне... Кодеки видео и аудио используют максимум sse2, хотя технология появилась ой как много лет назад.  А о управлении процессами и виртуализации и вообще большинство не знает. Задумывается ли программер когда использует if о том что процессор не умеет сравнивать строки и многие другие типы данных, и даже много уровневые команды которые появились в процессорах старше 8086 это макросы которые построены на командах перехода по флагам процессора, ноль не ноль, переполнение или не препролнение, 0 или 1 в знаковом бите. Задумывается ли о том что складывая 2 числа с плавающей запятой, выполняет не одно действие как минимум 3, а при перемножении нужна двойная разрядная сетка процессора.

Оффлайн Pretorean

  • Мастер
  • Пол: Мужской
Re: Asm для новичков
« Ответ #29 : 22 Марта 2007, 12:16:58 »
замечательно сказал, уважаемый.
но дело в том что если много задумывацо об этих ньюанса то на собственно работу не останецо времени
да! о этом нада знать и изредко учитывать но нельзя зацыкливацо
как говорицо или шашечки или ехать :)
« Последнее редактирование: 22 Марта 2007, 12:18:25 от Pretorean »