Netwide Monteur

Der Netwide Monteur (NASM) ist ein Monteur und Zurückübersetzer für die Architektur von Intel x86. Es kann verwendet werden, um 16 Bit, 32 Bit (IA-32) und 64 Bit (x86-64) Programme zu schreiben. Wie man betrachtet, ist NASM einer der populärsten Monteure für Linux.

NASM wurde von Simon Tatham mit der Hilfe von Julian Hall ursprünglich geschrieben, und wird zurzeit von einer kleinen von H. Peter Anvin geführten Mannschaft aufrechterhalten. Es ist als kostenlose Software in Form von der vereinfachten (2-Klauseln-)-BSD-Lizenz verfügbar.

Eigenschaften

NASM kann Produktion mehrere binäre Formate einschließlich COFF, Tragbar Rechtskräftig, a.out, ELF und Betont männlich, obwohl mit der Position unabhängiger Code nur für ELF-Gegenstand-Dateien unterstützt wird. NASM hat auch sein eigenes binäres Format genannt RDOFF.

Die Vielfalt von Produktionsformaten erlaubt Programmen, retargetted zu eigentlich jedem x86 Betriebssystem zu sein. Außerdem kann NASM flache binäre Dateien schaffen, die im Schreiben von Stiefelladern, ROM-Images, und in verschiedenen Seiten der OS Entwicklung verwendbar sind. NASM kann auf non-x86 Plattformen, wie SPARC und PowerPC laufen, obwohl es durch jene Maschinen verwendbare Programme nicht erzeugen kann.

NASM verwendet Schwankung der Zusammenbau-Syntax von Intel statt AT&T Syntax. Es vermeidet auch, dass Eigenschaften wie automatische Generation des Segmentes überreiten (und die zusammenhängenden Direktive ANNEHMEN) verwendet durch MASM und vereinbare Monteure.

Beispiele von Programmen für verschiedene Betriebssysteme

Das ist ein Hallo Weltprogramm für DOS Betriebssystem.

Abteilung.text

org 0x100

mov ah, 0x9

mov dx, hallo

interne Nummer 0x21

mov Axt, 0x4c00

interne Nummer 0x21

Abteilung.data

hallo: DB 'Hallo, Welt!', 13, 10, '$'

</Quelle>

Ein Beispiel eines ähnlichen Programms für Windows von Microsoft:

globaler _start

Ex-Seeschwalbe _MessageBoxA@16

Ex-Seeschwalbe _ExitProcess@4

Abteilungscode use32 class=code

_start:

stoßen Sie dword 0; UINT uType = MB_OK

stoßen Sie Dword-Titel; LPCSTR lpCaption

stoßen Sie Dword-Schlagzeile; LPCSTR lpText

stoßen Sie dword 0; HWND hWnd = UNGÜLTIGER

rufen Sie _MessageBoxA@16

stoßen Sie dword 0; UINT uExitCode

rufen Sie _ExitProcess@4

Abteilungsdaten use32 class=data

Schlagzeile: DB 'Hallo, Welt!', 0

Titel: DB 'Hallo', 0

</Quelle>

Ein gleichwertiges Programm für Linux:

Abteilung.data

msg: DB "Hallo, Welt!", 10

.len: equ $ - msg

Abteilung.text

globaler wichtiger

wichtig:

mov eax, 4; schreiben Sie

mov ebx, 1; stdout

mov ecx, msg

mov edx, msg.len

interne Nummer 0x80

mov eax, 1; Ausgang

mov ebx, 0

interne Nummer 0x80</Quelle>

Verbindung

NASM hauptsächlich wenden Produktionen Dateien ein, die allgemein in und von sich nicht rechtskräftig sind. Die einzige Ausnahme dazu ist flache Dualzahlen (z.B.COM), die im modernen Gebrauch von Natur aus beschränkt werden. Um die Gegenstand-Dateien in rechtskräftige Programme zu übersetzen, muss ein passender linker, wie das Sehstudio-"VERBINDUNGS"-Dienstprogramm für Windows oder ld für UNIX ähnliche Systeme verwendet werden.

Entwicklung

Am 28. November 2007 wurde Version 2.00 veröffentlicht, Unterstützung für x86-64 Erweiterungen hinzufügend. Die Entwicklungsversionen werden zu SourceForge.net nicht geladen; statt dessen werden sie zum eigenen Schwachkopf-Behältnis des Projektes mit binären von der Projektwebseite verfügbaren Schnellschüssen eingecheckt.

Ein Suchmotor für die NASM Doktoren ist auch verfügbar.

Bezüglich der Version 2.07 ist NASM jetzt laut der Vereinfachten (2-Klauseln-)-BSD-Lizenz.

Siehe auch

Weiterführende Literatur

Links


Die Tower Bridge / Grundlegende Schrift
Impressum & Datenschutz