Assembler äëÿ íà÷èíàþùèõ


         

Ìàêðîîïåðàòîðû


     Ïðèìåð ìàêðîêîìàíäû 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



Ñîäåðæàíèå  Íàçàä  Âïåðåä