Ìàêðîîïåðàòîðû
Ïðèìåð ìàêðîêîìàíäû IRPC íà Ôèã. 6.7 èëëþñòðèðóåò, â ÷àñòíîñòè,
ïðèìåíåíèå ñèìâîëà "&". Ýòî - îïåðàòîð ìàêðîêîìàíä, êîòîðûé ñëóæèò
äëÿ ñîåäèíåíèÿ äâóõ ýëåìåíòîâ. Â äàííîì ïðèìåðå îïåðàòîð "&"
ñîåäèíÿåò ïàðàìåòð CHAR ñî ñòðîêîé-êîíñòàíòîé "X". Êàê âû âèäèòå,
ïðè ýòîì ôîðìèðóåòñÿ äåéñòâèòåëüíîå èìÿ ðåãèñòðà.
Åùå îäíèì óäîáíûì ñðåäñòâîì ïðè ïðîãðàììèðîâàíèè ìàêðîêîìàíä
ÿâëÿåòñÿ îïåðàòîð LOCAL. Îïåðàòîð LOCAL çàäàåò ìåòêó, êîòîðàÿ
èñïîëüçóåòñÿ òîëüêî â äàííîé ìàêðîêîìàíäå. Ýòà ìåòêà äîëæíà áûòü
óíèêàëüíîé äëÿ êàæäîãî âûçîâà äàííîé ìàêðîêîìàíäû. Ïðåäïîëîæèì, ÷òî
âû õîòèòå íàïèñàòü ìàêðîêîìàíäó, â êîòîðîé äîëæåí áûòü êóñîê
ïðîãðàììû ñëåäóþùåãî âèäà:
AAAAA: ADD AL,[BX]
INC BX
LOOP AAAAA
Ïðè ïåðâîì âûçîâå ýòîé ìàêðîêîìàíäû íèêàêèõ ñëîæíîñòåé íå
Microsoft (R) Macro Assembler Version 5.00 4/2/89 16:06:59
Ôèã. 6.8 Èñïîëüçîâàíèå êîìàíäû LOCAL Page 1-1
PAGE ,132
TITLE Ôèã. 6.8 Èñïîëüçîâàíèå êîìàíäû LOCAL
PAUSE MACRO TIME
LOCAL LABEL
MOV CX,TIME
LABEL: LOOP LABEL
ENDM
0000 CODE SEGMENT
ASSUME CS:CODE
PAUSE 100
0000 B9 0064 1 MOV CX,100
0003 E2 FE 1 ??0000: LOOP ??0000
PAUSE 1000
0005 B9 03E8 1 MOV CX,1000
0008 E2 FE 1 ??0001: LOOP ??0001
Ñîäåðæàíèå Íàçàä Âïåðåä