Комментарии 28
НЛО прилетело и опубликовало эту надпись здесь
FASM круче всех. Проблема в модульности.
«Искусство дизассемблирования» К.Касперски 2009 год, БХВ-Петербург.
Инфа об игрушечности весьма устарела, так что поддерживаю Вас.
Сейчас есть и х64 версия есть.
Инфа об игрушечности весьма устарела, так что поддерживаю Вас.
Сейчас есть и х64 версия есть.
Согласен, то что FASM позволяет обходится без компоновщика это его один из главных минусов который и делает его «игрушечным». Еще большим недостатком FASMa является то, что он не умеет генерировать отладочную информацию абсолютно ни в каком формате.
Пожалуй самым неудобством является то, что нельзя использовать сторонние lib и obj файлы. Зато довольно легкая система построения импорта, благодаря которой не требуется lib файлов для динамической компоновки с какой-нибудь dll.Не могли бы Вы пояснить, почему нельзя использовать сторонние .lib и .obj? Это же, вроде бы, обычные COFF-файлы, которые должны стандартным образом обрабатываться сторонними линкерами, вместе с теми COFF, которые были созданы с помощью fasm.
Гнушный ассемблер знает и синтаксис интела:
gcc -S -masm=intel HelloWorld.c -o hw.s
Во первых строках файла hw.s будет директива:
.intel_syntax noprefix
При её наличии в ком. строке при ассемблировании опцию -masm=intel можно уже не указывать:
gcc hw.s -o hw.exe
По крайней мере в cygwin так.
gcc -S -masm=intel HelloWorld.c -o hw.s
Во первых строках файла hw.s будет директива:
.intel_syntax noprefix
При её наличии в ком. строке при ассемблировании опцию -masm=intel можно уже не указывать:
gcc hw.s -o hw.exe
По крайней мере в cygwin так.
распакуем его, в папке у нас будет бинарный файл fasm, копируем этот файл в /usr/bin или /usr/local/bin (в разных линуксах по разному).
Разве? Я всегда считал, что именно /usr/local/… предназначен для установки руками, а не пакетным менеджером.
Я конечно боюсь быть закидан камнями, но кому сейчас может понадобиться изучать ассемблер?
НЛО прилетело и опубликовало эту надпись здесь
Tasm Visual без проблем запускается и в десятке
> копируем этот файл в /usr/bin или /usr/local/bin (в разных линуксах по разному)
Не делайте так.
1. Не существует «разных линуксов». Linux — ядро. Бывают разные ОС и разные дистрибутивы ОС на базе ядра Linux.
2. В /usr/bin НИКОГДА нельзя писать самому. В /usr/bin пишет пакетный менеджер. В /usr/local/bin можно собирать что-то самому. Если вы качаете бинарник, то отправляйте его в ~/bin или /opt/bin(второй случай, если он нужен всем в системе, а не только вам).
Не делайте так.
1. Не существует «разных линуксов». Linux — ядро. Бывают разные ОС и разные дистрибутивы ОС на базе ядра Linux.
2. В /usr/bin НИКОГДА нельзя писать самому. В /usr/bin пишет пакетный менеджер. В /usr/local/bin можно собирать что-то самому. Если вы качаете бинарник, то отправляйте его в ~/bin или /opt/bin(второй случай, если он нужен всем в системе, а не только вам).
Кое где уже используется ~/.local/bin
Вот не могу даже придумать зачем ~/.local/bin кто-то мог породить. Есть канонический ~/bin для пользовательских бинарников(у меня вот в нем Telegram лежит, потому что мне лень его в пакет завернуть). Зачем порождать еще что-то в голову не приходит.
Спасибо, исправил
Автор, прикрепите ссылку на отличный ресурс: https://wasm.in
Появилась мысль поставить Kolibrios (с целью ознакомления с данной ОС и Fasm) на какой-нибудь бюджетный телефон или планшет или мини-пк, вот только все бюджетные телефоны/планшеты работают на ARM. Где-то читал, что есть эмулятор x86 под ARM. Подскажите, как называется. Можно, конечно, старый ПК на x86 для этих целей купить, но со старым железом связываться не охота. Может есть какие-нибудь доступные (не для работы, а для экспериментов) устройства/аппаратные платформы на Intel'e?
Попытался на MacBook'е (Core 2 Duo Mac Os 10.6.8) выполнить трансляцию программы gas.s командой $ as -o gas.o gas.s. Получил ошибки. Потом нашел статью, где написано, что As идёт только на MacBook'e с х86, на Core 2 Duo не пойдёт. Остается Nasm?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
MASM, TASM, FASM, NASM под Windows и Linux