- Fasm для windows 7 x64
- MASM, TASM, FASM, NASM под Windows и Linux
- FasmWorld Программирование на ассемблере FASM для начинающих и не только
- Учебный курс. Часть 1. Необходимые инструменты
- Автор: xrnd | Рубрика: Учебный курс | 30-01-2010 | Распечатать запись
- fasm, win 7 64, процессор 64
- Мануал по flat assembler
- Решение
Fasm для windows 7 x64
Программирование на Ассемблере я начинал с Turbo Assembler (TASM) под MS-DOS, сейчас пишу на Flat Assembler (FASM) под Windows. Это очень удобный и мощный пакет для разработки, бесплатный для любого использования. Написан полностью на самом себе, исходники прилагаются. Мне он нравится тем, что позволяет хранить код и описания ресурсов в одном ASM-файле, поддерживает макросы, генерит чистый машинный код без всякой незаявленной самодеятельности, не требует лишней рутинной работы типа прописывания каждой задействованной функции в секцию импорта и еще множество приятных мелочей, облегчающих жизнь программисту. Единственным недостатком является отсутствие достаточного количества готовых исходников, например по сравнению с тем же MASM’ом, а портирование исходников с других платформ на FASM иногда вызывает затруднения. Но на мой взгляд портирование, в отличие от копирования, помогает гораздо лучше изучить язык. Несколько исходников-примеров есть в самом дистрибутиве FASM, еще несколько примеров можно скачать с офсайта или поискать в Интернете. Ответы на многие возникающие вопросы можно найти на официальном форуме FASM. Форум англоязычный, но на нем немало наших соотечественников. К новичкам на форуме относятся хорошо и отвечают даже на самые глупые вопросы.
Для установки Flat Assembler скачайте дистрибутив с офсайта (около 800 килобайт). На момент публикации версия FASM 1.67.27, если ссылка изменится, то можете посмотреть обновление на странице загрузки. Там же можно скачать версии FASM для Linux, Unix и MS-DOS. Бесплатный add-on FASMARM к FASM для работы с ARM можно найти здесь, текущая версия FASMARM 1.12. Инсталлятора нет, программа устанавливается простым извлечением из архива в какое-нибудь удобное для вас место, например C:\FASM. Обязательно скачайте справочник Microsoft Win32 Programmer’s Reference, распакуйте его в папку с FASM’ом. Для удобства можно сделать вложенную папку \help.
Microsoft Win32 Programmer’s Reference
Техническую документацию по FASM на английском языке можно скачать с офсайта, на русском языке есть вот такие мануалы:
Основной мануал Flat Assembler 1.64
Руководство по препроцессору FASM
FASM 1.64: Руководство программиста
Для продвинутых программистов могу порекомендовать справочник Windows NT/2000 Native API Reference на английском языке:
Windows NT/2000 Native API Reference
Ассемблер для процессоров Intel Pentium
Ассемблер для DOS, Windows и Unix
Ассемблер & Win32. Курс молодого бойца
Учебник по основам языка Ассемблера
Учебник по языку Ассемблер в задачах и примерах
Intel Hex Opcodes And Mnemonics
x86 Instruction Set Reference
И напоследок две книги из категории «must have». Их, конечно, лучше иметь в бумажном варианте в качестве настольных справочников, но электронные версии тоже вполне подойдут. Книги залиты на файлообменник. Обе книги на русском языке, в хорошем качестве.
При первом запуске FASM создаст файл настроек FASMW.INI, откройте его для редактирования в Блокноте. В конец файла надо будет добавить две новых секции. Сперва пропишите полный путь к Win32 Programmer’s Reference:
После этого надо установить необходимые переменные окружения и пути для подключаемых файлов. Например у меня прописаны вот такие:
[Environment]
include=»C:\FASM\INCLUDE»
music=»C:\FASM\KEYGEN\XM_FILES»
ufmod=»C:\FASM\INCLUDE\MUSIC»
Переменная include обязательная, остальные для удобства. Теперь при написании программ вместо абсолютных путей можно (и нужно) использовать относительные:
MASM, TASM, FASM, NASM под Windows и Linux
В данной статье я хочу рассмотреть вопросы, которые могут возникнуть у человека, приступившего к изучению ассемблера, связанные с установкой различных трансляторов и трансляцией программ под Windows и Linux, а также указать ссылки на ресурсы и книги, посвященные изучению данной темы.
Используется для создания драйверов под Windows.
По ссылке переходим на сайт и скачиваем пакет (masm32v11r.zip). После инсталляции программы на диске создается папка с нашим пакетом C:\masm32. Создадим программу prog11.asm, которая ничего не делает.
Произведём ассемблирование (трансляцию) файла 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
Открываем этот файл архиватором (например 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.
Программный пакет компании Borland, предназначенный для разработки программ на языке ассемблера для архитектуры x86. В настоящее время Borland прекратила распространение своего ассемблера.
Скачать можно, например, здесь. Инсталлятора нет, просто извлекаем программу. Вот исходник из книги Питера Абеля (рис. 3.2) «Язык Ассемблера для IBM PC и программирования».
Выполним ассемблирование (трансляцию) файла abel32.asm.
Корректность работы программы можно проверить, произведя линковку (tlink.exe) объектного файла и запустив полученный файл в отладчике.
Как было сказано выше, MASM можно использовать для работы с 16-битными программами. Выполним ассемблирование (трансляцию) программы abel32.asm с помощью ассемблера MASM:
Ключ /coff здесь не используется.
Линковка производится файлом link16.exe
В статье Криса Касперски «Сравнение ассемблерных трансляторов» написано, что «FASM — неординарный и весьма самобытный, но увы, игрушечный ассемблер. Пригоден для мелких задач типа „hello, world“, вирусов, демок и прочих произведений хакерского творчества.»
Скачаем FASM с официального сайта. Инсталлятора нет, просто извлекаем программу. Откроем fasm editor — C:\fasm\fasmw.exe. В папке C:\fasm\EXAMPLES\HELLO есть файл HELLO.asm.
Откроем файл HELLO.asm из fasmw.exe. Изменим строку include ‘win32ax.inc’ на строку include ‘c:\fasm\INCLUDE\WIN32AX.INC’. Запускаем из меню Run → Run.
Вот ссылки на ресурсы, посвященные FASM:
Для того, использовать FASM в Linux (у меня Ubuntu), скачаем соответствующий дистрибутив (fasm-1.71.60.tgz), распакуем его, в папке у нас будет бинарный файл fasm, копируем этот файл в /usr/local/bin для того, чтобы можно было запускать его из консоли, как любую другую команду.Выполним ассемблирование программы hello.asm из папки fasm/examples/elfexe/hello.asm.
Корректность работы программы можно проверить в отладчике.
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” есть на личном сайте автора.
Выполним ассемблирование и линковку и запустим файл hello.asm.
NASM для Windows можно установить, скачав соответствующий дистрибутив с соответствующего сайта.
Ссылки на ресурсы, посвященные Nasm:
Стандартный ассемблер практически во всех разновидностях UNIX, в том числе Linux и BSD. Свободная версия этого ассемблера называется GAS (GNU assembler). Позволяет транслировать программы с помощью компилятора GCC.
Из учебников удалось найти только книгу на английском «Programming from the ground up». На русском удалось найти только одну главу из книги С. Зубкова «Assembler для DOS, Windows и UNIX».
Возьмем пример программы, которая ничего не делает, с сайта. Создадим программу gas.s
Выполним ассемблирование (трансляцию), линковку и запуск программы:
Если в данной программе изменить _start на main, то можно выполнить ассемблирование (трансляцию) и линковку компилятором gcc.
Выполним ассемблирование (трансляцию), линковку и запуск программы:
Выводы: если вы изучаете программирование под Windows, то вы можете остановить свой выбор на Masm; Tasm больше не поддерживается, но для обучения по старым классическим учебникам подойдёт.
Под Linux Gas подойдет тем, кто использует GCC, а тем, кому не нравится синтаксис Gas, подойдёт Nasm.
FasmWorld Программирование на ассемблере FASM для начинающих и не только
Учебный курс. Часть 1. Необходимые инструменты
Автор: xrnd | Рубрика: Учебный курс | 30-01-2010 |
Распечатать запись
Учиться программировать начнем с процессора Intel 8086. Будем писать программы под DOS 🙂 Программирование под Windows и Linux сложнее, а нам надо с чего-то начинать. Поэтому начнем с простого и понятного 16-битного процессора 8086.
Практическая ценность от программирования под DOS в наше время не очень большая, если вы, конечно, не собираетесь тесно работать с этой операционной системой. Но она позволит нам быстро освоить основы ассемблера, а потом мы уже перейдем к программированию под 32-битные системы.
Все программы учебного курса вы сможете запустить под Windows. Конечно, реально они будут работать в эмуляторе DOS, в режиме виртуального процессора 8086. Но для учебных целей это вполне подойдёт.
Для программирования на ассемблере нам прежде всего необходим компилятор. Наиболее известные компиляторы это TASM, MASM и FASM. В моем учебном курсе я буду использовать FASM. Это довольно новый, удобный, быстро развивающийся компилятор ассемблера, написанный на себе самом 🙂 Его преимущества – это поддержка сложных макросов и мультиплатформенность. Есть версии под DOS, Windows и Linux, что меня особенно радует )
С его помощью можно сгенерировать файл любого формата, не обязательно исполняемый файл, так что FASM – это превосходный инструмент для экспериментов и исследований.
Последнюю версию FASM’a можно скачать с официального сайта http://flatassembler.net.
На момент написания этой статьи последняя версия 1.68. Можно скачать с моего сайта (версия под Windows). Все программы учебного курса я буду компилить этой версией. Хотя наверно и другими получится ))) Для установки содержимое архива надо распаковать в какую-нибудь папку. Например, у меня это будет папка C:\FASM.
Для отладки написанных программ будем использовать старый добрый Turbo Debugger из пакета TASM. Скачать можно с моего сайта. Архив также надо распаковать в какую-нибудь папку. У меня это будет
C:\TD.
Также от вас потребуется голова, прямые руки и желание ковыряться в ассемблерных командах! 🙂 Любые вопросы по теме можно писать в комментариях к статьям. Я постараюсь на все ответить. Можете писать мне на почту xrndfasmworld.ru
Желаю удачи, в следующей статье начнем писать нашу первую программу.
fasm, win 7 64, процессор 64
Процессор для Win 8
Имеется старенький комп: мать EP-4PDA3I-3, процессор Intel Pentium 4 3,0 Ghz, DDR 1 гиг, ОС.
Процессор,проги,win 7?
Привет, у меня возник вопрос. Когда давал на сборку мне новых внутренностей поставили на 4х ядерку.
Win 10 Грузит Процессор на 100%
Привет,я уже весь ютуб обшарил но ответа не нашел в чем проблема. У меня стоит вин 10 про х64 (При.
Как установить win 7 на новый биус с процессор I7 7700HQ
Добрый день ребята, кто знает как поставить вин 7 на новый биус с процессором I7 7700HQ купил ноут.
фасм может генерировать код следующих разрядностей: 16, 32, 64.
информацию найдете в книге Р. Аблязова «Программирование на ассемблере на платформе x86-64»
http://www.intel.com/content/w. anual.html
В основном всё те же команды, расширеные до обработки 4 слов (64 бит) в т.ч. сканирование строк, пересылка оных и пр. хуерга. исчезли команды PUSHAD, POPAD
Азы.
http://pirogov-vju.livejournal.com/1128.html]
Удобная прога для написания кода с болванками в т.ч. под 64 бита
http://asmworld.ru/instrumenty/fasm-editor-2-0/
Про регистры их половинки, четвертушки, осьмушки. К примеру у новых регистров R8-R15 нет старших осьмушек типа AH, BH и т.д. а есть просто осьмушки R8d, R9d и т.д.
http://www.cracklab.ru/faq/Регистр
Куда уж Intel до логичности и простоты системы комманд PDP-11/VAX-11, к примеру. Там одни режимы адресации многого стоят. И пересылка память-память была всегда.
Добавлено через 4 минуты
Добавлено через 4 минуты
Разве что микроконтроллеры MSP430 от TI есть. Душу греет.
Добавлено через 3 минуты
Полный 30h, дело даже не в том, что 32 или 64 бита. Нет в системе комманд X86-64 хорошей структурированности, система комманд негибкая и состоит из сплошных исключений и умолчаний с договорённостями.
Полный 30h, что скажешь?
Добавлено через 1 минуту
как я уже писал плюса только два: 64 битные числа и неограниченное пространство памяти.
Добавлено через 8 минут
дескриптор сегмента занимает 8 байт. реально из него используется только 13 бит(!). совместимость.
Добавлено через 4 минуты
Оо, еще один идиотизм вычитал: по идее установить грацу сегмента в лонг моде нельзя. но для регистров FS и GS можно. И зачем они там нужны?
Добавлено через 8 минут
все драйверы в вин64 должны быть 64 битными. собственно переписывать все равно придется. совместимости нету, да еще и вызов процедур изговняли.
Мануал по flat assembler
перевод выполнили Paranoik и Mikl___
Вложения
FASM.PDF (505.8 Кб, 929 просмотров) |
Неофициальная разработка Flat assembler версии 2.0.0
Разработчик Flat assembler’a Tomasz Grysztar в одном из блогов сообщил о разработке новой.
Flat assembler ругается на PROC
Доброго времени суток. Есть программа, собственно вот что она делает: «На экране инициализировать.
Как подключить include к flat компилятору
Здравствуйте,как подключить include к flat компилятору?Требуется подключить include ‘win32a.inc’ к.
Flat Assembler
Со временем задачи стали нерешаемыми из-за ужасно медленной скорости. Уже давно хочу перейти на.
Решение
Эта глава содержит всю важнейшую информацию, которая понадобится вам, чтобы начать использовать flat assembler (FASM). Если у вас уже есть опыт программирования на ассемблере, вам достаточно прочитать лишь первую главу перед использованием этого компилятора.
FASM написан на самом себе, обладает небольшими размерами и очень высокой скоростью компиляции, имеет богатый и емкий макро-синтаксис, позволяющий автоматизировать множество рутинных задач. Поддерживаются как объектные форматы, так и форматы исполняемых файлов. Это позволяет в большинстве случаев обойтись без линкера. В остальных случаях нужно использовать сторонние линкеры, поскольку линкер вместе с FASM не распространяется.
Этот документ описывает также IDE версию, разработанную для операционной системы Windows, которая использует графический интерфейс взамен консольного и обладает встроенным текстовым редактором. С точки зрения компиляции она обладает в точности такой же функциональностью как и все консольные версии, и дальнейшие части (начиная с 1.2) этого документа являются общими для всех версий компилятора. Исполняемый файл IDE версии называется fasmw.exe, в то время как консольная версия называется fasm.exe.
Вложения
FASM.PDF (505.8 Кб, 209 просмотров) |
Все версии требуют для своей работы 32-битного процессора архитектуры x86 (как минимум 80386), хотя могут также генерировать программы и для 16-битных процессоров. Консольная версия компилятора требует для работы любую Win32 совместимую операционную систему, в то время как версия с графическим интерфейсом требует Win32 GUI операционную систему версии 4.0 и выше, так что компилятор будет работать на любой системе начиная с Windows 95 и выше.
Исходные коды программ-примеров поставляемые с этой версией компилятора для успешной компиляции требуют, чтобы переменная окружения INCLUDE хранила полный путь к папке include, которая является частью пакета. Если такая переменная уже существует в вашей системе и содержит пути используемые другой программой, достаточно добавить к ней новый путь (разные пути разделяются точкой с запятой). Если вы не хотите определять такую переменную в системе, или не знаете как это сделать, то для IDE версии вы можете установить её редактированием файла fasmw.ini в папке с исполняемым файлом компилятора (этот файл создаётся компилятором fasmw.exe при запуске, но может также быть создан вручную). В этом случае вам необходимо добавить значение Include в секцию Environment. Например, если вы распаковали файлы FASM’а в папку c:\fasmw, вы должны добавить следующие строки в файл c:\fasmw\fasmw.ini:
Если вы не определите переменную окружения INCLUDE правильно, вам придется вручную указывать полный путь к заголовочным файлам Win32 в каждой программе, которую вы хотите скомпилировать.
Для того, чтобы начать работать с FASM’ом, просто запустите файл fasmw.exe, или перетащите иконку исходного файла на ярлык программы fasmw.exe в проводнике. Также вы можете открывать новые исходные файлы с помощью команды Open в меню File, или перетаскивая файлы в окно редактора. В редакторе могут быть открыты несколько файлов одновременно, каждый из них представляется закладкой в нижней части окна редактора. Выбрать файл для редактирования можно щёлкнув левой кнопкой мыши на соответствующей закладке. По умолчанию компилятор работает с редактируемым в данный момент файлом, но вы можете принудить его работать с конкретным файлом щёлкнув на соответствующей закладке правой кнопкой мыши и выбрав в контекстном меню пункт Assign. Одновременно к компилятору может быть привязан только один файл.
Когда ваш исходный файл готов, вы можете выполнить компиляцию выбрав команду Compile из меню Run. Если компиляция пройдет успешно, компилятор отобразит окно результатов компиляции; иначе он выведет информацию о произошедших ошибках. Окно результатов компиляции содержит информацию о количестве проходов, длительности компиляции и количестве байт записанных в результирующий файл. Оно также содержит текстовое поле называемое Display, в котором отображаются все сообщения от директив display в исходном коде (см. 2.2.3). Сводка ошибок содержит как минимум сообщение об ошибке и текстовое поле Display, того же назначения. Если ошибка связана с конкретной строкой исходного кода, сводка содержит также текстовое поле Instruction, которое содержит препроцессированную форму инструкции вызвавшей ошибку если ошибка произошла после стадии препроцессора (иначе поле пустое) и список Source, который показывает расположение всех строк исходного кода связанных с этой ошибкой, если вы выберете строку из этого списка, она одновременно выбрана в окне редактора (если соответствующий файл не открыт, он будет автоматически загружен).
Команда Run также выполняет компиляцию, и в случае успешного её завершения запускает скомпилированную программу в том случае, если она относится к одному из форматов, запускаемых в среде Windows, иначе выводится сообщение о том, что такой тип файла не может быть запущен. Если при компиляции возникают ошибки, выводится сводка по ошибкам, как для команды Compile.
Если компилятору не хватает памяти, вы можете увеличить используемый её объём, открыв окно Compiler Setup из меню Options. В нем вы можете указать объём памяти в килобайтах который компилятор должен использовать и также задать приоритет потока компилятора.
Перемещение курсора по тексту программы: | |
---|---|
Left | перейти на один символ назад |
Right | перейти на один символ вперед |
Up | перейти на одну строку выше |
Down | перейти на одну строку ниже |
Ctrl+Left | перейти на одно слово назад |
Ctrl+Right | перейти на одно слово вперед |
Home | перейти на первый символ строки |
End | перейти на последний символ строки |
PageUp | перейти на один экран вверх |
PageDown | перейти на один экран вниз |
Ctrl+Home | перейти на первую строку экрана |
Ctrl+End | перейти на последнюю строку экрана |
Ctrl+PageUp | перейти на первую строку программы |
Ctrl+PageDown | перейти на последнюю строку программы |
Each of the movement keys pressed with Shift selects text.
Редактирование: | |
---|---|
Insert | переключение режима вставка/замена |
Alt+Insert | переключение между вертикальными/горизонтальным выделением |
Delete | удалить текущий символ |
Backspace | удалить предыдущий символ |
Ctrl+Backspace | удалить предыдущее слово |
Alt+Backspace | отменить предыдущее действие (также Ctrl+Z) |
Alt+Shift+Backspace | повторить отмену предыдущего действия (также Ctrl+Shift+Z) |
Ctrl+Y | удалить текущую строку |
F6 | дублировать текущую строку |
Операции с выделенными фрагментами: | |
---|---|
Ctrl+Insert | Копировать выделенный фрагмент в Буфер Обмена (также Ctrl+C) |
Shift+Insert | Вставить содержимое Буфера Обмена в заданное место (также Ctrl+V) |
Ctrl+Delete | Удалить выделенный фрагмент |
Shift+Delete | «Вырезает» выделенный фрагмент и помещает его в Буфер Обмена (также Ctrl+X) |
Ctrl+A | Выделить весь текст программы |
Поиск: | |
---|---|
F5 | перейти на заданную строку (также Ctrl+G) |
F7 | поиск (также Ctrl+F) |
Shift+F7 | поиск следующего (также F3) |
Ctrl+F7 | замена (также Ctrl+H) |
Компиляция: | |
---|---|
F9 | компилировать и запустить |
Ctrl+F9 | только компилировать |
Shift+F9 | сделать выбранный файл основным для компиляции |
Ctrl+F8 | компиляция с добавлением отладочной информации |
Другие клавиши: | |
---|---|
F2 | сохранить текущий файл |
Shift+F2 | сохранить файл под новым именем |
F4 | загрузить файл |
Ctrl+N | создать новый файл |
Ctrl+Tab | переключиться на следующий файл |
Ctrl+Shift+Tab | переключиться на предыдущий файл |
Alt+5 | переключиться на файл с заданной вкладки |
Esc | закрыть текущий файл |
Alt+X | закрыть все файлы и выйти из программы |
Ctrl+F6 | вызвать калькулятор |
Alt+Left | arrow scroll left |
Alt+Right | arrow scroll right |
Alt+Up | arrow scroll up |
Alt+Down | arrow scroll down |
Специфические клавиши: | |
---|---|
F1 | поиск ключевого слова в выбранной справочной системе |
Alt+F1 | вызов контекстной помощи |
1.1.4 Настройка IDE
В меню Options также содержится список опций редактора, который может быть включен или выключен в зависимости от текущего состояния редактора. В этом разделе описываются эти опции.
Secure selection ― Это вариант, когда вы включаете, выделенный фрагмент никогда не будет удален, если вы начинаете набирать текст на клавиатуре. Когда вы делаете любой текстовый-операцию изменения, выбор будет отменен, ни в коем случае, влияющие Это был текст выбран, и тогда команда выполняется. Когда эта опция выключена, и вы начинаете набирать, текущее выделение отбрасывается, просто Также клавиша Del удаляет выделенный блок (когда выбор будет на безопасной Вы должны использовать Ctrl + Del).
Автоматические скобки ― когда вы набираете открытую скобку любого типа, закрыв один будет автоматически переведен только после вставки.
Автоматические отступы ― При нажатии Enter, чтобы начать новую строку, каретка перемещается в новую строку в том же положении, в предыдущей строке, где первый непустой символ помещается. Если вы нарушаете строку, и были некоторые непустые символы после вставки, когда вы нажимаете Enter, они перемещаются в новую строку в положении отступа, ни пробелов, которые между кареткой и их игнорируются.
Смарт табуляция ― при нажатии Tab, он перемещает вас в положение чуть ниже следующей последовательности символов, кроме пробелов в указанном выше начиная с позиции чуть выше, где вы были строка. Если такой последовательности не найдена в строке выше, стандартный размер табуляции 8 символов используется.
Оптимальное сохранение ― после включения опции, когда файл сохраняется, все пустые места заполнены оптимальному сочетанию вкладок и пробелов, чтобы получить меньший размер файла. Если эта опция выключена, то пустые участки сохраняются как заполненные пробелами (но пробелы в концах строк не сохраняются).
«Оживление мертвых клавиш» ― когда эта опция включена, она отключает окна редактора так называемые «мертвые ключи» (ключи, которые не сразу генерируют символ, но ждать следующего нажатия клавиши, чтобы решить, какой знак надо поставить ― как правило, вы вводите символ мертвого ключа при нажатии на клавишу пробела после него). Это может быть полезно, если ключ для ввода некоторых персонажей, которые вам нужно ввести часто в источнике сборки мертвый ключ и вам не нужно эту функцию для написания программ.
Как было сказано выше, после успешной компиляции FASM выводит на экран сводку о проделанной работе. Она включает информацию о том, сколько было сделано проходов, сколько времени это заняло, и сколько байт записано в файл-адресат.
Вот пример такой сводки:
В случае ошибки во время компиляции, программа выведет на экран сообщение об ошибке. Например, когда компилятор не может найти файл ввода, он покажет следующее сообщение:
Если ошибка связана с определенной частью кода, будет выведена строка, которая её вызвала. Также, чтобы помочь вам найти эту ошибку, будет показано место этой строки в коде, например:
Это значит, что в третьей строке файла «example.asm» компилятор встретил неопознанную инструкцию. Если строка, вызвавшая ошибку, содержит макрос, также будет выведена строка в формулировке макроса, которая сгенерировала ошибочную инструкцию:
Это значит, что макрос в шестой строке файла «example.asm» создал неопознанную инструкцию в первой строке своей формулировки.
По умолчанию, если в исходнике нет директивы «format», flat assembler направляет сгенерированный код на вывод, создавая таким образом простой двоичный файл. По умолчанию он создает 16-битный код, но вы всегда можете переключить его в 32-битный или 16-битный режим, используя директивы «use32» или «use16». Выбор некоторых форматов файла-адресата автоматически переключает компилятор в 32-битный режим. Подробнее читайте о форматах, которые можете выбрать, в 2.4.
Весь сгенерированный код в файле-адресате всегда идет в том же порядке, что и написанный в исходнике.
Таблица 1.1 Размеры операторов
|