Hvad er en makroinstruktion?
En makroinstruktion i computerprogrammering er en enkelt instruktion, der, når et program kompileres, erstattes af en foruddefineret kodeblok. Udtrykket blev oprindeligt anvendt på instruktioner, der blev brugt i samlingssprogsprogrammering, hvor der ofte var behov for lang, gentagen kode til meget enkle operationer. Udviklingen af makroinstruktioner var et af de første skridt hen imod oprettelse af et sprog baseret på et bibliotek med repræsentative funktioner, så små handlinger kunne samles sammen under et enkelt kommandopkald i et separat program. Tidlige makroinstruktionsbiblioteker blev hyppigt leveret af producenterne af hardware og software for at hjælpe programmerere med at bruge og få adgang til funktioner på den rigtige måde.
Programmerere brugte makroinstruktioner af forskellige årsager, men de mest almindelige var at reducere mængden af gentagne koder i programmet, eliminere muligheden for fejl inden for makrokoden og levere almindeligt anvendte instruktionssæt, så flere programmerere ville være i stand til at bruge samme makroinstruktion. Under samlingssprog skal hvert enkelt trin, der kræves for at opnå et bestemt resultat, eksplicit skrives. Et eksempel kan være et program, der tilføjede tre numre sammen.
Tilføjelsesoperatøren på sprog på højere niveau tages ofte for givet, men betjeningen af at tilføje tre numre på samlingssprog kræver mindst seks separate kodelinjer. De første to linjer indlæser numrene i felter kaldet registre, der faktisk svarer til fysiske kredsløb inde i computeren. Den tredje linje tilføjer de to registre, og en fjerde linje gemmer resultatet i et andet register. Den femte linje indlæser det sidste nummer, der skal føjes til et register, og den endelige erklæring tilføjer det forrige resultat til det tredje nummer.
Denne sekvens af operationer kan let omdannes til en makroinstruktion, så det er kun nødvendigt med en kodelinie sammen med de tre numre, der skal tilføjes som parametre. Når programmet til sidst udarbejdes af en samler og omdannes til maskinkode, udføres handlinger, der kaldes forbehandling, inden montagen tager plads. Forprocessoren tager makroinstruktionen og parametrene og udvider den til de krævede kodelinjer og erstatter parametrene for repræsentative pladsholdere i den faktiske makrokode.
Efter brug af makroinstruktion blev udbredt, ville mange almindeligt anvendte kodeblokke samles i makroinstruktionsbiblioteker. Disse biblioteker indeholdt adskillige makroer til at hjælpe med at forenkle programmering på samlingssprog samt for at sikre, at visse operationer blev udført på en ensartet måde på tværs af forskellige programmer. Den omfattende brug af makroinstruktionsbiblioteker førte til sidst til sprog på højere niveau, der var afhængige af deres egne biblioteker for at give omfattende funktionalitet med langt mindre gentagne programmeringskrav.