WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

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

Особенности

  • GoAsm не создаёт 16-разрядный код и способен работать только в «плоском» режиме (без сегментов), благодаря этому синтаксис очень прост.
  • В качестве формата выходных данных используется COFF Portable Executable format, и для создания исполняемых файлов необходимо использовать дополнительный компоновщик (например — GoLink или ALINK) и компилятор ресурсов (GoRC).
  • GoAsm способен обрабатывать файлы в формате Уникод (UTF-16 или UTF-8).

Синтаксис

Несмотря на то что используется 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.

Другие инструменты, разработанные Джереми Гордоном

  • GoLink — компоновщик
  • GoRC — компилятор ресурсов
  • GoBug — отладчик (версия для Windows XP является платной)
  • Paws — IDE

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии