Kompilace a Assembler
Zdrojový program napsaný v jazyce symbolických instrukcí musí být přeložen do cílového programu, který má stroj spustit. Tento proces překladu se nazývá kompilace a program pro dokončení úlohy sestavení se nazývá assembler, viz obrázek 1.
assembler je nejstarší a zároveň nejvyspělejší systémový software. Kromě možnosti přeložit zdrojový program v jazyce symbolických instrukcí do programu strojového jazyka je také možné automaticky alokovat oblasti úložiště (včetně oblasti programu, oblasti dat, dočasné oblasti atd.) podle požadavků uživatele; automaticky dát různé druhy systému přenosu čísel převod je převeden na binární, převést znak na kód ASCII, vypočítat hodnotu výrazu; automatický zdrojový program zkontroluje, vydá chybové hlášení (např. nelegální formát, nedefinované muzeum, lasery, chybějící operandy atd.) Počkejte. Assembler s těmito funkcemi se také nazývá základní montáž (neboli malá montáž ASM).
sekvence makro programování
Na základě základní kompilace je dále povoleno definovat sekvenci příkazů jako makrosestavení (MASM) ve zdrojovém programu. program. Obsahuje všechny funkce ASM, ale také funkce jazyka assembleru na vysoké úrovni, jako je makro, struktura, záznamy.
Hlavním rysem sestavení maker je zvýšení zpracování maker v assembleru. Umožňuje uživatelům snadno definovat a používat makra, která mohou být použita ve více vzhledech v programu, s určitým formátem a mohou být modulována menšinovou úpravou odstavců programu. Tato metoda nejen zkracuje délku programu, zvyšuje čitelnost a je třeba změnit formát odstavce programu, ale pouze je nutné změnit definici, aniž by bylo nutné měnit každé použití.
Sestavení makra zahrnuje nejen funkčnost obecného assembleru, ale také datová struktura používaná pokročilým programem je assembler blízký pokročilému programu. Poskytuje například operaci záznamu, struktury a řetězce; existuje mnoho funkcí, jako je zpracování maker, podmíněné sestavení a volání funkcí DOSu operačního systému disku; vývoj programu a prostředky pro ladění jsou také relativně dokončeny.
Důvody pro použití sestavení maker
Během programu v jazyce kompilace je třeba některé segmenty funkcí opakovat vícekrát, pouze počet operandů. Aby se snížila pracovní zátěž programování, obvykle se používají dvě metody:
(1) zapsat segment programu jako samostatný podprogram;
(2) definuje blok do makra.
Makro (instrukce)
(1) zkraťte zdrojový kód;
(2) rozbalte sadu instrukcí;
(3 Změňte význam určité pomoci s pokyny (priorita makra je vyšší než u pokynů a pokynů).
makro
makro je široce existující koncept v počítačových softwarových systémech. Od kanceláře kancelářského softwaru po jazyk C pro vývoj programů atd. můžete definovat proces, který má být provozován jako makro. Konkrétně v jazyce symbolických instrukcí je makro také jedním z hlavních rysů kompilace, což je další zjednodušený zdroj zjednodušených zdrojových procedur podobných podprogramu.
Programovací jazyk makro je programový kód s nezávislými funkcemi ve zdrojovém programu a makro lze také nazvat makro, makro operace. Použití maker vyžaduje tři kroky: definici makra, úpravu makra a makro. První definice makra; potom volání makra; nakonec, rozšíření Makro je vyrobeno MASM během montáže.
definice makra
příkaz definice makra Příkaz definice makra a podprogramu proc je pseudoinstrukce. Definice makra vyžaduje dvojici pseudoinstrukcí Dokončení Makro a ENDM. Formát definovaný makrem je následující:
název makra Makro [figurína 1, figurína 2, ...]
...
Squiry Stroke
...
endm
Popis: Definice makra negeneruje cílový kód, pouze používá spojení mezi "názvem makra" a zdrojovým kódem. Mezi nimi dumns 1, dummy 2, ... jsou virtuální parametry nebo parametry formuláře, oddělené čárkami. Ventily nebo tvar nejsou nastaveny.
Například: Definujte vstupní makro z klávesnice Vstup:
vstupní makro
MOV AH, 01H
za 21 hodin
endm
je třeba poznamenat, že když jméno, nesmí být stejné jako název instrukce jazyka symbolických instrukcí, slovo je stejné.
volání makra
Při použití makra v programu stačí napsat název makra [informovat]. Formát makra je: název makra [Real parametric 1, Real parametric 2, ..., Real Parts n].
Například zadejte znak z klávesnice, určete, zda se jedná o číslo „jedna“, nikoli, pokračujte v zadávání, je konec. (Pomocí dříve definovaného makra).
model malý
stack 100h
kód
začátek:
vstup
CMP Al, '-' <
RetSys
konec začátek
zobrazení makra otevřené
zobrazení makra Nahraďte cílový kód programového segmentu makra v definicích maker za těla maker. Po sestavení zdrojů bude makro hodnocení makro každého makra, nahradí odpovídající tvar a změní těla makra. Obrázek 2 je příklad nasazení makra.
Pseudo směrnice pro běžné zpracování maker
Pseudo směrnice pro definici makra (makro / Endm)
Formát:
Makro Makro < / p>
(makro)
endm
MacRo je definice makra, která definuje název makra jako blok obsažený v těle definice makra. ENDM představuje konec makra a před ním není žádný název makra. Po definici makra můžete název makra použít vícekrát. Ale musíte nejprve definovat, pak volat. Definice makra umožňuje vnořené, to znamená, že definice makra mohou obsahovat další definici makra a lze také použít modul makra, ale musí být nejprve definován a poté vyvolán.
Deklarace direktivy (lokální)
LOCAL v těle makra znamená deklarovat částečné referenční číslo v těle makra, aby se předešlo použití stejného referenčního čísla ve zdrojovém programu při rozšíření makra Existuje mnoho chyb které se objevují vícekrát za účelem vytvoření vícenásobné definice označení. Direktiva LOCAL musí být umístěna před všemi ostatními příkazy (včetně komentářů) v makrobloku, její formát je:
místní místní ID [, ...]
, například následující dokončení makra pro dokončení registru Jedno hexadecimální číslo se převede na odpovídající kód ASCII. Protože se místní popisek objevuje v těle makra, musí být místní popisek v těle makra deklarován pomocí direktivy LOCAL.
HEXTOASC Makro REG
Místní číslo
Cmp REG, 0AH
JC Num
Přidat Reg, 07h
Počet: přidat reg, 30h
endm
Jasné makro definované pro instrukce (PURGE)
název makra může být Jiné názvy proměnných, štítky, instrukce, pseudoobsluhované názvy v programu, nejvyšší priorita makra, která je nejvyšší úrovní makra, takže stejnojmenná direktiva nebo pseudooperace je neplatná. Aby bylo možné obnovit funkci těchto instrukcí nebo pseudo instrukcí, řídit se definicí strojových instrukcí, makro assembler poskytuje pseudo-operaci Purge pro zrušení definic makra, je-li to vhodné.
Obecný formát direktivy Purge je:
Vymazat definovaný název makra [, ...]
hranatá závorka označuje, že Purge může zrušit více definic maker. Název makra je oddělen čárkou. Například definice makra:
Dílčí makro VARX, VARY, Result
...
endm
volání makra: SUB X, Y, Z
Vyčistit pod
Funkce odčítání "purge sub" obnovy sub.