GoAsm
Материал из Seo Wiki - Поисковая Оптимизация и Программирование
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 • прочие… |
<imagemap>
Image:Wiki_letter_w.svg
| Для улучшения этой статьи желательно?:
|