Посоветуйте хорошие видеоуроки по Ассемблеру

amber7

Создатель
Регистрация
15 Сен 2017
Сообщения
48
Реакции
46
Посоветуйте толковые видеоуроки ASSEMBLER, а то я их практически нигде не могу найти
 
Мы учились по лекциям Баулы:
 
Не сочтите за археологию, мб кому-то пригодится.
Гуглите по ключевым словам exevideo assembler , там видеоуроки по асму под винду (сначала основы, потом работа с винапи и т.д.). Автор немного странный, но уроки очень подробные, там даже примат разберется, что и как (есть даже флеш-демки поигратся с регистрами и стеком).
 
Извините за нескромный вопрос, но, ЗАЧЕМ?
Кто сейчас пишет на ассемблере?
Я сам его очень люблю. Так получилось, что ассемблер стал первым ЯП, который изучил.
Мои первые программы на Delphi в основном состояли из
begin
asm
...
end
end;
Но сейчас что писать на асме если не микроконтроллерщик?
 
Вот тут хорошая подборка видео по ассемблеру с нуля:
Тут еще различные уроки:
 
Извините за нескромный вопрос, но, ЗАЧЕМ?
Кто сейчас пишет на ассемблере?
Я пишу. Да и можно не писать, но знать , для некоторых тем, обязательно. Как вы напишите перехват WinApi без знания опкодов и вызова функций? Как оптимизировать сложные вычисления, не зная, как обрабатываются большие цифры на уровне регистров? Про малварь и антивирусы я вообще молчу.
Впрочем, каждому свое.
 
Как вы напишите перехват WinApi без знания опкодов и вызова функций?
Хм. А так ли необходим для этого ассемблер?
Давно этим занимался, плохо помню перехваты, но через SetWindowsHookEx на любом языке можно сделать.
Редактирование таблицы импорта функций - на многих языках ВУ можно сделать.
Если перехват через подмену пролога функций, то тоже на большинстве языков ВУ можно сделать.
Как оптимизировать сложные вычисления, не зная, как обрабатываются большие цифры на уровне регистров?
Есть у меня подозрение, что современные оптимизирующие компиляторы сделают это лучше чем человек. Особенно в случае объемного кода.

А вообще, респект и уважуха. Кто знает ассемблер, тот имеет настоящее компьютерное мышление. Пусть в современных ЯВУ даже обычный Int уже обьект, понимание как все работает на уровне регистров и флагов дает совершенно иной уровень программирования.
А вот на чистом ассемблере я перестал писать уже очень давно. Пусть программа будет и в сто раз меньше, но ее написание займет в сто раз большее время. И никто этого не оценит в звонком рубле.
 
Редактирование таблицы импорта функций - на многих языках ВУ можно сделать.
Если перехват через подмену пролога функций, то тоже на большинстве языков ВУ можно сделать.
Править таблицу импорта можно хоть на бейсике, но пролог функций - нужно знать опкоды ;) Нужно понимать, что такое вообще пролог и т.д., а это как раз идет от знания Асма.

современные оптимизирующие компиляторы сделают это лучше чем человек. Особенно в случае объемного кода.
Вы правы, понятно,что никто не Асме не будет писать , как "пишет" компилятор, потому что нужно очень много чего помнить и очень легко ошибиться, не сохранив где надо регистр или немножко напутав к-тво push/pop. Человек чисто физически не может так писать, разве что под веществами или гении. Да и смысла нет. Но, есть разные ситуации, к примеру

Кто знает ассемблер, тот имеет настоящее компьютерное мышление
Да, приучает экономить все и вся, оптимизировать код, не разбрасываться памятью. Хотя, оно мало кому надо, в век сишарпа и питона..
Хотя вот лично мне - просто нравится, чисто как хобби, накодить что-то небольшое, для себя, для винды, на Ассемблере.
 
Править таблицу импорта можно хоть на бейсике, но пролог функций - нужно знать опкоды ;) Нужно понимать, что такое вообще пролог и т.д., а это как раз идет от знания Асма.
Ну, чисто теоретически, можно править пролог не зная что делают команды ассемблера. Достаточно в дизассемблере скопировать несколько команд, не вникая в их смысл, и получить правильную длину. А потом вписать джамп по шаблону. Или даже воспользоваться дизассемблером длин и оперировать везде циферками не глядя на код. На практике, конечно, без знания ассемблера в такого рода задачах делать нечего :)

Вы правы, понятно,что никто не Асме не будет писать , как "пишет" компилятор, потому что нужно очень много чего помнить и очень легко ошибиться, не сохранив где надо регистр или немножко напутав к-тво push/pop. Человек чисто физически не может так писать, разве что под веществами или гении. Да и смысла нет. Но, есть разные ситуации, к примеру
Ага. Добавить к этому 32 регистра МИПСа, несколько сотен физических регистров х86 (пусть архитектурных и меньше.). Я в последнее время даже растактовки команд для современных процессоров не встречал. То ли это секретной информацией стало, то ли современные процы слишком сложны для такого примитивного подхода.

Да, приучает экономить все и вся, оптимизировать код, не разбрасываться памятью. Хотя, оно мало кому надо, в век сишарпа и питона..
Ага. Для меня программирование на ассемблере это не просто знание всех команд, но и активное использование триков и трюков архитектуры. Что позволяло, к примеру, в некоторых задачах выполнять код на Z80 @ 3.5MHz быстрее чем на MOS6502 @ 1.024MHz. Теневой набор регистров сильная штука! :)

Хотя вот лично мне - просто нравится, чисто как хобби, накодить что-то небольшое, для себя, для винды, на Ассемблере.
Мне кажется, это и самое главное. В коммерческом поточном программировании места для асма не осталось. Увы.
 
Последнее редактирование:
Ещё одно применение ассемблера - демосцена:
8 килобайт. Это не опечатка. Действительно 8 Килобайт на всё про всё: программный код, графику, звук.
На современном ЯВУ только код занял бы несколько сот мегабайт.
а это 64 кб:
 
Последнее редактирование:
Назад
Сверху