19-10-2023
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
Несмотря на то что используется 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!.
Язык ассемблера | |
---|---|
IDE | |
Трансляторы | |
Форматы синтаксиса |
GoAsm.