Assembler
assemblyspråk / From Wikipedia, the free encyclopedia
Assembler eller assemblyspråk är ett sätt att uttrycka maskinkoden för en dators processor på ett sätt som lämpar sig för människor att läsa och skriva. Programmet som översätter assembler till numerisk maskinkod kallas en assemblator.
Den här artikeln behöver källhänvisningar för att kunna verifieras. (2018-12) Åtgärda genom att lägga till pålitliga källor (gärna som fotnoter). Uppgifter utan källhänvisning kan ifrågasättas och tas bort utan att det behöver diskuteras på diskussionssidan. |
I maskinkod representeras såväl instruktioner som adresser och övriga konstanta data som mönster av siffror (bitar eller i annan talbas), utan vare sig semantiskt eller strukturellt stöd för minnet. Det är bland annat därför besvärligt att skriva, redigera och felsöka. Assembler möjliggör därför användandet av namngivna data samt att den aktuella maskinens instruktioner skrivs med bokstäver, så kallade mnemotekniska symboler. Detta underlättar högst väsentligt för programmeraren, inte minst för att adresser ofta är relativa (varandra) och därför måste beräknas på nytt vid varje programändring; med en assemblator beräknas symboliska namn snabbt och automatisk, inklusive alla relativa adresser och index för ingående rutiner och datastrukturer.
Assemblatorer har ofta vanliga infixa operatorer för evaluering av (relativa) konstanta uttryck i olika talbaser, inklusive operationer på bitnivå, utförda av assemblatorn (ej processorn man skriver för). Många möjliggör också användandet av makron, något som syntaktisk liknar en funktion i ett ordinärt högnivåspråk men innebär att ett stycke parametriserad assemblerkod (modifierad av aktuell parameter) infogas på varje plats den refereras.
Assembler är alltså ett samlingsnamn för en mängd maskinspecifika språk. Olika processorfamiljer erbjuder olika instruktioner, och olika assemblatorer erbjuder olika syntax för till exempel adressering och makron. Detta gör att det i allmänhet inte går att använda ett assemblerprogram skrivet för en processor på en annan typ av processor. För att göra det möjligt att flytta program mellan olika processortyper används högnivåspråk.