O macroinstrucțiune în programarea computerelor este o singură instrucțiune care, atunci când un program este compilat, este înlocuită cu un bloc de cod predefinit. Termenul a fost aplicat inițial instrucțiunilor folosite în programarea în limbaj de asamblare, în care uneori era nevoie de cod lung și repetitiv pentru operații foarte simple. Dezvoltarea instrucțiunilor macro a fost unul dintre primii pași către crearea unui limbaj bazat pe o bibliotecă de funcții reprezentative, astfel încât acțiunile minuscule să poată fi colectate împreună sub un singur apel de comandă într-un program separat. Bibliotecile de instrucțiuni macro timpurii au fost cel mai frecvent furnizate de producătorii de hardware și software pentru a ajuta programatorii să folosească și să acceseze funcțiile în mod corect.
Programatorii au folosit instrucțiuni macro dintr-o varietate de motive, dar cele mai frecvente au fost să reducă cantitatea de cod repetitiv din program, să elimine posibilitatea de eroare în cadrul codului macro și să furnizeze seturi de instrucțiuni utilizate în mod obișnuit, astfel încât mai mulți programatori să poată utiliza aceeași instrucțiune macro. În limbajul de asamblare, fiecare pas necesar pentru a obține un anumit rezultat trebuie să fie scris în mod explicit. Un exemplu ar putea fi un program care a adăugat trei numere împreună.
Operatorul de adăugare în limbaje de nivel superior este adesea considerat de la sine înțeles, dar operațiunea de adăugare a trei numere în limbajul de asamblare necesită cel puțin șase linii separate de cod. Primele două linii încarcă numerele în câmpuri numite registre care corespund de fapt circuitelor fizice din interiorul computerului. A treia linie adaugă cele două registre și a patra linie stochează rezultatul într-un alt registru. A cincea linie încarcă ultimul număr care trebuie adăugat într-un registru, iar declarația finală adaugă rezultatul anterior celui de-al treilea număr.
Această secvență de operații poate fi ușor transformată într-o instrucțiune macro, astfel încât este nevoie de o singură linie de cod, împreună cu cele trei numere care trebuie adăugate ca parametri. Când programul este în cele din urmă compilat de un asamblator și transformat în cod de mașină, acțiunile numite pre-procesare sunt întreprinse înainte ca asamblarea să aibă loc. Pre-procesorul preia instrucțiunile și parametrii macro și le extinde în liniile de cod necesare, înlocuind parametrii cu substituenți reprezentativi în interiorul codului macro real.
După ce utilizarea macro-instrucțiunilor s-a răspândit, multe blocuri de cod utilizate în mod obișnuit vor fi asamblate în biblioteci de macro-instrucțiuni. Aceste biblioteci conțineau mai multe macrocomenzi pentru a simplifica programarea în limbaj de asamblare, precum și pentru a asigura că anumite operațiuni au fost efectuate într-o manieră consecventă în diferite programe. Utilizarea extinsă a bibliotecilor de instrucțiuni macro a condus în cele din urmă la limbaje de nivel superior care s-au bazat pe propriile biblioteci pentru a oferi funcționalități extinse cu cerințe de programare mult mai puțin repetitive.