PDA

Просмотр полной версии : Быстро выучить Ассамблер


Asset
07.02.2010, 20:47
Посоветуете те кто программирует на ассемблере.На своём опыте что для начало нужно знать. Я вроде бы не тупой но ленивый немного.Что можете посоветовать для быстрого изучение языка. Паскаль учил что та не понравился но понил что к чему.

total90
07.02.2010, 20:52
тоисть ты без опыта в программировании, хочешь ассемблер учить?

cheater_man
07.02.2010, 21:02
Я асму начал учить при средних знаниях C++, и неплохих знаниях C# .net + отличных знаниях архитектуры ЭВМ. Так что тебе быстрое изучение асма не светит :)

Kaimi
07.02.2010, 21:04
тоисть ты без опыта в программировании, хочешь ассемблер учить?


Я асму начал учить при средних знаниях C++, и неплохих знаниях C# .net

И как же знания из с# помогают в изучении ассемблера?

Asset
07.02.2010, 21:07
Нет я же сказал что учил Паскаль

Asset
07.02.2010, 21:09
Мне интересно за сколько можно выучить сроки !!!

cheater_man
07.02.2010, 21:10
И как же знания из с# помогают в изучении ассемблера?
Нет конечно это так к сведенью :)

cheater_man
07.02.2010, 21:11
Мне интересно за сколько можно выучить сроки !!!
Ты знаком хотябы с устройством процессора x86?

TRX.new
07.02.2010, 21:12
Ты знаком хотябы с устройством процессора x86?

В изучение ассемблера входит изучение архитектуры x86, работы процессора и памяти. Начинай учить с рассылок Калашникова.

Asset
07.02.2010, 21:15
[QUOTE]В изучение ассемблера входит изучение архитектуры x86, работы процессора и памяти. Начинай учить с рассылок Калашникова.

Я щяс читаю Питера Абеля посоветовали это нормально для новичка

slesh
07.02.2010, 21:28
Я когда начал учить асм, то чуть чуть знал паскаль. Для досовских основ достаточно было.
ЗА всю жизнь юзал тока справочник по инстукциям из книги юрова.
Потом когда уже хорошо знал асм, наткнулся на саму книгу. Советую почитать.
Assembler. Учебник для вузов. 2-е изд. / В. И. Юров — СПб.: Питер, 2003. — 637 с.: ил

Babusha
07.02.2010, 21:53
[толсто]
Ассемблер почти не нужен никому.
Уже ОС приспособились на си писать.
И судя по АссАмблиру в сабже ТС будет очень сложно очень.
Но он будет старатся вычитать первые 2 предложения любой книги и понять что такое х86 бла бла.
Потом ему надоест через 2 минуты и он пойдет дальше сидеть В Контакте
[/толсто]

Adio
07.02.2010, 22:16
Я когда начал учить асм, то чуть чуть знал паскаль. Для досовских основ достаточно было.
ЗА всю жизнь юзал тока справочник по инстукциям из книги юрова.
Потом когда уже хорошо знал асм, наткнулся на саму книгу. Советую почитать.
Assembler. Учебник для вузов. 2-е изд. / В. И. Юров — СПб.: Питер, 2003. — 637 с.: ил
Можно личный вопрос ? сколько ты лет изучаеш АСМ ? или другие языки.

slesh
08.02.2010, 10:55
2 Babusha Асм нужен всегда. Реверсинг, отладка сторонних прог через Ольку или Иду (HexRay частенько дохнет). А также всевозможные куски шелкодов, хуков и тому подобное. Конечно же можно всё и на других языках писать, но всё равно рано или поздно в спец софте понадобится знать хотябы основные инструкции.

2 Adio Примерно 6,5 лет назад впервые увидел Паскаль. Где-то через полгода-год увлекся ассемблером, потом делфи, потом асмом под винду, потом php потом C (DDK) потом С под Win.

altblitz
08.02.2010, 11:36
2 Babusha Асм нужен всегда. Реверсинг, отладка сторонних прог через Ольку или Иду (HexRay частенько дохнет). А также всевозможные куски шелкодов, хуков и тому подобное.

2 Adio Примерно 6,5 лет назад впервые увидел Паскаль. Где-то через полгода-год увлекся ассемблером, потом делфи, потом асмом под винду, потом php потом C (DDK) потом С под Win.
первое знакомство с кодингом - Паскаль, даже Турбо Паскаль, ради интереса.

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

АСМ учил по мануалам GCC.

Gar|k
08.02.2010, 13:03
Почитал, все молодцы :), но человек спрашивал совета по книжкам и срокам.
Лично я не помню сколько мне понадобилось времени что-бы понять запомнить команды, но точно меньше месяца. Начинал я понимать с рассылок Калашникова (http://www.kalashnikoff.ru/Assembler/) (уже советовали), но прочитав их до середины начал читать другой источник - методичку нашу по МОП (http://zona-chat.narod.ru/faker.rar) (машинно ориентированное программирование). Сейчас вот пришлось учить асм под 8051, тяжеловато голове по другому мыслить. 2 Babusha - еще есть люди, которые программируют микрокотроллеры :cool: да и системный загрузчик или драйвер с перехватом ядерных функций ты без ассемблера врятли грамотно напишешь.

RDL_Rider
08.02.2010, 13:08
2 Babusha - еще есть люди, которые программируют микрокотроллеры 8)
И главное, делают это на асме :)

