Remove ads
Van Wikipedia, de vrije encyclopedie
Een assembler is een computerprogramma om een ander computerprogramma dat geschreven is in assembleertaal naar machinetaal om te zetten. De code in machinetaal kan direct door een processor worden uitgevoerd. De assembleertaal wordt zelf ook wel assembler genoemd, maar dat is eigenlijk verkeerd. Assembleren betekent vrijwel letterlijk samenstellen. De taak van de assembler is dan ook het samenstellen van instructies, die door de processor kunnen worden uitgevoerd: de opcodes met hun eventuele operanden aan de hand van de assembleertaal.
Een assembleertaal is een programmeertaal die maar weinig van de machinetaal verschilt, maar die door het gebruik van mnemonics in plaats van getalswaarden gemakkelijker is te begrijpen. De assembler is tegenwoordig meestal in een hogere programmeertaal geschreven, bijvoorbeeld in C++. Assemblers waren in het verleden over het algemeen in de assembleertaal van de doelmachine geschreven. Indien een programma op een andere machine werd geassembleerd met een ander type processor of in een hogere taal werd gesproken over een cross-assembler.
De meeste assemblers geven als uitvoer een objectbestand. Gebruikelijke extensies daarbij zijn .obj en .o. Een objectbestand moet in een uitvoerbaar bestand worden omgezet, bijvoorbeeld een .exe of een ELF-executable onder Unix-varianten, voordat het kan worden uitgevoerd. Dit doet men door te linken. Met het linken kunnen ook twee of meer object-bestanden worden samengevoegd. Doordat compilers van hogere programmeertalen in het algemeen ook objectbestanden leveren, kan men zo een gemengd project maken. Het besturingssysteem, zoals Mac OS, Linux, DOS of Windows, schrijft voor hoe het objectformaat is en biedt dan ook de linker aan.
Programma's voor embedded processoren worden vaak direct in uitvoerbare vorm gegenereerd. Dit kan een zogenaamd image zijn, waar byte voor byte dezelfde code in zit als in de processor komt te staan. Het kan ook een leesbaar tekstbestand zijn, die de inhoud als hexadecimale codes bevat en verdere informatie, zoals het adres waar de code komt te staan. De twee bekendste bestandsformaten zijn het Motorola S-formaat en het Intel hex-formaat. Deze formaten worden ook wel vanuit een objectbestand gegenereerd.
De begrippen assembler en disassembler horen bij elkaar. Assemblers en disassemblers worden vaak gecombineerd, zo bevatte bijvoorbeeld DEBUG.EXE, geleverd met MS-DOS en tot aan Windows 7 nog in elke Windowsversie aanwezig, beide. Ze zijn een onderdeel van elk pakket waarmee embedded systemen worden ontwikkeld, maar ook veel geïntegreerde ontwikkelsystemen voor hogere programmeertalen bevatten een disassembler.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.