NASM

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

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

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 после множества проблем, вызванных выбором лицензии. Начиная с версии 2.07, лицензия изменена на "упрощенную BSD" (BSD из 2 пунктов).

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-синтаксис).

Ссылки

cs:Netwide Assembler

de:NASM en:Netwide Assembler es:Netwide Assembler fr:Netwide assembler it:NASM (informatica) ja:Netwide Assembler ka:NASM pl:NASM

Источник — «http://www.sbup.com/wiki/NASM»
Личные инструменты

Served in 0.148 secs.