Ra$cal
08.02.2010, 13:11
кодить мк еще цветочки имхо, нас в универе на асме S/390 кодить заставляли (при этом мы должны были написать компилятор, компоновщик, да еще и отладчик для программ, которые писали)

cheater_man
08.02.2010, 13:12
[толсто]
Ассемблер почти не нужен никому.
Уже ОС приспособились на си писать.
И судя по АссАмблиру в сабже ТС будет очень сложно очень.
Но он будет старатся вычитать первые 2 предложения любой книги и понять что такое х86 бла бла.
Потом ему надоест через 2 минуты и он пойдет дальше сидеть В Контакте
[/толсто]
Твоё утверждение неверно:
Во-первых - есть такая область "науки" как реверсинг.
Во-вторых - ты некогда не заставишь работать машину(прибор), незная её команды(грубо говоря :) ), тем более в наш век ноликов и едениц :D .
ну и т.д. тут можно продолжать до бесконечности... ;)

slesh
08.02.2010, 13:20
Вообще быстро выучить асм - это тоже самое <<Похудеть за неделю на 5 кг без диеты и хирургических операций>>
Т.е. вроде бы как и никто не говорил что этого нельзя сделать, но с другой стороны - как то смутно представляется это всё.

Но по крайней мере можно за неделю запросто выучить основы, а именно работу с памятью и все основные инструкции. Все остальные шаги уже зависят только от области. Потому что если кодить под Win то придется WinApi учить - а это дооолго. Потому что MSDN и не неделю не прочесть ))
Если под дос(хз тока зачем) то опять же придется учить досовские прерывания, а налогично и для пингвинов. Но главное тока одно - инструкции везде одинаковы.

Ra$cal
08.02.2010, 13:27
вобщем вопрос как обычно - что желаем: выучить синтаксис или научиться программить. Первое займет пару тройку недель. Второе месяцы. Не говоря про апи и прочее. Просто осознать, что такое память, как ей пользоваться, адресовать итп.

Eo0
08.02.2010, 13:32
Что бы не создавать копию спрошу здесь. Не могу определится что лучше учит C++ или asm, вроде asm и размер прог маленький и скорость выше, но наверняка больше времени потрачу хз. напрягает ещё что надо win api либо пробовать что то между vcl или .net, вот и тут не могу определится Boraland c++ builber удобно, но лишний метр библиотек, да и мне показалась что так работает медленное, qt слишком много весит, стоит builder юзать?

altblitz
08.02.2010, 13:40
... Потому что если кодить под Win то придется WinApi учить - а это дооолго. Потому что MSDN и не неделю не прочесть ))
Если под дос(хз тока зачем) то опять же придется учить досовские прерывания, а налогично и для пингвинов. Но главное тока одно - инструкции везде одинаковы.
letitbit.net/download/1152.1212a5724cbf11ac3ca5a1e0b/P_V_Rumyantzev_W32_API.pdf.html

вас не смущает, господа Ачатовцы,
Вин требует ресурсов под домашний супер-комп,
и в тоже время - использует инструкции ASM x386?

slesh
08.02.2010, 13:58
2 altblitz Не говори глупости. Если бы ты видел как и что сделано, то понял бы почему столько ресурсов хавает. Темболее в винде довольно жестокая система и даже одна небольшая операция может вызвать очень много функций которые будут по цепочки идти. Достаточно запустить программу и уже будет оооочень много всяхой хрени выполняться, начиная от кеширования иконки и заканчивая обработкой всех уведомлений. Это на поверхности относительно мало что делается (в общих случаях *** -> kernel32.dll -> ntdll.32 -> sysenter -> ядро) И вот какраз в ядре и начнается вся обработка информации.

xor ecx, ecx
m1:
inc ecx
mul ecx
cmp ecx, FFFFFFFFh
jne m1


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

По этому советую покодить для ядра и сам увидиш сколько можно чего намутить там итд итп.

Нафига мне книга по WinApi если есть MSDN

altblitz
08.02.2010, 14:16
2 altblitz Не говори глупости. Если бы ты видел как и что сделано, то понял бы почему столько ресурсов хавает. Темболее в винде довольно жестокая система и даже одна небольшая операция может вызвать очень много функций которые будут по цепочки идти.
По этому советую покодить для ядра и сам увидиш сколько можно чего намутить там итд итп.

Нафига мне книга по WinApi если есть MSDN
знакомо, что вызов одной функции Вин может жёстко тормознуть ОСь.

вот поэтому и ставится брейк на стеке при выходе стандартной функции Вин API.
и претензии, пожалуйста - к Микрософт, slesh )

slesh
08.02.2010, 15:03
2 altblitz увы притензии нужно не только к MS, но и к людям кто это юзает и пишет софт. Потому что Всё сделано для удобства использование, быстроты разработки итд итп.
Можно пойти и поссать под кустик, а можно и под себя. Вроде и то и другое работает по одинаковому, вроде и то и другое выполняет одну и туже функцию, вроде как и под себя - быстрее, но вот удобства играют ключевую роль.
Так что как всегда стандартные весы, на одной чаше который скорость работы, а на другой размер, удобство, функциональность.