Makrosai ir paprogramės. Kas jie? Keletas jų privalumų, trūkumų ir pavyzdžių.

Makrosai ir paprogramės. Makrosai tai parašytos atskiros bibliotekos programai. Programoje makrosus galima panaudoti daug kartų.

Pavyzdžiui:

macro   bankas 1                      ;makroso pavadinimas
           bsf STATUS,RP0           ;pirmo banko nustatymas
           endm                             ;makroso užbaigimas

parašyta programa išsaugoma kaip biblioteka t.y. pavadinimas.inc. Taip pat jau šią biblioteką reikią įtraukti į darbinės programos lange Header files šaką. Norint iškviesti parašytą macro (biblioteką), ją taip pat reikia įtraukti programoje, pavyzdžiui:

#include pavadinimas.inc            ; macro įtraukimas į darbinę programą 

 Kai norima panaudoti macro rašomoje programoje, tiesiog rašomas jo pavadinimas. Pavyzdžiui:

             bankas1           ;nustato pirmą banką

 šiuo atveju bankas1 tampa kaip komanda ir atlieka pirmo banko nustatymą. Jeigu macrose yra naudojamos  žymės jas reikia apsibrėžti local direktorija, kitaip programa meta kaip klaidą. Pavyzdžiui:

            local žymė1                   ; žymės apsibrėžimas
            lokal žymė2                   ; žymės apsibrėžimas
            ...                                 ...

Macro rašymas turi trūkumą tokį, kad susimuliavus į programą įtraukia visą programos tekstą koks yra parašytas macrose. Panašią paskirtį turi ir paprogramės tik jos į programos tekstą yra iškviečiamas to pasakoje užima mažesnę programos atmintį.

Paprogramės pradžią nurodo žymė, o pabaigą return, pavyzdžiui:

 Wait10
            nop                   ;1 ciklo vėlinimas
            nop                   ;1 ciklo vėlinimas
            nop                   ;1 ciklo vėlinimas
            nop                   ;1 ciklo vėlinimas
            nop                   ;1 ciklo vėlinimas
            nop                   ;1 ciklo vėlinimas
            return                ;2 ciklų vėlinimas

 parašytai paprogramei iškviesti yra naudojama komanda call, pavyzdžiui:

call wait10                     ;iškviečiama paprogramė kuri vėlina 10 ciklų

 jeigu norima, kad grįžtant iš paprogramės į w registrą būtų įrašyti duomenys yra naudojama komanda retlw, pavyzdžiui:

 žymė                            ;paprogramės pavadinimas
            ...                    ...
            retlw .10            ;grįžus iš paprogramės į w registrą bus įrašytas skaičius 10