GoAsm — ассемблер для процессоров семейства x86, созданный Джереми Гордоном (англ. Jeremy Gordon) для написания программ для операционных систем семейства Windows, способен создавать 32- и 64-битных версии, а также программы с поддержкой Уникода. 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 использует препроцессор сходный по синтаксису с препроцессором языка программирования Си.
В GoAsm необходимо использовать квадратные скобки для чтения и записи памяти.
Для того чтобы получить смещение необходимо записать:
MOV EBX,ADDR wParam
MOV EBX,OFFSET wParam
А для того чтобы получить доступ к памяти:
MOV EBX,[wParam]
GoAsm поддерживает все стандартные инструкции (за исключением использующихся только в 16-разрядных программах). Инструкции x87 для работы с числами с плавающей точкой. Инструкции и синтаксис для работы с MMX, SSE, SSE2, 3DNow!, FPU, MMX, XMM.
Для улучшения этой статьи по информационным технологиям желательно: |
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .