Разработчик
- Статус
- Оффлайн
- Регистрация
- 21 Июн 2025
- Сообщения
- 183
- Реакции
- 69
Заметил, что по-настоящему актуальных учебных пособий на форуме катастрофически не хватает.
Ассемблер - это счастье, это вднохвение, это причина жить. Но по нему очень мало информации в мире.
Чувство когда поиски качественной информации заходят в тупик поэтому намерен детально структурировать весь образовательный путь от а до я указав верный вектор движения для обхода типичных архитектурных ловушек ведь я сам когда-то начинал с нуля и прошел через все тернии поиска истины в сырых мануалах чтобы теперь помочь людям которые в такой же ситуации.
Изучите базу.
Возможно подобные призывы к изучению фундаментальных основ кажутся многим банальностью, но стоит по-настоящему вдуматься в эти слова, так как без прочного базиса в виде архитектуры ЭВМ и четкого осознания принципов работы адресации памяти, ваше продвижение в освоении ассемблера превратится в бесконечную борьбу с непонятными ошибками исполнения кода, без понимания работы того же ЦП, понимание работы АЛУ, многоядерности, кэш-линии и регистров - вы тупо не сможете оптимизировать свои программы хотя бы на уровне современных компиляторов, все великие умы в ассемблере начинали с информатики. Более того, критически важным является глубокое понимание механизмов функционирования указателей, которые вы должны были изучить в Си.
Почитать святую книгу от мистера Таненбаума по архитектуре ПК - 6 издание.
Еще полезные материалы:
Книги по ассемблеру.
Я принципиально не собираюсь смешивать в одну кучу разные ассемблерные диалекты, поэтому представлю вашему вниманию литературу исключительно по тому синтаксису, который использую сам - FASM, по праву считающийся самым удобным, лаконичным и эстетически безупречным диалектом, который благодаря своей логичности идеально подходит для мягкого погружения новичков в мир низкоуровневой разработки.
--------------------------------------------------------
Норсеев Сергей. Разработка оконных приложений на FASM, рассказывает читателю базу и объясняет работу с диалектом FASM.
На этом этапе я с полной уверенностью заявляю, что никакой дополнительной литературы вам больше не потребуется так как представленный материал формирует исчерпывающий фундамент знаний и теперь ваш путь должен состоять исключительно из непрерывной практики и глубокого погружения в живой код ведь только реальные задачи в сочетании с поиском единомышленников обеспечат нормальный перспективный рост в ассемблере. Ищите команду, единомышленников.
Необязательно читать конкретно про разработку GUI в книге, ознакомьтесь с базой после чего попробуйте начать кодить, в будущем если захотите разрабатывать оконные приложений, можно прибегать к соответствующим главам.
Многие придерживаются ложного мнения, что на ассемблере разрабатывать приложения миллион лет, но на самом деле это не так, тем более учитывая современные макросы(я кстати против них).
Максимально простой код GUI-приложения с выводом MessageBoxA:
Согласно соглашению о вызове x64, первые 4 значения распределяются через регистры - rcx / rdx / r8 / r9, остальное передается через стек.
Также есть макрос invoke, который все делает за вас в одну строчку, но он портит визуальный вид кода, имхо.
Пример:
На ассемблере вы сможете писать все то, что писали на С/С++: сможете программировать микроконтроллеры, сможете заниматься разработкой под определенную ОС к примеру Windows, сможете разрабатывать свою ОС полностьюс нуля, на чистом ассемблере(пример: KolibriOS), сможете разрабатывать UEFI-приложения, сможете применять вообще везде, где что либо программируется, сможете совмещать ассемблер с ЯВУ. Никто не запрещает.
--
Также материалы по разным диалектам ассемблера:
--
Также готов ответить на любой вопрос новичка касаемо ассемблера.
Задавать вопросы можете в данном треде.
Ассемблер - это счастье, это вднохвение, это причина жить. Но по нему очень мало информации в мире.
Чувство когда поиски качественной информации заходят в тупик поэтому намерен детально структурировать весь образовательный путь от а до я указав верный вектор движения для обхода типичных архитектурных ловушек ведь я сам когда-то начинал с нуля и прошел через все тернии поиска истины в сырых мануалах чтобы теперь помочь людям которые в такой же ситуации.
Изучите базу.
Возможно подобные призывы к изучению фундаментальных основ кажутся многим банальностью, но стоит по-настоящему вдуматься в эти слова, так как без прочного базиса в виде архитектуры ЭВМ и четкого осознания принципов работы адресации памяти, ваше продвижение в освоении ассемблера превратится в бесконечную борьбу с непонятными ошибками исполнения кода, без понимания работы того же ЦП, понимание работы АЛУ, многоядерности, кэш-линии и регистров - вы тупо не сможете оптимизировать свои программы хотя бы на уровне современных компиляторов, все великие умы в ассемблере начинали с информатики. Более того, критически важным является глубокое понимание механизмов функционирования указателей, которые вы должны были изучить в Си.
Почитать святую книгу от мистера Таненбаума по архитектуре ПК - 6 издание.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Еще полезные материалы:
Пожалуйста, авторизуйтесь для просмотра ссылки.
Книги по ассемблеру.
Я принципиально не собираюсь смешивать в одну кучу разные ассемблерные диалекты, поэтому представлю вашему вниманию литературу исключительно по тому синтаксису, который использую сам - FASM, по праву считающийся самым удобным, лаконичным и эстетически безупречным диалектом, который благодаря своей логичности идеально подходит для мягкого погружения новичков в мир низкоуровневой разработки.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.
--------------------------------------------------------
Норсеев Сергей. Разработка оконных приложений на FASM, рассказывает читателю базу и объясняет работу с диалектом FASM.
- Глава 1. Первое знакомство c FASM.
- Глава 2. Из чего состоит программа на ассемблере.
- Глава 3. Данные
- Глава 4. Целочисленная арифметика.
- Глава 5. Команды сдвига и логические команды.
- Глава 6. Команды передачи управления.
- Глава 7. Реализация конструкций языков высокого уровня.
- Глава 8. Начинаем программировать и осваивать Windows API.
- Глава 9. Окна и сообщения: создание полноценного интерфейса.
- Глава 10. Диалоговые окна и работа с ресурсами.
- Глава 11. Элементы управления: кнопки, поля ввода и списки.
- Глава 12. Меню: создание и обработка событий.
- Глава 13. Взаимодействие с окнами других приложений.
- Глава 14. Работа с динамической памятью и кучей.
- Глава 15. Работа со строками: от ASCII до Unicode и функций конвертации.
- Глава 16. Работа с файловой системой, директориями и навигацией.
- Глава 17. Реестр: создание разделов, чтение и изменение ключей.
- Глава 18. Файлы инициализации (INI) и хранение параметров.
- Глава 19. Взаимодействие с устройствами ввода: клавиатура и мышь.
- Глава 20. Разработка динамических библиотек (DLL) и таблицы экспорта.
- Глава 21. Создание консольных приложений и работа с потоками ввода-вывода.
- Глава 22. Обработка ошибок: механизмы SEH, VEH и системные фильтры.
- Глава 23. Ресурсы: иконки, изображения и строковые таблицы.
Пожалуйста, авторизуйтесь для просмотра ссылки.
На этом этапе я с полной уверенностью заявляю, что никакой дополнительной литературы вам больше не потребуется так как представленный материал формирует исчерпывающий фундамент знаний и теперь ваш путь должен состоять исключительно из непрерывной практики и глубокого погружения в живой код ведь только реальные задачи в сочетании с поиском единомышленников обеспечат нормальный перспективный рост в ассемблере. Ищите команду, единомышленников.
Необязательно читать конкретно про разработку GUI в книге, ознакомьтесь с базой после чего попробуйте начать кодить, в будущем если захотите разрабатывать оконные приложений, можно прибегать к соответствующим главам.
Многие придерживаются ложного мнения, что на ассемблере разрабатывать приложения миллион лет, но на самом деле это не так, тем более учитывая современные макросы(я кстати против них).
Максимально простой код GUI-приложения с выводом MessageBoxA:
asm:
format PE64 GUI ;// формат GUI для MessageBoxA.
entry start
include "win64a.inc"
section '.data' data readable writeable
caption db 'Yougame Message', 0
text db 'text', 0
section '.text' code readable executable
start:
sub rsp, 28h
xor rcx, rcx ;// ксор регистра зануляет регистр, анологично - mov rcx, 0. используется для микрооптимизации.
lea rdx, [text]
lea r8, [caption]
xor r9, r9
call [MessageBoxA]
xor rcx, rcx
call [ExitProcess]
section '.idata' import data readable ;// таблица импорта
library user32,'user32.dll', kernel32,'kernel32.dll',ntdll,'ntdll.dll'
include 'C:\FASM\INCLUDE\API\user32.inc'
include 'C:\FASM\INCLUDE\API\kernel32.inc'
Также есть макрос invoke, который все делает за вас в одну строчку, но он портит визуальный вид кода, имхо.
Пример:
invoke MessageBoxA, 0, text, caption, 0На ассемблере вы сможете писать все то, что писали на С/С++: сможете программировать микроконтроллеры, сможете заниматься разработкой под определенную ОС к примеру Windows, сможете разрабатывать свою ОС полностьюс нуля, на чистом ассемблере(пример: KolibriOS), сможете разрабатывать UEFI-приложения, сможете применять вообще везде, где что либо программируется, сможете совмещать ассемблер с ЯВУ. Никто не запрещает.
--
Также материалы по разным диалектам ассемблера:
Пожалуйста, авторизуйтесь для просмотра ссылки.
- Довольно хорошая документация, программируя на том же FASM, советую обращаться к ней чтобы узнать что-то новое, после чего переписывать код на FASM с MASM.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.
--
Также готов ответить на любой вопрос новичка касаемо ассемблера.
Задавать вопросы можете в данном треде.