Время на прочтение
5 мин
Количество просмотров 155K
В данной статье я хочу рассмотреть вопросы, которые могут возникнуть у человека, приступившего к изучению ассемблера, связанные с установкой различных трансляторов и трансляцией программ под Windows и Linux, а также указать ссылки на ресурсы и книги, посвященные изучению данной темы.
MASM
Используется для создания драйверов под Windows.
По ссылке переходим на сайт и скачиваем пакет (masm32v11r.zip). После инсталляции программы на диске создается папка с нашим пакетом C:\masm32. Создадим программу prog11.asm, которая ничего не делает.
.586P
.model flat, stdcall
_data segment
_data ends
_text segment
start:
ret
_text ends
end start
Произведём ассемблирование (трансляцию) файла prog11.asm, используя ассемблер с сайта masm32.
Ключ /coff используется здесь для трансляции 32-битных программ.
Линковка производится командой link /subsystem:windows prog11.obj (link /subsystem:console prog11.obj)
Как сказано в Википедии
MASM — один из немногих инструментов разработки Microsoft, для которых не было отдельных 16- и 32-битных версий.
Также ассемблер версии 6. можно взять на сайте Кипа Ирвина kipirvine.com/asm, автора книги «Язык ассемблера для процессоров Intel».
Кстати, вот ссылка на личный сайт Владислава Пирогова, автора книги “Ассемблер для Windows”.
MASM с сайта Microsoft
Далее скачаем MASM (версия 8.0) с сайта Microsoft по ссылке. Загруженный файл носит название «MASMsetup.exe». При запуске этого файла получаем сообщение -«Microsoft Visual C++ Express Edition 2005 required».
Открываем этот файл архиватором (например 7zip). Внутри видим файл setup.exe, извлекаем его, открываем архиватором. Внутри видим два файла vc_masm.msi,vc_masm1.cab. Извлекаем файл vc_masm1.cab, открываем архиватором. Внутри видим файл FL_ml_exe_____X86.3643236F_FC70_11D3_A536_0090278A1BB8. Переименовываем его в файл fl_ml.exe, далее, произведём ассемблирование файла prog11.asm, используя ассемблер fl_ml.exe.
MASM в Visual Studio
Также MASM можно найти в папке с Visual Studio (у меня VS 10) вот здесь: C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\ml.exe.
Для того, чтобы запустить на 32- или 64-разрядной системе и создавать программы, работающие как под 32-, так и под 64-разрядной Windows, подходит MASM32 (ml.exe, fl_ml.exe). Для того, чтобы работать на 32- и 64-разрядных системах и создавать программы, работающие под 64-разрядной Windows, но неработающие под 32-разрядной нужен ассемблер ml64.exe. Лежит в папке C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\amd64 и вот здесь — C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\x86_amd64.
TASM
Программный пакет компании Borland, предназначенный для разработки программ на языке ассемблера для архитектуры x86. В настоящее время Borland прекратила распространение своего ассемблера.
Скачать можно, например, здесь. Инсталлятора нет, просто извлекаем программу. Вот исходник из книги Питера Абеля (рис. 3.2) «Язык Ассемблера для IBM PC и программирования».
stacksg segment para stack 'stack'
db 12 dup ('stackseg')
stacksg ends
codesg segment para 'code'
begin proc far
assume ss:stacksg,cs:codesg,ds:nothing
push ds
sub ax,ax
push ax
mov ax, 0123h
add ax, 0025h
mov bx,ax
add bx,ax
mov cx,bx
sub cx,ax
sub ax,ax
nop
ret
begin endp
codesg ends
end begin
Выполним ассемблирование (трансляцию) файла abel32.asm.
Корректность работы программы можно проверить, произведя линковку (tlink.exe) объектного файла и запустив полученный файл в отладчике.
Как было сказано выше, MASM можно использовать для работы с 16-битными программами. Выполним ассемблирование (трансляцию) программы abel32.asm с помощью ассемблера MASM:
Ключ /coff здесь не используется.
Линковка производится файлом link16.exe
Вот здесь приводится порядок действий, которые необходимо выполнить для запуска TASM в DOSbox. Для линковки понадобится файл DPMI16BI.OVL
FASM
В статье Криса Касперски «Сравнение ассемблерных трансляторов» написано, что «FASM — неординарный и весьма самобытный, но увы, игрушечный ассемблер. Пригоден для мелких задач типа „hello, world“, вирусов, демок и прочих произведений хакерского творчества.»
Скачаем FASM с официального сайта. Инсталлятора нет, просто извлекаем программу. Откроем fasm editor — C:\fasm\fasmw.exe. В папке C:\fasm\EXAMPLES\HELLO есть файл HELLO.asm.
include 'win32ax.inc'
.code
start:
invoke MessageBox,HWND_DESKTOP,"Hi! I'm the example program!",invoke GetCommandLine,MB_OK
invoke ExitProcess,0
.end start
Откроем файл HELLO.asm из fasmw.exe. Изменим строку include ‘win32ax.inc’ на строку include ‘c:\fasm\INCLUDE\WIN32AX.INC’. Запускаем из меню Run → Run.
Вот ссылки на ресурсы, посвященные FASM:
→ FASM на Cyberforum’е
→ FASM на asmworld .com программы под Dos
→ Цикл статей «Ассемблер под Windows для чайников»
→ Сайт на narod’е
FASM в Linux
Для того, использовать FASM в Linux (у меня Ubuntu), скачаем соответствующий дистрибутив (fasm-1.71.60.tgz), распакуем его, в папке у нас будет бинарный файл fasm, копируем этот файл в /usr/local/bin для того, чтобы можно было запускать его из консоли, как любую другую команду.Выполним ассемблирование программы hello.asm из папки fasm/examples/elfexe/hello.asm.
Корректность работы программы можно проверить в отладчике.
Nasm
Nasm успешно конкурирует со стандартным в Linux- и многих других UNIX-системах ассемблером Gas.
Nasm в Linux можно установить с помощью менеджера пакетов или из командной строки: в дистрибутиве Debian (Ubuntu) командой apt-get install nasm, в дистрибутивах Fedora, CentOS, RedHat командой yum install nasm.
Создадим программу, которая 5 раз выводит сообщение “Hello”. Пример взят из книги Андрея Викторовича Столярова “Программирование на языке ассемблера NASM для ОС UNIX”. Учебник, а также библиотека “stud_io.inc” есть на личном сайте автора.
%include "stud_io.inc"
global _start
section .text
_start: mov eax, 0
again: PRINT "Hello"
PUTCHAR 10
inc eax
cmp eax, 5
jl again
FINISH
Выполним ассемблирование и линковку и запустим файл hello.asm.
$ nasm -f elf hello.asm
$ ld hello.o -o hello
$ ./hello
Для 64bit необходимо использовать команду nasm -f elf64 hello.asm
NASM для Windows
NASM для Windows можно установить, скачав соответствующий дистрибутив с соответствующего сайта.
Ассемблирование:
nasm -f bin имя_файла.asm -o имя_файла.com
Ссылки на ресурсы, посвященные Nasm:
→ Сайт А.В. Столярова
→ Сайт, на котором лежит электронный учебник (в архиве)
→ То же самое
AS
Стандартный ассемблер практически во всех разновидностях UNIX, в том числе Linux и BSD. Свободная версия этого ассемблера называется GAS (GNU assembler). Позволяет транслировать программы с помощью компилятора GCC.
Из учебников удалось найти только книгу на английском «Programming from the ground up». На русском удалось найти только одну главу из книги С. Зубкова «Assembler для DOS, Windows и UNIX».
Возьмем пример программы, которая ничего не делает, с сайта. Создадим программу gas.s
.section .text
.globl _start
_start:
movl $1, %eax
movl $2, %ebx
int $0x80
Выполним ассемблирование (трансляцию), линковку и запуск программы:
$ as -o gas.o gas.s
$ ld -o gas gas.o
$ ./gas
Если в данной программе изменить _start на main, то можно выполнить ассемблирование (трансляцию) и линковку компилятором gcc.
.section .text
.globl main
main:
movl $1, %eax
movl $2, %ebx
int $0x80
Выполним ассемблирование (трансляцию), линковку и запуск программы:
$ gcc gas.s -o gas
$ ./gas
Выводы: если вы изучаете программирование под Windows, то вы можете остановить свой выбор на Masm; Tasm больше не поддерживается, но для обучения по старым классическим учебникам подойдёт.
Под Linux Gas подойдет тем, кто использует GCC, а тем, кому не нравится синтаксис Gas, подойдёт Nasm.
P.S. Про обработку строк в ассемблере на примере создания транслятора простого «эзотерического» языка можно прочитать здесь.
P.P.S. Упрощенный ограниченный набор ассемблерных инструкций используется в учебной модели компьютера Little Man Computer, которому у меня также посвящено несколько статей ссылка.
Данный компилятор является ничем иным, как ассемблером. Такое программное обеспечение позволяет преобразовывать программный текст в машинный код, благодаря чему приложение корректно работает.
Описание программы
Само собой, здесь поддерживается огромное количество дополнительных инструментов для отладки или настройки правильной работы кода. Чтобы разобраться со всем этим, нужно быть программистом, а новичку лучше всего начать с обучающего видео.
Это одна из тех программ, которые распространяются на полностью бесплатной основе. Активация не требуется и дальше нам остается лишь рассмотреть процесс правильной инсталляции.
Как установить
Для того чтобы начать, необходимо перейти к разделу загрузки, где можно посредством торрент-раздачи скачать все нужные файлы:
- Дальше выбираем первый ISO-образ, монтируем его в системе и посредством файла Setup начинаем установку.
- На втором этапе нам потребуется принять лицензионное соглашение.
- Теперь просто дожидаемся, пока инсталляция завершится.
Как пользоваться
Данный ассемблер работает как с программами 32 Bit, так и с архитектурой x 64. Есть подробный мануал, но, к сожалению, он переведен только на английский язык.
Достоинства и недостатки
Предлагаем разобрать сильные и слабые стороны данного софта, но лишь в общих чертах.
Плюсы:
- максимально широкий набор возможностей для настройки компиляции;
- поддержка основных архитектур ПК;
- наличие текстовой справки.
Минусы:
- нет русского языка.
Скачать
При помощи прямой ссылки немного ниже можно скачать новейшую версию программного обеспечения от разработчика.
Язык: | Английский |
Активация: | Бесплатно |
Разработчик: | Microsoft |
Платформа: | Windows XP, 7, 8, 10, 11 |
MASM (Microsoft Macro Assembler)
Надеемся, наша среда удовлетворит большинство потребностей программистов MASM, FASM, TASM и даст перспективы изучения и работы на ассемблере новичкам.
Справочная документация находится на странице https://gri-software.com/ru/asmvisual/help или локально с программной в формате .CHM
Последняя актуальная версия
Поддерживаемые ОС: Windows 2008, 7, 8, 10 и выше (для tasm16 только 32-bit)
Требования: .NET Framework 4.6 и выше
Количество загрузок: 27146
Файл: setupASMVisual.exe
Версия: 1.1.6
Размер: 12,5 МБ
XP edition для предыдущих ОС
Поддерживаемые ОС: Windows XP, 2003, Vista (для tasm16 только 32-bit)
Требования: .NET Framework 4.0 и выше
Особенности: меньше функций, нет установщика и автообновления, работает на старых ОС
Файл: portableASMVisualXPedition.zip
Версия: 1.0.2
Размер: 12,0 МБ
Начать загрузку XP edition
SASM
English version of site here.
SASM (SimpleASM) — простая кроссплатформенная среда разработки для языков ассемблера NASM, MASM, GAS, FASM с подсветкой синтаксиса и отладчиком. В SASM Вы можете легко разрабатывать и выполнять программы, написанные на языке ассемблера. Вводите код в форму и запускайте приложение. Программа работает «из коробки» и хорошо подойдет для начинающих изучать язык ассемблера.
Основана на Qt. Распространяется по свободной лицензии GNU GPL v3.0.
Загрузить .exe для Windows
Загрузить .zip для Windows
Загрузить для Linux
Установка на Mac: ссылка 1, ссылка 2
Для загрузки программы на Linux перейдите по соответствующей ссылке и выберите ваш дистрибутив и архитектуру (i386 / amd64).
Вы также можете собрать SASM из исходников, которые можно найти в GitHub репозитории.
Поддержите проект
WebMoney: Z282016332582 и R331674303467
О программе
В SASM Вы можете легко разрабатывать и выполнять программы, написанные на языках ассемблера NASM, MASM, GAS, FASM. Вводите код в форму и запускайте приложение. В Windows также возможен запуск приложения в отдельном окне. Входные данные указывайте в поле «Ввод». В поле «Вывод» Вы сможете увидеть результат работы программы. При этом все сообщения и ошибки компиляции будут выводиться в форму снизу. Вы можете сохранять исходный или скомпилированный (exe) код программы в файл, а также загружать свои программы из файла.
Программа поддерживает работу с несколькими проектами – новые файлы открываются и создаются в новых вкладках. При выходе из программы текущий набор открытых файлов сохраняется. При следующем запуске Вы сможете восстановить предыдущую сессию. В параметрах настраивается шрифт, цветовая схема и текст, отображающийся при создании нового файла. Интерфейс программы доступен на восьми языках (русский, английский, турецкий (спасибо Ali Goren), китайский (спасибо Ahmed Zetao Yang), немецкий (спасибо Sebastian Fischer), итальянский (спасибо Carlo Dapor), польский (спасибо Krzysztof Rossa), иврит (спасибо Elian Kamal), испанский (спасибо Mariano Cordoba), французский (спасибо Franc Serres). Все окна в программе плавающие, с возможностью закрепления в одной из множества позиций. Имеется возможность переназначения горячих клавиш.
Стандартное меню «Правка» дополнено возможностью комментирования/раскомментирования выделенного куска кода и создания/удаления отступа в 4 пробела (Tab/Shift+Tab).
В SASM вы можете находить ошибки в своих программах с помощью интерфейса к отладчику gdb. В программе можно просматривать значения регистров и переменных, а также устанавливать точки останова и перемещаться по отлаживаемой программе. Дополнительно имеется возможность выполнять произвольные команды отладчика gdb, результаты которых будут отображаться в логе.
SASM полностью поддерживает работу с четырьмя ассемблерами NASM, MASM, GAS, FASM в двух режимах — x64 и x86, переключаться между которыми можно в настройках на вкладке «Построение». Там же можно изменить опции ассемблера и компоновщика и выбрать, какие программы будут использоваться для ассемблирования и компоновки.
Устранение неполадок
Если у Вас что-то работает не так (происходят ошибки при компиляции, отладке и др.), пожалуйста, прочитайте главу «Устранение неполадок» в справке в программе (F1) или в Wiki проекта на GitHub. Возможно, там Вы сможете найти полезный совет для решения Вашей проблемы.
Примеры кода
Работоспособные примеры кода для разных ассемблеров, включая примеры работы с фунциями ввода-вывода и макросами «io.inc»,
содержатся в папке Projects по пути, где установлен SASM (обычно C:\Program Files (x86)\SASM на Windows, /usr/share/sasm на Linux).
Библиотека макросов для NASM «io.inc»
В программу включена библиотека кроссплатформенных макросов ввода-вывода «io.inc». Для её использования в начале программы нужно добавить директиву %include «io.inc» (%include «io64.inc» для 64-битного ассемблера). Подробнее о ее командах Вы можете узнать здесь: http://asmcourse.cs.msu.ru/?page_id=169 или ниже.
Имя макроса | Описание макроса |
PRINT_UDEC size, data
PRINT_DEC size, data |
Вывод числовых данных заданных параметром data в 10-чном представлении. Параметр size – число, указывающее размерность данных в байтах; допускаются значения 1, 2, 4, 8 (x64). В качестве параметра data может выступать числовая константа, символьная константа, имя переменной, имя регистра или адресное выражение (без спецификатора размера данных в памяти). Если задается регистр большего размера, то берется заданное параметром size количество младших разрядов. PRINT_UDEC интерпретирует число как беззнаковое, PRINT_DEC — как знаковое. |
PRINT_HEX size, data | Аналогично предыдущему, но данные выводятся в 16-чном представлении. |
PRINT_CHAR ch | Печатается символ, заданный параметром ch. В качестве параметра может выступать численная константа, символьная константа, имя переменной, имя регистра или адресное выражение (без спецификатора размера данных в памяти). Печатается всегда содержимое 8 младших разрядов. |
PRINT_STRING data | Печать строки текста, оканчивающейся символом с кодом 0. В качестве параметра можно передавать строковую константу, имя переменной или адресное выражение (без спецификатора размера данных в памяти). В случае печати строковой константы, наличие символа с кодом 0 в конце строки необязательно. |
NEWLINE | Макрос переводит печать на новую строку. |
GET_UDEC size, data
GET_DEC size, data |
Ввод числовых данных в 10-чном представлении с клавиатуры. Размер вводимых данных ограничен параметром size, который задается числом (1, 2, 4, 8 (x64)). Введенные данные обрезаются соответствующим образом. Параметр data – либо имя переменной, либо имя регистра, либо адресное выражение (без спецификатора размера данных в памяти). Если задается регистр большего размера, то старшие разряды заполняются знаковым битом в случае GET_DEC и нулями в случае GET_UDEC. GET_UDEC считывает беззнаковое число, GET_DEC — знаковое. Запрещается использовать в качестве параметра регистр esp. |
GET_HEX size, data | Аналогично предыдущему, но данные задаются в 16-чном представлении с префиксом 0x. |
GET_CHAR data | Аналогично предыдущему, но происходит считывание одного символа, нажатие Enter не требуется. Более того, нажатие Enter будет расцениваться как ввод управляющих символов перевода строки: 0xD 0xA в ОС Windows, 0xA в ОС *nix. Если параметр – регистр, размер которого больше 1 байта, значение считанного символа будет дополнено нулями. |
GET_STRING data, maxsz | Ввод последовательности символов длиной не более чем (maxsz-1). Чтение последовательности останавливается на EOF или переводе строки, причем перевод строки сохраняется в буфере. В конец считанной строки добавляется символ с кодом 0. Параметр data – либо имя переменной, либо адресное выражение (без спецификатора размера данных в памяти). Параметр maxsz – регистр или числовая константа. |
При вызовах макросов значения всех регистров общего назначения не изменяются.
Функции ввода-вывода для NASM (x86)
Наряду с макросами, другим простым вариантом ввода-вывода в NASM являются соответствующие макросам вспомогательные функции ввода-вывода, доступные в SASM (работают только для x86 NASM проектов). Для их использования необходимо объявить нужные функции с помощью директивы extern <имя функции>, а затем размещать аргументы в регистрах в соответствии с таблицей ниже и вызывать функции с помощью инструкции call. Подробнее о функциях ввода-вывода Вы можете узнать здесь: http://asmcourse.cs.msu.ru/?page_id=2611 или ниже.
Имя функции | EAX | EDX |
io_get_dec io_get_udec io_get_hex |
выход: число | |
io_get_char | выход: символ | |
io_get_string | вход: адрес | вход: размер |
io_print_dec io_print_udec io_print_hex |
вход: число | |
io_print_char | вход: символ | |
io_print_string | вход: адрес | |
io_newline |
При вызовах функций значения регистров EBX, EBP, ESP, EDI, ESI не изменяются, значения остальных регистров могут быть изменены.
Реализация
Windows
В качестве ассемблера для NASM используется nasm 2.15.05, в качестве компоновщика — gcc 4.6.2 из MinGW (gcc 4.8.1 из MinGW64 в режиме x64) или ld 2.22 из MinGW (ld 2.23.2 из MinGW64 в режиме x64).
Версии ассемблеров и компоновщиков для NASM подобраны с учетом рекомендуемых программ для курса «Архитектура ЭВМ и язык ассемблера» ВМК МГУ 1-го потока.
Также в программу включен отладчик gdb 7.4 (7.6 для x64) из пакета MinGW и немного измененная для отладки библиотека макросов ввода-вывода.
Начиная с версии 3.0, в SASM включены fasm 1.73.30 и gas 2.23.1 из MinGW (gas 2.23.2 из MinGW64).
Ассемблер MASM невозможно было включить в сборку из-за его лицензии. Чтобы им воспользоваться, Вы должны установить MASM на Ваш компьютер с сайта https://www.masm32.com/ и указать пути до ассемблера (ml.exe, путь обычно «C:/masm32/bin/ml.exe») и до компоновщика (link.exe, путь обычно «C:/masm32/bin/link.exe») в соответствующих полях на вкладке «Построение».
Под Windows SASM после установки сразу готов к работе.
Linux
Для работы программы на Linux должны быть установлены: nasm или gas (если их планируется использовать, fasm уже включён в сборку), gcc, gdb (для отладки).
Больше информации о программе и её использовании можно получить в Wiki проекта на GitHub или в справке в самой программе (F1).
История изменений:
03.03.2023 — версия 3.14.0 (zip, exe):
При обновлении с предыдущих версий рекомендуется в настройках нажать кнопку «Сбросить все настройки на начальные».
- Добавлена тёмная тема (спасибо Hasan Rüzgar).
- Добавлен французский язык (спасибо Franc Serres).
13.02.2023 — версия 3.13.4 (zip, exe):
При обновлении с предыдущих версий рекомендуется в настройках нажать кнопку «Сбросить все настройки на начальные».
- Исправлена сборка программ на Windows в случае наличия нелатинских букв в имени пользователя.
- Добавлено закрытие окна справки по клавише Escape.
09.02.2023 — версия 3.13.3 (zip, exe):
При обновлении с предыдущих версий рекомендуется в настройках нажать кнопку «Сбросить все настройки на начальные».
- Исправление опций компоновщика.
07.02.2023 — версия 3.13.2 (zip, exe):
При обновлении с предыдущих версий рекомендуется в настройках нажать кнопку «Сбросить все настройки на начальные».
- Исправления отладки.
- Новые примеры программ.
07.02.2023 — версия 3.13.1 (zip, exe):
При обновлении с предыдущих версий рекомендуется в настройках нажать кнопку «Сбросить все настройки на начальные».
- Исправлена отладка на Windows 11 и Ubuntu 22.
- Исправлены мелкие баги в отладчике.
- Исправлено падение отладчика при отладке программ без секции .text.
- Новая версия FASM 1.73.30, исправляющая баг при сборке программ на Ubuntu 22.
- Исправлены зависимости сборки для Ubuntu 22.
06.02.2023 — версия 3.13.0 (zip, exe):
При обновлении с предыдущих версий рекомендуется в настройках нажать кнопку «Сбросить все настройки на начальные».
- Новые функции ввода-вывода (см. справку).
- Возможность написания программ без макросов CMAIN/CEXTERN (см. примеры).
- Новая версия NASM 2.15.05.
- Обновление справки и примеров.
- Исправление бага с просмотром строковых переменных во время отладки.
09.03.2022 — исправления установщика и zip-архива версии 3.12.2 (zip, exe)
06.02.2022 — версия 3.12.2 (zip, exe):
- Исправлен баг в макросах GET_DEC/GET_UDEC/GET_HEX при работе с адресными выражениями с регистром ESP.
- Исправлен запуск GDB с файлом .gdbinit и вывод ошибок.
- Исправлена отладка для программ с директивой segment и инструкциями push ebp/rbp.
- Исправлена отладка и подсветка синтаксиса в многострочных комментариях в NASM.
- Исправлена подсветка найденного при изменении текста.
13.02.2021 — версия 3.12.1 (zip, exe):
- Исправленa отладка при использовании с новыми версиями NASM.
08.02.2021 — версия 3.12.0 (zip, exe):
- Запуск и отладка теперь проводятся в директории с текущим исходником (для удобного файлового ввода-вывода).
- Поддержка UTF-8 по умолчанию.
- Поддержка Qt 5 для Linux.
- Португальский язык (спасибо alglus).
- Исправлен некорректный доступ к памяти в макросе GET_DEC на Windows.
03.02.2020 — версия 3.11.1 (zip, exe):
- Исправлена ошибка с горячей клавишей для раскомментирования.
31.01.2020 — версия 3.11.0 (zip, exe):
- Исправлены ошибки при отладке в GDB 8.
- Исправлен разбор регистров.
- Исправлена ошибка, приводящая к падению при клике в окне «Память» (спасибо Hofmer13).
- Исправлена ошибка, при которой пропадала горячая клавиша отладки.
- Исправлена ошибка с открытием файлов без расширений.
- Добавлено сохранение файла перед сборкой.
- Добавлен поиск выделенного текста.
- Исправлен перевод на итальянский (спасибо Mek101).
08.10.2018 — версия 3.10.1 (zip, exe):
- Исправлена ошибка, при которой из компоновки исключались файлы, необходимые для работы функций ввода-вывода библиотеки «io.inc».
01.10.2018 — версия 3.10.0 (zip, exe):
- Поддержка BSD OS (спасибо Martinfx).
- Исправлена ошибка, приводящая к неработоспособности отладчика при использовании gcc с опцией PIE по умолчанию (спасибо lberserq).
- Добавлена поддержка испанского языка (спасибо Mariano Cordoba).
- Небольшие исправление в настройках программы.
12.09.2017 — версия 3.9.0 (zip, exe):
- Более удобный просмотр значений по адресу.
- Исправлена ошибка, приводящая к падению отладчика (спасибо lberserq).
- Добавлена поддержка польского языка (спасибо Krzysztof Rossa).
- Добавлена поддержка иврита (спасибо Elian Kamal).
19.02.2017 — версия 3.8.0 (zip, exe):
- Улучшен разбор регистров при отладке.
- Добавлена опция запуска ассемблера в текущей директории.
- Добавлена поддержка итальянского языка.
30.10.2016 — версия 3.7.0 (zip, exe):
- Добавлена поддержка китайского языка.
- Добавлена поддержка немецкого языка.
- Исправлена ошибка, приводящая к невозможности повторного запуска программы после аварийного завершения.
- Исправлена ошибка, при которой вывод программ, содержащий непечатные символы, не отображался полностью.
25.09.2016 — версия 3.6.0:
- Добавлена поддержка турецкого языка.
- Улучшено добавление отступов при нажатии клавиши Tab.
26.08.2016 — версия 3.5.1:
- Исправлены ошибки с отладкой, drag & drop и другие мелкие ошибки.
19.03.2016 — версия 3.5.0:
- Поддержка компоновщика GoLink.
- Исправлена ошибка с неправильным именем файла при отркытии или сохранении.
11.02.2016 — версия 3.4.0:
- Изменение цвета номеров строк.
- Возможность отключения автоматической вставки отладочной строки.
27.01.2016 — версия 3.3.0:
- Однооконный режим.
- Функция drag & drop для открытия файлов. Чтобы открыть файл, можно просто перетащить его на окно программы.
- Улучшенная справка: расширена часть «Устранение неполадок», добавлена часть «Настройка системы сборки».
- Исправление множества ошибок, включая ошибку с системно-зависимыми путями и ошибку при показе регистров x87 FPU.
14.06.2015 — версия 3.2.0:
- Добавлена возможность отключения запуска компоновщика.
- Обновлён FASM: новая версия 1.71.39.
- Исправлены некоторые ошибки, возникающие при отладке.
27.05.2015 — версия 3.1.4: исправлена ошибка, возникающая при использовании в системе локализованной версии objdump.
30.03.2015 — версия 3.1.3: добавлено отображение информации о полученных программой сигналах (в т. ч. об ошибках, возникающих в ходе её работы) при отладке.
27.03.2015 — версия 3.1.2: улучшена работа при отладке файлов с директивой include.
24.03.2015 — версия 3.1.1: исправлены ошибки с подсветкой синтаксиса.
29.08.2014 — версия 3.1.0: изменения из pull requsts и issues на GitHub — перемещаемые вкладки, сообщения об ошибках при неправильном ассемблере или компоновщике, улучшенная отмена и постановка отступа в 4 пробела, опция noexecstack для исполняемых файлов в Linux.
24.07.2014 — версия 3.0.1: добавлена возможность просмотра дополнительных регистров (xmm, st и других).
13.07.2014 — версия 3.0:
- Добавлена поддержка новых ассемблеров, кроме NASM — GAS, MASM, FASM, включая подсветку синтаксиса, отладку и поддержку архитектур x86 и x64. Появилась возможность выбрать вручную ассемблер и компоновщик, а также изменить опции сборки программы.
- Значительно улучшена работа отладчика, стало возможным отлаживать программы даже без отладочной информации для GDB (например, написанные на MASM). В отладчике добавлена возможность приостановить программу, а также установить точку останова во время её выполнения.
- Добавлена папка для include файлов.
- Исправлены проблемы с загрузкой процессора текстовым редактором при открытии больших файлов с исходным кодом. Исправлена ошибка с нарушением работы интерфейса после открытия окна настроек. Исправлено множество мелких ошибок и недочетов.
23.04.2014 — версия 2.3.1: исправлена ошибка, возникающая при наличии пробелов в пути до временной директории (в частности восстановлена работа SASM на Windows XP).
03.04.2014 — версия 2.3:
- Добавлена возможность выбора режимов x64 или x86 и изменения опций ассемблера и компоновщика. Добавлен инструментарий для компиляции и отладки 64-битного кода. Реализована подсветка 64-битных регистров и команд. Библиотека «io.inc» адаптирована для использования в 64-битных приложениях.
- Добавлена подсветка команд макроассемблера NASM.
- Исправлено множество мелких ошибок, в том числе улучшено отображение окна переменных при отладке, исправлена ошибка при считывании в стек макросами из «io.inc».
16.02.2014 — версия 2.2:
- Значительно улучшен интерфейс программы и её юзабилити, исправлено множество ошибок. Добавлены выбор цветов фона и текста, а также полная настройка подсветки синтаксиса. Окна ввода-вывода и отладки стали плавающими (docking) окнами с многочисленными вариантами их расположения. Улучшены виджеты отображения регистров и памяти (добавлены автоподгонка под текст и возможность копирования), сделана возможность запоминания их состояния. Улучшен механизм точек останова — добавлена возможность остановки на метке (на строке с кодом ниже) и возможность её установки по горячей клавише. Улучшена отладка макросов — теперь они неотличимы от обычных инструкций. К действиям добавлены иконки, сделаны тулбары.
- Комбинации горячих клавиш приведены в соответствие со стандартными, добавлена возможность их переназначения.
13.11.2013 — версия 2.1:
- Исправлено множество ошибок, исправлены проблемы совместимости — созданы установочные пакеты для многих Linux-систем на OBS, налажена совместимость с Qt 4, а также упрощена сборка из исходников.
- Сделано много улучшений, расширена функциональность. В частности, в отладчике — добавлены: просмотр регистров, просмотр памяти, точки останова и команда «продолжить»; улучшены: выполнение произвольных команд gdb, подсветка текущей строки, последовательный вывод во время отладки (изменены макросы io.inc).
- Компиляция теперь выполняется во временных папках — пропала необходимость в специальных правах при запуске программы.
- Добавлена отметка о несохраненном документе. Добавлен последовательный вывод в программах. Добавлено отображение статуса завершения программы. Добавлен вывод времени работы программы. Добавлен выбор шрифта.
- Обновлена справка. Сделана новая иконка. Еще множество минорных улучшений и исправлений.
04.06.2013 — версия 2.0: сделаны все запланированные изменения — реализован отладчик, улучшена подсветка, стало возможно работать с несколькими файлами, SASM (новое название) полностью переписан на Qt и теперь с открытым кодом и кроссплатформен. Исходники выложены на GitHub, сюда же переехал и сайт. Если Вам нужны более ранние версии программы, Вы можете их найти на предыдущем сайте.
21.04.2013 — версия 1.0.4 — исправлена ошибка с CEXTERN.
18.03.2013 — версия 1.0.3 — исправлены ошибки подсветки синтаксиса, теперь подсвечиваются все ключевые слова NASM, исправлен запуск программ на MASM.
10.03.2013 — версия 1.0.2 — исправлены ошибки, добавлено автосохранение кода и пути.
07.03.2013 — появилась первая версия программы — 1.0.0.
Пожелания и сообщения об ошибках отправляйте на адрес Dman1095@gmail.com или оставляйте на GitHub Issues.
Copyright © 2013 Дмитрий Манушин
Flat Assembler
… to the ultimate destination for downloading the Flat Assembler, an impressive software developed by the brilliant mind … serious programmer who values efficiency and power.
Flat Assembler, also known as FASM, is a self-assembling 80×86 …
Price: FREE / Freeware
GUI Turbo Assembler
… 10 software enthusiasts! Discover the remarkable GUI Turbo Assembler, a game-changing creation by the brilliant mind of … the gap between simplicity and power, GUI Turbo Assembler revolutionizes the coding experience for Windows 10 users. …
Price: FREE / Open Source
NASM
… to the download page for NASM, a premier assembler software developed by the renowned H. Peter Anvin. NASM, or the Netwide Assembler, is a free, portable, and extensible software that …
Price: FREE / Open Source
OllyDbg
… a plethora of powerful features.
OllyDbg is an assembler level analyzing debugger that is designed to simplify … memory and register manipulation, and has a built-in assembler with a flexible plugin system.
With OllyDbg, you …
Price: FREE / Freeware
- Editor’s pick
Easy Code for MASM
… assembly language. It supports both MASM and GoAsm assembler syntaxes, making it a versatile tool for a wide range of programming needs.
Whether you’re a …
Price: FREE / Freeware
- Editor’s pick
Easy Code for GoAsm
Welcome to the premier destination for downloading «Easy Code for GoAsm,» a groundbreaking software developed by the renowned Ramon Sala. This software is a must-have for …
Price: FREE / Freeware
- Editor’s pick
XTOOLS
Welcome to the world of advanced software solutions with XTOOLS by BiPOM Electronics, Inc. This Windows 10 compatible software is a cutting-edge toolset designed to simplify …
Price: $199.00 / Shareware
- Editor’s pick
Smali
Welcome to the download page for Smali, an exceptional software developed by the renowned Smali/Baksmali Team. Smali is a powerful and versatile tool designed specifically for …
Price: FREE / Open Source
MasmTidy
Welcome to the Windows 10 download page, where we present a remarkable software called MasmTidy, developed by the brilliant minds at Canadian Mind Products. MasmTidy is …
Price: FREE / Freeware
Easy Code
Welcome to the official download website for Easy Code, a cutting-edge software developed by the talented Ramon Sala. Designed specifically for Windows 10, Easy Code is …
Price: FREE / Freeware
Fresh IDE portable
Welcome to the ultimate destination for all your Windows 10 software needs! Discover the remarkable «Fresh IDE portable,» an ingenious creation by the brilliant mind of …
Price: FREE / Freeware
Fresh IDE
Welcome to the ultimate destination for all your Windows 10 software needs! Discover the innovative and dynamic world of Fresh IDE, a cutting-edge software developed by …
Price: FREE / Freeware
MASM Balancer
Welcome to the ultimate destination for Windows 10 software enthusiasts! Discover the remarkable «MASM Balancer» by Canadian Mind Products, a game-changing tool designed to optimize your …
Price: FREE / Freeware
Cheat Engine
… change them. It also has a debugger, disassembler, assembler, speedhack, trainer maker, direct 3D manipulation tools, system inspection tools and more.
For the curious minds, …
Price: FREE / Open Source
- Editor’s pick
OptiVec for Delphi
… Delphi» is a powerhouse of over 3500 hand-optimized, Assembler-written functions for all floating-point and integer data types from the following fields: vectorized form of arithmetic …
Price: $249.00 / Shareware
PowerArchiver 2013
Welcome to the ultimate destination for downloading PowerArchiver 2013, a top-tier software developed by ConeXware Inc. This site is your gateway to a world of efficient …
Price: $22.95 / Trialware
- Editor’s pick
SmartFTP FTP Library
Welcome to the home of SmartFTP FTP Library, an innovative software solution developed by SmartSoft Ltd. This software is a game-changer for Windows 10 users, offering …
Price: $699.00 / Trialware
- Editor’s pick
OptiVec for Visual C++
Welcome to the premier destination for downloading «OptiVec for Visual C++», an exceptional software developed by the renowned OptiCode — Dr Martin Sander Software Dev. This …
Price: $249.00 / Shareware
- 5 Stars Award
OptiVec for Lazarus / FreePascal
Welcome to the download page for OptiVec for Lazarus / FreePascal, a high-performance software developed by OptiCode — Dr Martin Sander Software Dev. This software is …
Price: $249.00 / Shareware
- 5 Stars Award
JPEXS Free Flash Decompiler
Welcome to the download page for JPEXS Free Flash Decompiler, a premier software developed by JPEXS. This powerful tool is a must-have for any tech enthusiast, …
Price: FREE / Freeware
- 5 Stars Award
CMATH for Delphi
Welcome to your one-stop destination for downloading the exceptional «CMATH for Delphi» software, a cutting-edge product developed by the renowned OptiCode — Dr Martin Sander Software …
Price: $60.00 / Shareware
- 5 Stars Award
Turbo C++
Welcome to our Windows 10 download site, your one-stop destination for top-notch software! One of our standout offerings is the Turbo C++ software, a product of …
Price: FREE / Freeware
- Editor’s pick
Free Pascal
Welcome to our Windows 10 download page for the innovative software, «Free Pascal». Developed by the highly skilled Free Pascal Team, this software is a game-changer …
Price: FREE / Open Source
- Editor’s pick
GMABooster
Welcome to the official download site for GMABooster, a groundbreaking software developed by the tech maestro, Vladimir Plenskiy. This powerful tool is designed to optimize your …
Price: FREE / Freeware
- Editor’s pick
Snes9x
Welcome to the download page for Snes9x, a premier software developed by Snes9x that brings the nostalgic world of Super Nintendo Entertainment System (SNES) games right …
Price: FREE / Freeware
- Editor’s pick
Portable DevProject Manager
Welcome to the Windows 10 download page for the Portable DevProject Manager, a dynamic software application developed by the renowned Werner Rumpeltesz. This software is a …
Price: FREE / Freeware
- Editor’s pick
FreeBasic for Windows (x64 bit)
Welcome to the download page for FreeBasic for Windows (x64 bit), an exceptional software developed by the renowned FreeBASIC development team. This software is a high-level …
Price: FREE / Open Source
- Editor’s pick
FreeBasic for Windows
Welcome to the hub for downloading FreeBasic for Windows, a powerful software creation tool brought to you by the FreeBASIC development team. This software is a …
Price: FREE / Open Source
- Editor’s pick
Doszip Commander
Welcome to the download page for the innovative software, Doszip Commander, a brainchild of the esteemed developer H. Nidudsson. This software is a testament to the …
Price: FREE / Open Source
OptiVec for GCC
Welcome to the official download website for OptiVec for GCC, a cutting-edge software developed by OptiCode — Dr Martin Sander Software Dev. Designed specifically for Windows …
Price: FREE / Freeware