WikiDer > Assembler (Software)
EIN Monteur ist ein Computer Programm ein anderes Computerprogramm verwenden, das in . geschrieben ist Assemblersprache zu Maschinensprache stellen. Der Code in Maschinensprache kann direkt von a gelesen werden Prozessor werden durchgeführt. Die Assemblersprache selbst wird auch Assemblersprache genannt, aber das ist eigentlich falsch. Zusammenbauen bedeutet fast wörtlich Zusammenbauen. Die Aufgabe des Assemblers besteht also darin, zu komponieren Anleitung, die vom Prozessor ausgeführt werden kann: die Opcodes mit ihren möglichen Operanden die Assemblersprache verwenden.
Eine Assemblersprache ist a Programmiersprache die sich wenig von der Maschinensprache unterscheidet, die aber durch die Verwendung von Mnemonik anstelle von Zahlenwerten ist leichter zu verstehen. Der Assembler wird heutzutage meist in einer höheren Programmiersprache geschrieben, zum Beispiel in C . Assembler wurden in der Vergangenheit im Allgemeinen in der Assemblersprache der Zielmaschine geschrieben. Wurde ein Programm auf einer anderen Maschine mit einem anderen Prozessortyp oder in einer höheren Sprache zusammengestellt, spricht man von einem Cross-Assembler.
Ausführbarer Code
Die meisten Assembler geben a . aus Objektdatei. Übliche Erweiterungen sind .obj und .o . Eine Objektdatei muss in a ausführbare Datei B. eine .exe oder eine ausführbare ELF-Datei unter Unix-Varianten, bevor sie ausgeführt werden kann. Dies geschieht durch Verknüpfung. Durch das Verknüpfen können auch zwei oder mehr Objektdateien zusammengeführt werden. weil Compiler von höheren Programmiersprachen stellen in der Regel auch Objektdateien bereit, man kann somit ein gemischtes Projekt erstellen. Das Betriebssystem, wie z Mac OS, Linux, DOS oder Fenster, schreibt das Objektformat vor und stellt dann auch den Linker bereit.
Programme für eingebettete Prozessoren werden oft direkt in ausführbarer Form generiert. Dies kann ein sogenanntes Bild sein, wobei Byte for byte enthält den gleichen Code, der im Prozessor geschrieben wird. Es kann auch eine lesbare Textdatei sein, die den Inhalt als hexadezimal enthält Codes und weitere Informationen, wie die Adresse, an der der Code platziert wird. Die beiden bekanntesten Dateiformate sind das Motorola-S-Format und das Intel-Hex-Format. Diese Formate werden ebenfalls aus einer Objektdatei generiert.
Auf- und Abbau
Die Begriffe Assembler und Disassembler gehören zusammen. Assembler und Disassembler werden oft kombiniert, zum Beispiel enthaltene DEBUG.EXE, mitgeliefert supplied MS-DOS und bis Windows 7 immer noch in jeder Windows-Version vorhanden, beide. Sie sind Teil jedes Pakets, das eingebettete Systeme werden entwickelt, aber viele integrierte Entwicklungssysteme für höhere Programmiersprachen enthalten auch einen Disassembler.
Monteure
Einige Assembler für die Intel x86-Familie sind:
- Das MicrosoftMakro-Assembler (MASM) versucht Assembler eher wie eine höhere Programmiersprache zu machen und hat daher eine manchmal seltsame Syntax. Dieser Assembler war einer der ersten Assembler für x86.
- Das Turbo-Assembler (TASM) von Embarcadero (ehemals aus Borland) hat zusätzlich zur MASM-Syntax eine eigene Syntax. Auch dieser Monteur war schon früh dabei und ist daher oft die Wahl der alten Garde.
- Das Netzweiter Assembler (NASM), ein Assembler mit einfacher Syntax. Dieses Quelloffene Software eignet sich für Menschen, die alles unter Kontrolle haben wollen. Dieser Assembler eignet sich zum Schreiben der Bootloader eines Betriebssystems wegen der perfekten Kontrolle über das Ergebnis.
- YASM, eine komplett neu geschriebene Version von NASM, wird unter dem veröffentlicht BSD-Lizenz veröffentlicht. Hauptmerkmale sind die Unterstützung der x86-64-Befehlssatz und die entsprechende Ausgabe der Dateiformate PE COFF64 und ELF64, zusätzlich zu (PE) COFF(32), ELF32 und BIN.
- Das Flacher Assembler (FASM) ist ebenfalls ein Open-Source-Assembler und unterstützt auch den x86-64-Befehlssatz.[1]
Jede Familie von Mikroprozessoren hat ihre Assembler. Dies gilt beispielsweise für Microchip (PIC), Freescale ehemals Motorola, Renesas ehemals Mitsubishu, Atmel, ARM u.a.
Die Berühmten GNU-Compiler-Sammlung GCC übersetzt den höheren Code, z.B. C, immer zuerst in Assembler, nicht direkt in Objektcode. Das bedeutet, dass für jeden Prozessor, für den GCC implementiert ist, ein Assembler zur Verfügung stehen muss.
Quellen, Anmerkungen und/oder Verweise
|