NASM

Материал из Википедии — свободной энциклопедии

Перейти к: навигация, поиск

NASM (Netwide Assembler) — свободный (LGPL) ассемблер для архитектуры Intel x86. Используется для написания 16-, 32- и 64-битных программ.

[править] Пример программы (под Linux)

Пример программы Hello world, которая выводит соответствующее сообщение и завершается.

 SECTION .data
  msg db "Hello, world!",0xa  
  len equ $ - msg
 SECTION .text
  global main
 main:
  mov eax, 4
  mov ebx, 1
  mov ecx, msg
  mov edx, len
  int 0x80
  mov eax, 1
  mov ebx, 0      
  int 0x80

[править] История

NASM был создан Саймоном Тэтхемом совместно с Юлианом Холлом и в настоящее время развивается маленькой командой разработчиков в SourceForge.net. Первоначально он был выпущен согласно его собственной лицензии, но позже эта лицензия была изменена на GNU LGPL после множества проблем, вызванных выбором лицензии.

NASM производит различные двоичные форматы на любой машине, начиная форматом COFF (и подобного ему PE-формата, используемого в Microsoft Windows) до a.out, ELF и родного двоичного формата MINIX. NASM даже определяет свой собственный двоичный формат, RDOFF, который в настоящее время используется только в операционной системе RadiOS. Кроме того, NASM может создавать простые бинарные файлы, пригодные к употреблению в системных загрузчиках, образах ПЗУ и различных элементах операционной системы. NASM работает и на платформах, отличных от x86, таких как SPARC и PowerPC, но генерирует код под x86.

Философия NASM позволяет программистам, знакомым с ассемблером x86, использовать соответствующий подход, который является самым легким для понимания программистов. Поэтому, он использует традиционный Intel-синтаксис для x86-ассемблера (тогда как другие бесплатные ассемблеры, например GNU Assembler (GAS), используют AT&T синтаксис).

[править] Ссылки

Источник — «http://ru.wikipedia.org/wiki/NASM»
На других языках