GoAsm
GoAsm — ассемблер для процессоров семейства x86, созданный Джереми Гордоном (англ. Jeremy Gordon) для написания программ для операционных систем семейства Windows, способен создавать 32- и 64-битных версий, а также программы с поддержкой Unicode. GoAsm является проприетарным ПО и распространяется в бинарном формате.
Цель разработки
GoAsm создавался с целью создать компилятор с простым и ясным синтаксисом, производящий как можно более компактный код, скромными потребностями для обработки скриптов и возможностью добавления расширений.
Пример программы
Пример программы Hello Word, которая выводит на экран сообщение «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
Ссылки
Программные пакеты для программирования на ассемблере |
|
---|---|
Среды разработки ПО | RadASM • WinAsm • ASMedit • Easy Code • Fresh • GSS Visual Assembler |
Трансляторы | MASM • gas • fasm • NASM • RosASM • TASM • Yasm • HLASM • прочие… |
Ошибка: неверное или отсутствующее изображение |
Для улучшения этой статьи желательно?:
|
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....