Movatterモバイル変換


[0]ホーム

URL:


Перейти до вмісту
Вікіпедія
Пошук

NASM

Матеріал з Вікіпедії — вільної енциклопедії.
NASM
Типмова програмування
Мова асемблера x86
асемблер і компілятор Редагувати інформацію у Вікіданих
АвторСаймон Тетхем Редагувати інформацію у Вікіданих
РозробникHans Peter Anvind Редагувати інформацію у Вікіданих
ПлатформаX86 Редагувати інформацію у Вікіданих
Операційна системакросплатформність, Linux, Mac OS Classicd, Windows, DOS, KolibriOS і Berkeley Software Distribution Редагувати інформацію у Вікіданих
Мова програмуванняC[1] Редагувати інформацію у Вікіданих
Ліцензія2-clause BSD Licensed[2] Редагувати інформацію у Вікіданих
Репозиторійgithub.com/netwide-assembler/nasm
Вебсайтnasm.us Редагувати інформацію у Вікіданих

Netwide Assembler (NASM) —асемблер ідизасемблер для архітектуриx86. Може використовуватися для написання 16-,32- і 64-бітних програм. NASM вважається одним із найпопулярніших асемблерів дляLinux.

NASM може працювати на платформах, відмінних від x86, таких якSPARC іPowerPC, проте код він генерує лише для x86 і x86-64[3].

NASM може компілювати у декілька бінарних форматів, зокремаCOFF,Portable Executable,a.out,ELF іMach-O. NASM також має свій власний бінарний формат під назвоюRDOFF.

Така велика кількість підтримуваних бінарних форматів дозволяє кросс-компіляцію для абсолютної більшості систем на платформі x86. Крім того, NASM може створювати плоскі бінарні файли, що дозволяє написання завантажувальника ОС, образи ROM і фактично будь-яку частину операційної системи.

NASM успішно конкурує зі стандартним в Linux і багатьох інших UNIX-системах асемблеромgas[4]. Вважається, що якість документації у NASM вище, ніж у gas. Крім того, асемблер gas використовуєсинтаксис AT&T, в той час як NASM використовує варіант традиційного для x86-асемблерасинтаксису Intel; Intel-синтаксис використовується всіма асемблерами для Windows, наприкладMASM,TASM,FASM.

Історія

[ред. |ред. код]

NASM був створений Саймоном Тетгемом спільно з Джуліаном Голом і в наш час[коли?] розвивається невеликою командою розробників наSourceForge.net. Спочатку він був випущений за умовами власної ліцензії, але пізніше вона була замінена наGNU LGPL. Починаючи з версії 2.07 ліцензія замінена на «спрощену BSD» (BSD з 2 пунктів).

Приклади для різних операційних систем

[ред. |ред. код]

ПрограмаHello World для операційної системиDOS.

section.textorg0x100movah,0x9movdx,helloint0x21movax,0x4c00int0x21section.datahello:db'Hello,world!',13,10,'$'

Подібна програма дляMicrosoft Windows.

global_startextern_MessageBoxA@16extern_ExitProcess@4sectioncodeuse32class=code_start:pushdword0; UINT uType = MB_OKpushdwordtitle; LPCSTR lpCaptionpushdwordbanner; LPCSTR lpTextpushdword0; HWND hWnd = NULLcall_MessageBoxA@16pushdword0; UINT uExitCodecall_ExitProcess@4sectiondatause32class=databanner:db'Hello,world!',0title:db'Hello',0

Аналог дляLinux.

section.datamsg:db"Hello,world!",10.len:equ$-msgsection.textglobal_start_start:moveax,4; writemovebx,1; stdoutmovecx,msgmovedx,msg.lenint0x80moveax,1; exitmovebx,0int0x80

Примітки

[ред. |ред. код]
  1. The nasm Open Source Project on Open Hub: Languages Page — 2006.
  2. http://www.nasm.us/
  3. 1.1 What Is NASM?.The Netwide Assembler: NASM. Офіційний сайт.Архів оригіналу за 18 лютого 2012. Процитовано 14 липня 2010.NASM, is an 80x86 and x86-64 assembler
  4. Ассемблеры для Linux: Сравнение GAS и NASM[Архівовано 16 серпня 2011 уWayback Machine.](рос.)
Середовища розробки
Транслятори
MASMGASFASMNASMRosASMTASMYasmHLASM
Формати синтаксису
Рівень
Низькорівневі
Високорівневі
Загального
призначення
Серверні
Запитів до баз
даних[суперечливо 1]
Розмітки тавекторної
графіки
[суперечливо 1]
Синхронні
Символьних та
чисельних обчислень
Квантових обчислень
Логічні
Академічні
Езотеричні
  1. абНемає загальноприйнятого рішення, чи вважати усі ці мови саме мовами програмування
Отримано зhttps://uk.wikipedia.org/w/index.php?title=NASM&oldid=35673354
Категорії:
Приховані категорії:

[8]ページ先頭

©2009-2026 Movatter.jp