- GoAsm
-
GoAsm — ассемблер для процессоров семейства x86, созданный Джереми Гордоном (англ. Jeremy Gordon) для написания программ для операционных систем семейства Windows, способен создавать 32- и 64-битных версий, а также программы с поддержкой Unicode. GoAsm является проприетарным ПО и распространяется в бинарном формате.
Содержание
Цель разработки
GoAsm создавался с целью создать компилятор с простым и ясным синтаксисом, производящий как можно более компактный код, скромными потребностями для обработки скриптов и возможностью добавления расширений.
Пример программы
Пример программы Hello World, которая выводит на экран сообщение «Hello World (from GoAsm)» и завершается.
DATA SECTION KEEP DD 0 ;переменная CODE SECTION START: PUSH -11 CALL GetStdHandle PUSH 0,ADDR KEEP PUSH 24,'Hello World (from GoAsm)' PUSH EAX CALL WriteFile XOR EAX,EAX RET
Особенности
- GoAsm не создаёт 16-разрядный код и способен работать только в «плоском» режиме (без сегментов), благодаря этому синтаксис очень прост.
- В качестве формата выходных данных используется COFF Portable Executable format, и для создания исполняемых файлов необходимо использовать дополнительный компоновщик (например — GoLink или ALINK) и компилятор ресурсов (GoRC).
- GoAsm способен файлы в формате Unicode (UTF-16 или UTF-8).
Синтаксис
Несмотря на то что используется Intel-синтаксис, синтаксис GoAsm несовместим ни с одним из существующих компиляторов.
GoAsm использует препроцессор сходный по синтаксису с препроцессором языка программирования C.
В GoAsm необходимо использовать квадратные скобки для чтения и записи памяти.
Для того чтобы получить смещение необходимо записать:
MOV EBX,ADDR wParam MOV EBX,OFFSET wParam
А для того чтобы получить доступ к памяти:
MOV EBX,[wParam]
Поддерживаемые наборы инструкций
GoAsm поддерживает все стандартные инструкции (за исключением использующихся только в 16-разрядных программах). Инструкции x87 для работы с числами с плавающей точкой. Инструкции и синтаксис для работы с MMX, SSE, SSE2, 3DNow!, 3DNow!, FPU, MMX, XMM, SSE, SSE2 and 3DNow!.
Другие инструменты разработанные Джереми Гордон
- GoAsm — ассемблер
- GoLink — компоновщик
- GoRC — компилятор ресурсов
- GoBug — отладчик (версия для Windows XP является платной)
- Paws — IDE
Ссылки
Язык ассемблера IDE Трансляторы Форматы синтаксиса Для улучшения этой статьи по информационным технологиям желательно?: - Найти и оформить в виде сносок ссылки на авторитетные источники, подтверждающие написанное.
- Переработать оформление в соответствии с правилами написания статей.
- Проставив сноски, внести более точные указания на источники.
- Викифицировать статью.
- Проставить интервики в рамках проекта Интервики.
Категории:- Ассемблер
- Инструменты для разработки программного обеспечения
Wikimedia Foundation. 2010.