GoAsm

GoAsm

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

Особенности

  • 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

Ссылки



Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Полезное


Смотреть что такое "GoAsm" в других словарях:

  • Xblite — Infobox programming language name = XBLite Summary paradigm = Procedural year = 2001 designer = David Szafranski developer = David Szafranski latest release version = 2.4.0 latest release date = release date|2008|04|15 typing = Static… …   Wikipedia

  • Flat assembler — Saltar a navegación, búsqueda FASMD Versión DOS con IDE del FASM flat assembler (FASM) es un ensamblador libre, multi paso, con el estilo de la sintaxis de Intel que soporta las arquitecturas IA 32 y x86 64. El proyecto fue iniciado en 1999 por… …   Wikipedia Español

  • Microsoft Macro Assembler — El Microsoft Macro Assembler (MASM) es un ensamblador para la familia x86 de microprocesadores. Fue producido originalmente por Microsoft para el trabajo de desarrollo en su sistema operativo MS DOS, y fue durante cierto tiempo el ensamblador más …   Wikipedia Español

  • Comparison of assemblers — This is a list of assemblers: computer programs that translate ( assemble ) assembly language source code into binary programs. Contents 1 x86 assemblers 2 Multiple target assemblers 3 Other assemblers …   Wikipedia

  • MASM — Microsoft Macro Assembler Le logiciel Microsoft Macro Assembler (Macro Assembleur de Microsoft, plus connu sous l acronyme MASM) est un assembleur pour la famille de processeurs x86. Il fut à l origine développé par Microsoft pour le… …   Wikipédia en Français

  • Microsoft Macro Assembler — Le logiciel Microsoft Macro Assembler (Macro Assembleur de Microsoft, plus connu sous l acronyme MASM) est un assembleur pour la famille de processeurs x86. Il fut à l origine développé par Microsoft pour le développement de leur système d… …   Wikipédia en Français

  • A86 y A386 assemblers — A86 es un compacto ensamblador comercial desarrollado para la familia de procesadores Intel X86 por Eric Isaacson. El ensamblador puede producir directamente un fichero. COM o. OBJ compatibles con Windows/DOS desde un simple fichero de texto de… …   Wikipedia Español

  • Ensamblador — Para otros usos de este término, véase Ensamblador (desambiguación). También ver: lenguaje ensamblador El término ensamblador (del inglés assembler) se refiere a un tipo de programa informático que se encarga de traducir un fichero fuente escrito …   Wikipedia Español

  • Lenguaje ensamblador — Para otros usos de este término, véase Ensamblador (desambiguación). Lenguaje de máquina del Intel 8088. El código de máquina en hexadecimal se resalta en rojo, el equivalente en lenguaje assembler en magenta, y las direcciones de memoria donde… …   Wikipedia Español

  • Ensamblador de alto nivel — Este artículo es acerca del concepto general. Para una implementación particular, ver High Level Assembly. Para otros usos de este término, véase HLA (desambiguación). Para otros usos de este término, véase Ensamblador (desambiguación). Los… …   Wikipedia Español


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»