Hva er en makroinstruksjon?
En makroinstruksjon i dataprogrammering er en enkelt instruksjon som erstattes av en forhåndsdefinert kodeblokk når et program blir satt sammen. Begrepet ble opprinnelig brukt på instruksjoner brukt i programmeringsspråk for samlingsspråk, som noen ganger krevde lang, repeterende kode for veldig enkle operasjoner. Utviklingen av makroinstruksjoner var et av de første trinnene for å lage et språk basert på et bibliotek med representative funksjoner, slik at små handlinger kan kombineres i et eget program under en enkelt kommandosamtale. Tidlige makroinstruksjonsbiblioteker ble ofte levert av maskinvare- og programvareprodusenter for å gjøre det enklere for programmerere å bruke og få tilgang til funksjoner riktig.
Programmerere brukte makroinstruksjoner av flere grunner. Oftest er imidlertid mengden repeterende kode i programmet redusert, muligheten for feil i makrokoden er eliminert, og ofte benyttede instruksjonssett er gitt slik at flere programmerere kan bruke den samme makroinstruksjonen. På samlingsspråket må hvert eneste trinn som er nødvendig for å oppnå et visst resultat, eksplisitt skrives. Et eksempel kan være et program som legger til tre tall.
Tilleggsoperatøren på foreldrespråk blir ofte tatt for gitt, men å legge til tre nummer på samlingsspråket krever minst seks separate kodelinjer. De to første linjene laster tallene inn i felt som kalles registre, som tilsvarer den fysiske kretsen på datamaskinen. Den tredje linjen legger til de to registerene, og en fjerde linje lagrer resultatet i et annet register. I den femte linjen lastes det siste tallet som skal legges inn i et register, og i den endelige instruksjonen legges det forrige resultatet til det tredje tallet.
Denne operasjonssekvensen kan enkelt konverteres til en makroinstruksjon, slik at bare en kodelinje er nødvendig sammen med de tre tallene som skal legges til som parametere. Når programmet endelig blir satt sammen av en samler og konvertert til maskinkode, utføres handlinger som kalles forbehandling før monteringen plasseres. Forbehandleren tar makroinstruksjonene og -parametrene og utvider dem til de nødvendige kodelinjene, og parametrene erstattes av representative plassholdere innenfor den faktiske makrokoden.
Etter bruken av makroinstrukser spredt, ble mange ofte brukte blokker med kode gruppert i makroinstruksjonsbiblioteker. Disse bibliotekene inneholdt flere makroer for å forenkle programmering på samlingsspråk og for å sikre at visse operasjoner i forskjellige programmer ble utført konsekvent. Den omfattende bruken av makroinstruksjonsbiblioteker førte til slutt til høyere språk som stolte på sine egne biblioteker for å gi omfattende funksjoner med mindre repeterende programmeringskrav.