Инструменты для низкоуровневого программирования
Компиляторы и компоновщики
- fasm (flat assembler) – современный и удобный компилятор под DOS, Wndows, Linux с очень развитой системой макросов и полным набором инструкций Intel/AMD
- NASM (Netwide Assembler) – ещё один современный кроссплатформенный компилятор с хорошей макросистемой и полным набором инструкций Intel/AMD, популярен в зарубежных проектах и при программировании под Linux/BSD
- NASMX – пакет макросов, include’ов, примеров и утилит для NASM под Windows, Linux, BSD, Xbox; включает макрос invoke, символы для работы с OpenGL и пр.
- Yasm (Yet another assembler. ) – попытка переписать NASM, однако последняя версия датируется 2014 годом и, на мой взгляд, не имеет преимуществ перед NASM
- MASM32 (Macro Assembler) – наверное, самый популярный пакет самого популярного ассемблера
(содержит в себе также PoAsm), рекомендую сразу скачать ml.exe 8.0 и заменить им входящий в пакет ml.exe 6.14
- MASM64 includes and libs – заголовки и библиотеки для 64-битной версии MASM (информация); файлы ml64.exe, link.exe и прочие потроха можно взять из Visual Studio (путь к папке с нужными файлами примерно такой: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.12.25827\bin\Hostx 64\x64\ )
- UASM (он же HJWasm) – современный MASM-совместимый мультиплатформенный ассемблер с полным набором инструкций Intel/AMD
- TASM 5.x (Turbo Assembler) – старый, но всё ещё популярный ассемблер, в основном используется для создания программ под DOS
- GoAsm – ассемблер для написания программ под Windows (Вики)
- Asmc Macro Assembler (с исходниками) – переделанный JWasm с довольно приличной библиотекой различных функций
- fasmg (flat assembler g) – универсальный ассемблер под любую платформу (имеются include-модули для создания кода под AVR, i8051, x86/x64, генерации байт-кода JVM, аналогично можно создать свои модули; информация)
- FASMARM – ассемблер под архитектуру ARM
- ALINK, GoLink – компоновщики для программ под DOS и Windows
- objconv – преобразователь форматов объектных файлов (COFF/OMF/ELF/Mach-O)
- Crinkler – популярный среди демомейкеров компоновщик-упаковщик
Работа с ресурсами
- ResEd – бесплатный редактор ресурсов
- Resource Builder – редактор + компилятор ресурсов (shareware)
- GoRC – компилятор ресурсов (rc → res) [в вышеупомянутом NASMX есть и GoLink, и objconv, и GoRC]
Наборы разработчика
- Windows 10 Software Development Kit (SDK) – заголовочные файлы, библиотеки, инструменты (в т.ч. отладчик WinDbg: док1, док2, док3) для разработчиков Windows
- Windows Driver Kit (WDK) – инструменты для разработчика драйверов (документация)
Среды разработки (IDE) для ассемблера
- Fresh IDE – визуальная среда разработки для fasm
- SASM (SimpleASM) – простая кроссплатформенная среда разработки для языков ассемблера NASM, MASM, GAS, fasm с подсветкой синтаксиса и отладчиком (для NASM имеется набор макросов для упрощения работы с консолью)
- ASM Visual – IDE для MASM, fasm, TASM со встроенным отладчиком и поддержкой WinDbg, OllyDbg, TD, x64dbg (имеется возможность установить весь пакет инструментов при установки IDE)
- GUI Turbo Assembler – среда разработки со встроенным компилятором TASM, отладчиком и эмулятором DOSBox
- Easy Code – IDE с поддержкой множества различных ассемблеров (Asmc, fasm, GoAsm, JWasm, MASM, PoAsm, UASM), встроенным отладчиком, редактором ресурсов и диалоговых окон
- Rad ASM – последнее обновление в 2013 году (Вики)
- JaeEditor (fasm) – последнее обновление в 2015 году
- GSS Visual Assembler – TASM, MASM32 и др. Последнее обновление в 2014 году!
- FASM Editor – последнее обновление в 2011 году
Отладчики, дизассемблеры
- OllyDbg – популярный 32-битный отладчик (готовится 64-битная версия, но пока ещё не вышла)
- x64dbg – хороший отладчик для 32- и 64-битного кода
- IDA Pro – мощный интерактивный дизассемблер
- Turbo Debugger – популярный отладчик под DOS
- AFD Pro – ещё один отладчик под DOS
Эмуляторы, виртуализаторы
- DOSBox – очень популярный эмулятор компьютера для запуска программ под DOS (имеет встроенный замедлитель скорости)
- emu8086 – простенький эмулятор процессора 8086 и некоторых функций MS-DOS со встроенным ассемблером и средой, включая отладчик
- Bochs – эмулятор компьютера IBM PC
- QEMU – эмулятор аппаратного обеспечения различных платформ (QEMU Manager)
- Intel Software Development Emulator (SDE) – эмулятор расширений (инструкций) процессоров Intel
- VMware Workstation Player (бесплатный для персонального использования), VMware Workstation Pro (shareware) – мощные виртуализаторы, позволяющие создавать и запускать виртуальные машины
- Oracle VirtualBox – альтернативный бесплатный виртуализатор
- Sandboxie – песочница для запуска программ в изолированной среде (shareware)
Редакторы PE и двоичных файлов
- PE Explorer – редактор секций, ресурсов PE, дизассемблер (shareware)
- Resourse Hacker – редактор ресурсов исполняемых айлов под Windows
- Hiew – редактор двоичных файлов со встроенным дизассемблером, просмотром и редактированием заголовков исполняемых файлов (shareware)
- HexIt – бесплатная альтернатива Hiew, но не такая красивая и довольно старая (2001 года)
- WinHex – Hex-редактор, позволяющий редактировать не только файлы, но и диски (по секторам) и память, не имеет дизассемблера (shareware)
Упаковщики и протекторы
- UPX (Ultimate Packer for eXecutables) – популярный бесплатный упаковщик EXE-файлов и DLL-библиотек
- PECompact – ещё один упаковщик (shareware)
- ASPack, ASProtect – упаковщик и протектор EXE-файлов
- Themida – мощное средство защиты программ (shareware, статья на Хабре)
- Enigma Virtual Box – бесплатный виртуализатор файлов, объединяющий исполняемый файл вместе с сопутствующими (dll, ocx, графическими и звуковыми файлами) в один (на этом сайте также имеется shareware-протектор Enigma Protector)
Профилировщики, анализаторы кода
- Compiler Explorer — инструмент, позволяющий быстро перевести код на языках высокого уровня (C++, Pascal и многие другие) в инструкции ассемблера (статья на Хабре)
- Quick C++ Benchmark — онлайн-бенчмарк кода на C++
Assembler на Windows 10
Assembler и Windows 7
Столкнулся с проблемой: мы начали изучать асемблер на основе i8086, но при написании своей проги у.Assembler и Windows 7
Заголовок уже говорит о вопросе — Assembler и Windows 7 на 64-х разрядной шине они вообще.Assembler на 64-разрядной Windows 7
Я хочу изучить Assembler, но у меня на компе 64-разрядная винда. само-собой асс не идет, требует.Блокиратор Windows на Assembler
Короче, задали написать блокиратор виндовс. Код не мой, компилируется, но вылетает. Что делать не.Max00766, берем: tasm.exe , tlink.exe, rtm.exe, td.exe, dpmi16bi.ovl, vc.com (Volkov Commander)
кидаем все в одну папку + ваши исходники.
Берем мышку за VC.COM и накладываем на DOS-BOX.
Открывается командер в эмуляции дос, пишем лабу и радуемся.Ну надо понимать что это не чистый дос, например обращения к жесткому диску (int 13h) не прокатят.
В теме Заданы 2 числа. Определить является ли первое число кубом второго пользователь приводит программу с неизвестными, но работающими процедурами ввода и вывода.
Но сам я никогда не пользовался этой программой.
Добавлено через 1 минуту
Вообще — в вашем учебном заведении должно регламентироваться использование компилятора. В методичке.Gubila_2000, освоив команды, вы вполне можете взять компилятор для Windows, и создавать рабочие приложения. В разделах есть закреплённые темы, в которых хорошо освещено создание программ для Windows.
Сам себе Iczelion
Создание консольных приложений в 64-разрядной Windows Seven
Уроки Iczelion’a на FASM
Ещё для программирования в Windows отлично помогает книга Чарльза Петзольда «Программирование в Windows». Она для языка C, но для понимания Win32 API — просто идеальна.За исключением других шаблонов исходников (структуры программы), другого способа вызова API (DOS или Windows), больших размеров регистров — отличий почти нет.
В masm32 есть множество примеров, которые можно использовать, как заготовки.
Не вижу смысла асм программ с GUI интерфейсом, но в консоль вывод не сложнее, чем в DOS.
Редактор. Много копий сломано по этому поводу. Лично я для учебных asm программ на форум использую или SciTE или идущий в комплекте с masm32 редактор qeditor (основная проблема с настройкой путей ко включаемым файлам и библиотекам). Отладку выполняю в OllyDbg, но последнее время на форуме пропагандируют «более новый и лучший» x64dbg.
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.
Обучение Assembler на Windows х64
С чего начать? Большинство учебников вводят в assembler с 16-разрядного программирования, но коль.Assembler/windows/dos/tasm/emu8086
Записывает в текстовый файл символ, воспринимая информацию введенную в него как аски код того.компилятор assembler для windows 7 и работает ли visual C++ Express 2010 c asembler-ом
Какие компиляторы asembler будут работать на windows 7 x64?Так же в инете я нашол, что visual C++.Assembler для Windows
Ребят, таков вопрос, раньше немного писал на ассемблере на win.xp, сейчас есть возможность писать.Какой ассемблер для Windows в 2020 году лучше? Какая IDE?
Подписчикам моего канала эта тема скорее всего покажется странной и незнакомой. Но она тоже имеет непосредственное отношение к технике (а канал посвящён не только электрике, но и всему техническому) а также она (эта тема) занимает существенную часть моей жизни.
В начале 90-х годов я много программировал на ассемблере. Сначала это был ассемблер МИКРО11 для процессоров архитектуры DEC PDP-11 (процессор К1801ВМ1 бытового компьютера БК0010-01), а с 1994 года я начал писать на ассемблере TASM для процессоров архитектуры x86 (персональный компьютер IBM PC AT i80386).
В то время я писал исключительно под DOS, и использовал для этого режим Ideal ассемблера TASM . Этот ассемблер был разработан компанией Borland. Синтаксис MASM от Microsoft мне нравился меньше, чем в TASM режима Ideal. В общем, на нём я и остановился.
Никаких IDE, конечно, тогда не было, и я использовал обычный текстовый редактор. Кажется, даже без подсветки синтаксиса. Компилировал и линковал утилитами командной строки, для удобства прописанными в пакетных файлах.
Когда наступила эра Windows, я попробовал написать на ассемблере пару тестовых приложений под эту ОС, и перешёл для этого на MASM, как чуть более подготовленный к этому процессу. Но писать на ассемблере под Windows мне показалось не очень интересным, и я перешёл на языки более высокого уровня.
На днях я решил посмотреть, что же изменилось с программированием на ассемблере за четверть века? Так вот, принципиально — ничего )))
Выбор ассемблера
Существует довольно много разных ассемблеров. При выборе я использовал только 2 критерия — живость проекта и популярность ассемблера. Остальные критерии, такие, как дополнительные возможности и фичи, я не рассматривал, это было уже не так важно.
TASM, к сожалению, отпал сразу, поскольку он, к сожалению, мёртв.
MASM тоже давно не обновлялся.
В общем, из всех ассемблеров меня привлекли два — NASM и FASM .
На настоящий момент FASM мне показался более интересным, и я решил пока выбрать его. Если вам больше нравятся другие варианты, напишите, пожалуйста, в комментариях, почему ваш выбор пал на другой ассемблер.
Выбор интегрированной среды разработки (IDE)
Конечно, можно пользоваться обычным редактором с подсветкой синтаксиса, например, Notepad++ . Но, честно говоря, хочется уже как-то автоматизировать некоторые рутинные действия, а также иметь функцию автодополнения и какие-то подсказки по коду.
Я думал, что уже существуют хорошие, мощные IDE для ассемблеров. Но не тут то было. Подающий в своё время большие надежды RadASM заброшен, остальные среды очень простенькие, глючащие, вылетающие при каждом чихе. В общем, проблема. Если вы знаете какую-нибудь действительно достойную среду для написания ассемблерного кода, отпишитесь, пожалуйста, в комментариях.
Поскольку в программах предполагается использование кириллицы, важно, чтобы редактор имел возможность сохранять файлы в UTF8 .
В общем, после поисков чего-то более-менее стоящего я сначала остановился на SASM .
Но он почему-то отказывается компилировать, не сообщая почему. Автодополнения и подсказок по коду там тоже нет.
Сейчас другой автор начал активно рекламировать ASM Visual :
Текущая версия имеет глючки, которые автор пообещал исправить. В этой IDE уже есть автодополнение и подсказки, но, к сожалению, только в платной версии. Как бесплатная IDE она была бы относительно неплоха вместе с этим функционалом, но как платная, она, на мой взгляд, ещё сыровата.
Вышеперечисленные IDE хороши для начинающих, потому что в них довольно легко разобраться, и они при создании нового проекта не предлагают шаблоны навороченного кода. Но если вы уже опытный программист, и знаете, как писать на ассемблере под Windows, то вам может подойти очень мощная и абсолютно бесплатная IDE « Easy Code Visual »:
Как видите, она позволяет даже визуальное конструирование интерфейса. Пожалуй, это самая мощная среда, которую я нашёл. Но она тоже глючит и вылетает.
Все три IDE активно поддерживаются, это одно из важных условий моего выбора. Так что от глюков можно избавиться, если активно сотрудничать с авторами этих программ.
Если вы знаете другие достойные варианты IDE с автодополнением и подсказками, напишите о них, пожалуйста, в комментариях.
На сегодня всё, ставьте лайки, подписывайтесь на канал, пока!