assembler86 8

assembler86 8



176 6. Makrojęzyk asemblera MA SM

MOV SI,OFFSET ZRODLO

MOV DI,OFFSET PRZEZNACZENIE

MOV CX,DLUGOSC

REP MOVS ES:PRZEZNACZENIE,ZRODLO ASSUME ESiNOTHING POP ES ENDM

Przykładowe wywołanie makroinstrukcji

PRZEPISZ TAB TABLICA 1, TABLICA 2,100    Ą

spowoduje wygenerowanie sekwencji rozkazów i dyrektyw określonej definicją makroinstrukcji, przy czym parametr formalny ZRODLO zostanie zastąpiony parametrem aktualnym TABLICA l, a parametr PRZEZNACZENIE - parametrem TABLICA 2. Sto elementów tablicy będzie przepisanych.

63.    Dyrektywy i operatory dodatkowe

Z makroinstrukcjami są związane pewne dodatkowe dyrektywy' oraz operatory ułatwiające korzystanie z makrojęzyka.

Dyrektywa PlIRGE

Dyrektywa PURGE kasuje definicję makroinstrukcji. Nazwa skasowanej makroinstrukcji może być wykorzystana do innych celów. Składnia dyrektywy ma postać

PURGE nazwa ł [, nazwa_2, ...J

przy czym nazwa _x oznacza nazwę kasowanej makroinstrukcji.    ,)

Przykład

DWA    MACRO REJESTR

DEC REJESTR DEC REJESTR ENDM

• • •

PURGE DWA

• • •

DWA DB 2    ♦

Dyrektywa EXITM    Z r- V S ]<| MW W

Dyrektywa EXITM pozwala wcześniej zakończyć (przerwać) rozwinięcie makroinstrukcji. Dyrektywa ta nie może być stosowana wewnątrz konstrukcji IF-ELSE-ENDIF oraz wewnątrz makroinstrukcji zawartej w innej makroinstrukcji.

powered by

6.3. Dyrektywy i operatory dodatkowe


Mi si/pl

Przykład

MAKRO    MACRO TEKST A, TEKST B

IFDIF < TEKST_A >, < TEKST B>

EX1TM

ENDIF

; rozwinięcie makroinstrukcji ; gdy oba łańcuchy są równe

ENDM    ▲

Dyrektywa LOCAL

Dyrektywa LOCAL może występować jedynie wewnątrz definicji makroinstrukcji, w wierszu programu bezpośrednio po słowie kluczowym MACRO. Składnia dyrektywy jest następująca

LOCAL nazwa ł [, nazwa_2,...]

przy czym nazwa x to nazwa symboliczna, która mimo wielokrotnego wywoływania makroinstrukcji nie będzie przedefiniowana. Asembler przy pierwszym rozwinięciu makroinstrukcji zastąpi nazwę zadeklarowaną dyrektywą LOCAL napisem ??0000, przy drugim napisem ??0001 itd. aż do ??FFFF. Etykiety występujące w makroinstrukcji muszą zawsze być typu LOCAL.

Przykład

Definicja makroinstrukcji

A B    MACRO A,B

LOCAL KONIEC CMP A,B

JE KONIEC ;    są równe, nic nie rób !

DEC A ;    nic są równe

INC B

KONIEC

ENDM

Wywołanie tak zdefiniowanej makroinstrukcji ma postać

A B AX,BX A B ZMIENNA,SI

Rozwinięcie obu kolejnych wywołań jest następujące

CMP AX,BX JE ??0000 DEC AX INC BX

??0CXX):

CMP ZMIENNA,SI JE ??0001


Wyszukiwarka

Podobne podstrony:
assembler?86? 6 172 6. Makrojęzyk asemblera MA SM dyrektywy pomocnicze PURGE, EXITM, LOCAL specjal
assembler?86? 9 ??0001 178 6. Makro język asemblera MA SM DEC ZMIENNA INC SI Operator & Operat
assembler?86? 1 182 6. Makrojęzyk asemblera MASM Powyższe wywołania wygenerują następujące rozwini
assembler?86? 8 56 4. Język asemblerowy mikroprocesorów 8086/8088 433. Połączenia międzymodułowe O
assembler?86? 8 76    4. Język asemblerowy mikroprocesorów 8086/8088 LE (ang. lower
assembler?86? 7 174 6. Makrojęzyk asemblera MASM Przykład • Wywołanie makroinstrukcji IRPC X, 1234
assembler?86? 0 180 6. Makrojęzyk asemblera MASM DBA ENDM ; wersja bez % BAJTY MACRO A BAJTY M
002efx “1 ? - <Q
assembler?86? 6 52 4. Język asemblerowy mikroprocesorów 8086/8088 MOV AX, DANE 2    
assembler?86? 8 156 5. Rozkazy mikroprocesorów 8086/8088 JNC (ang.jump if no carry ) skok względny
assembler?86? 8 216 8. Uruchamianie programów asemblerowych Wywołanie programu bibliotekarza A>
Honey x Honey Drops v04?4 8 THATS WHy IfMUStjflpBEgPiąg WŚTER^Ir/zisH^si Wt/Ć^ŻZMWMMm Qmpi!cye®6j
70247 sr8 w pobliżu wierzbówki nie ma. użyjcie puchu palki rosnącej nad wodą. Prześliczny biały puc
Slajd5 Dostęp atomowy (instrukcje atomowe) (2/3) Kod asemblera dla instrukcji g_::++ : MOV EAX, [G
Slajd5 Dostęp atomowy (instrukcje atomowe) (2/3) Kod asemblera dla instrukcji g_::++ : MOV EAX, [G
normal#~8 CZY TWOJA MAMA MA FUTRO? NASZA SWOJE STRACIŁA
SCAN0117 Zadam® §8. W której sytuacji pracodawca ma obowiązek wystawić pracownikowi świadectwo pracy

więcej podobnych podstron