Я действительно хочу изучить ассемблер. Я довольно хорошо разбираюсь в с /c++, но хочу лучшего понимания того, что происходит на более низком уровне.
Я понимаю, что вопросы, связанные со сборкой, задавались ранее, но я просто ищу направление, специфичное для моей ситуации:
Я использую Windows 7 и не понимаю, как мне начать работать со сборкой. Должен ли я начать с 64, потому что я бегу Windows 7? Некоторые люди говорят: "Начни с 32-битной сначала" - как мне это сделать? Что моя операционная система имеет отношение к моей способности писать ассемблер для 32 или 64 бит. На самом деле, что означает "n-битная" сборка, где n - это число??
Редактировать:
Вот несколько ссылок, которые помогли мне начать сборку; другие, которые только начинают, могут найти их полезными. Я буду обновлять этот список, пока продолжу сборку :)
Примечание: поскольку я учился, я решил сосредоточиться на программировании с masm32. Поэтому большинство из перечисленных ниже ресурсов сосредоточены на этом.
- Вики- тег x86 (руководства для начинающих, справочные руководства, документация по ABI и т.д.)
- www.masm32.com
- X86 Assembly WikiBook
- X86 Dissassembly WikiBook (отлично подходит для понимания некоторых соглашений и основ того, как код более высокого уровня переводится в сборку)
- WinAsm IDE (прекрасно работает с masm32)
- Введение: Сборка для Windows (все примеры кода для masm32)
- Список прерываний
- Руководство по сборке (отлично подходит для понимания основных концепций)
- Руководство по сборке x86
-
Ресурсы по оптимизации программного обеспечения Agner Fog, включая некоторые полезные материалы о соглашениях о вызовах на разных платформах (Windows и Linux/OS X), а также множество примеров того, как эффективно выполнять определенные задачи. Не подходит для начинающих, но отлично подходит для средних и продвинутых читателей.
(У него также есть подробная информация о производительности для каждой инструкции для процессоров Intel и AMD, отлично подходящая для серьезной микрооптимизации производительности. Некоторые новички могут захотеть взглянуть на некоторые из них, чтобы начать думать о том, как работают процессоры, и почему вы можете сделать что-то одно путь вместо другого.)