Top 10k strings from m18.doc in <root> / doc / technical / specifications / CPMDOC.zip /
Back to the directory listing
48 MACRO-18
26
22
2 datele care urmeaza in mod realocabil utilizind contorul de
2 Times New Roman
2 Pentru a modifica aceasta valoare se poate folosi ORG.
2 JMP ERROR
1 vor fi legate impreuna.
1 virgule fara a mai fi nevoie de un alt separator.
1 valoarea simbolului. Daca simbolul respectiv este PUBLIC
1 utilizat pentru a apela macroinstructiunea.
1 urmatoarelor notatii speciale:
1 urmata de spatii (unul sau mai multe) si de un sir de comanda
1 unul din urmatoarele moduri:
1 uni nu au nici un efect. .LIST este implicit.
1 unei linii dupa NUL este considerat a fi argumentul lui
1 unde variabilele sint definite sau referite.
1 unde expandarea se producea chiar la intilnirea pseudoinstructiu
1 unde <mod> sint obligatoriu de acelasi tip.
1 unde < > marcheaza un cimp optional.
1 unde 'A' este o constanta de tip caracter.
1 unde <nume> este numele folosit in macrodefinitie iar parametri
1 unde <expresie> este noua valoare a contorului de locatii al
1 un simbol extern (dar numai unul).
1 tului de fisier.
1 trolata de trei pseudoinstructiuni:
1 troafe si comentarii.
1 trebuie sa fie absolute.
1 trebuie sa fie absolut.
1 tre (A, B, ...) daca acestea sint folosite in lista
1 trateaza ca si cum ar fi o instructiune DB.
1 toriu intr-o zona de memorie diferita.
1 tiv, liniile eronate sint afisate.
1 tiv de date) sau in memoria ROM/RAM (segmentul realocabil
1 tiv si valoarea celui de-al doilea in octetul cel mai putin
1 tiunea .RADIX. Pentru baza 16 daca prima cifra este A-F atunci
1 tite <,>.
1 tipul operatorului.
1 tionat la zero.
1 tii pentru un segment de program absolut.
1 tii pentru blocul COMMON specificat.
1 terul "carriage return" <CR>.
1 terminare a lotului, compusa din caracterele CONTROL/C (ETX) si
1 tere trebuiesc dublate ori de cite ori se doreste folosirea lor.
1 tere ## declara implicit acel nume ca o referinta externa.
1 ter "form feed" <FF>.
1 ta si controalele $EJECT si $TITLE ('text').
1 sursa si obiect pina cind se intilneste in program .LIST.
1 sului de asamblare.
1 succesive.
1 sita in expresii :
1 sita cu pseudoinstructiunea ELSE care permite generarea codu
1 sistemul de operare.
1 sint semnalate ca erori.
1 sint optionale.
1 sint folositi cu CSEG si DSEG din MACRO-18. Aceste erori sint de
1 singur octet.
1 singur IF.
1 simbol intern disponibil pentru utilizarea lui, in alte module
1 si o pseudoinstructiune de definire macroinstructiune (MACRO).
1 sfirsitului de fisier.
1 separati de operanzii lor prin cel putin un spatiu.
1 separati prin virgule.
1 semnificativ.
1 semnalat ca eroare.
1 secventa este nevoie de anumiti parametri.
1 se tipareste imediat dupa valoarea simbolului caracterul I
1 se semnaleaza o eroare Q).
1 se intilneste un operator care are precedenta mai mica sau egala
1 se foloseste pseudoinstructiunea ORG.
1 sau nedefiniti.
1 sau un ELSE fara o pseudoinstructiune conditionala va cauza
1 rului obiect, se introduce numai o virgula in stinga caracteru
1 rul deschide fisierul cu extensia .CRF in locul fisierului cu
1 rile unor controale conditionale de asamblare.
1 rie fiecare modul realocabil.
1 restul expandarii sau al repetarii nu mai este generat.
1 repetat de catre asamblor de atitea ori cit indica <expresie>.
1 rent (altfel se semnaleaza eroarea U).
1 rele reguli:
1 rele caractere A-Z 0-9 $ . ? @. La citirea unui simbol literele
1 relativ de cod pina cind se va executa o pseudoinstructiune DSEG,
1 referinte incrucisate in fisierul TEST.LST.
1 referinte incrucisate pina la urmatoarea aparitie a unui .CREF.
1 referinte incrucisate LAST.CRF care se va utiliza cu programul
1 referinta incrucisata.
1 recunoscut ca un parametru formal.
1 reaza cimpul [crf#] atunci codul erorii se gaseste in
1 rea <,> cind argumentul este de fapt o lista de argumente
1 putea folosi si delimitatorul in sirul de caractere aceste carac
1 pune ca unitate de discuri unitatea selectata in mod curent.
1 pseudoinstructiuni :
1 pseudoinstructiunea COMMON.
1 pseudoinstructiune, apeluri de macroinstructiuni sau expresii.
1 programului.
1 programul sursa.
1 program, chiar daca de fiecare data de cite ori se utilizeaza
1 program la adresa 100H si executat.
1 primele. Toti operatorii cu exceptia + , - , * , / trebuiesc
1 primele 6 caractere din <text> vor fi folosite pentru numele de
1 primeasca comenzi.
1 prima coloana a listingului.
1 prima pozitie celelalte linii de control pot incepe din orice
1 prima entitate din linie este un numar de referinta
1 pot utiliza fie IF1, fie IF2.
1 poate fi diferit de numarul parametrilor din lista de parametri
1 plus sint substituiti cu sirul vid.
1 plus sint ignorati. Daca sint mai putini, parametri formali in
1 pina la noul operator. Acest lucru inseamna ca subexpresiile
1 pina cind programul este incarcat si aceste adrese asignate de
1 pentru fiecare bloc COMMON definit in program.
1 pentru fiecare aparitie a lui in macroexpandare.
1 pentru fiecare argument din lista si substituie acel simbol
1 pentru ca acesta sa caute in fisierele din lista variabile glo
1 pe 16 biti.
1 parametri formali, intr-o corespondenta unu la unu.
1 pagina noua.
1 ordine alfabetica
1 operare CP/M.
1 omise din linia de comanda.
1 octali (in functie de ce controale au fost introduse la
1 obisnuit prin :
1 obiect sa fie incarcat intr-o zona de memorie si executat obliga
1 obiect compatibile cu fisierele obiect produse de compilatoarele
1 o valoare initiala 0. Pentru a modifica aceasta valoare se poate
1 numarul de ori de care se repeta blocul de instructiuni.
1 numarul blocurilor COMMON care au fost definite in program cu
1 numai valori care au fost definite in prealabil si expresiile
1 numai primele 6 caractere. Intr-un simbol sint permise urmatoa
1 numai caractere spatiu atunci este considerat blocul COMMON
1 nnnnO sau nnnnQ Numar octal
1 nnnnH sau X'nnnn' Numar hexazecimal
1 nnnnD Numar zecimal
1 nnnnB Numar binar
1 nevoie de introducerea in paranteze
1 nea COMMON din FORTRAN. Daca <nume bloc> este omis sau contine
1 multe controale. Fiecare control se compune dintr-o litera prece
1 mul CREF-18. Pentru a genera un listing de referinte incrucisate,
1 modulului se creaza din numele fisierului sursa.
1 modului curent.
1 modificati (inlocuiti) de fiecare data cind este apelata macro
1 mod automat si cu contorul de locatii in modul cod relativ pozi
1 mici sint convertite in litere mari.
1 memorie incepind cu adresa curenta a contorului de locatii.
1 mal in bloc cu urmatorul caracter din sir.
1 mai importante facilitati ale asamblorului M18.
1 macrodefinitie.
1 m poate fi:
1 m este un indicator care semnaleaza modul in care se
1 luri legale pentru asamblor.
1 lul respectiv este declarat automat PUBLIC.
1 lui in mod alternativ cind este satisfacuta conditia opusa.
1 lui =. Daca numele fisierului obiect sau al fisierului listing
1 lucru este semnalat ca o eroare.
1 lot de programe, asteptind noi comenzi de la operator.
1 lor. Un parametru care se gaseste intr-un sir cuprins
1 lor sau a apostroafelor).
1 locatii pentru segmentul realocabil de cod.
1 locatii pentru segmentul de date.
1 listing, obiect). Extensia fisierului poate fi omisa. Extensia
1 listing TEST.LST.
1 liniilor sursa care genereaza codul obiect.
1 linie sursa si este imediat urmata de caracterul ":".
1 linie a antetului fiecarei pagini.
1 lelor in ordine alfabetica urmate de numerele de linie
1 lansarea MACRO-18, /H sau /O).
1 introduse cu litere mici vor fi convertite la litere mari.
1 introduca la consola comanda d:M18 urmata de caracterul <CR>.
1 intre apostroafe nu va fi substituit in expandare daca
1 intr-un bloc conditional fals. Blocul IRP/IRPC/REPT nu
1 instructiunea.
1 instructiunea ENDM.
1 instructiunea END nu este prelucrata deoarece se gaseste
1 initiala 0.
1 initiala 0.
1 incrucisate in fisierul T.LST.
1 incrucisate
1 incrucisata urmat de un caracter TAB.
1 includ trei pseudoinstructiuni de repetitie:
1 in pasul 1 si valoarea expresiei trebuie sa fie sau absoluta sau
1 in octeti)
1 in modul curent al contorului de locatie.
1 in limbaj de asamblare 8080 sau Z80 si de generare de fisiere cod
1 in limbaj de asamblare este necesar sa se introduca la consola
1 identic cu cel al macroasamblorului ASM80.
1 gur caracter care codifica tipul erorii. Acest caracter de eroare
1 gram se afiseaza din nou la consola "*" si se asteapta o noua
1 genereze o secventa data de instructiuni, in diferite locuri in
1 genereaza acelasi cod ca exemplele precedente.
1 genereaza octetii 1,2,3,4,5,6,7,8,9,10.
1 gaseste contorul de locatii.
1 formatul corect sau este in afara ordinului de
1 format special care sa includa si caractere de control (vezi
1 formali folosita la definitia macroinstructiunii.
1 formal intr-o macroinstructiune.
1 formal inlocuita cu sirul vid.
1 folosit atit caracterul apostrof ' cit si caracterul ". Pentru a
1 folosi ORG.
1 fisierului sursa.
1 filespec obiect,filespec listing=filespec sursa controale
1 fiecare data cind este apelata, spre deosebire de REPT/IRP/IRPC
1 fiecare intilnire in fisierul sursa a pseudoinstructiu
1 ficativ pus pe 0. Ultimul caracter din sir este memorat cu
1 ficarea unor unitati de disc.
1 fapt numai avertismente; asamblorul ignora operanzii.
1 faca cu conditionalele IFB sau IFNB.
1 externe (adica declarate PUBLIC in alte programe).
1 extern sau un nume de bloc COMMON.
1 extensia .LST.
1 expresii parantezele (). In timpul evaluarii unei expresii, cind
1 expresii devine dimensiunea noii pagini (linii/pagina).
1 expresie (de ex: absolut-relativ).
1 expandarea macro-ului arata astfel:
1 evaluari incorecte.
1 etichetele multiplu definite in expandari de macroinstructiuni
1 eticheta in interiorul unei macroinstructiuni, ceea ce elimina
1 este totdeauna asociat cu cel mai recent IF deschis.
1 este salvat ca parte a expandarii.
1 este precedat de &.
1 este omis, numele implicit este numele fisierului sursa.
1 este limitat numai de lungimea liniei.
1 este incarcat in zona de memorie curenta.
1 este ignorata si rezultatul trunchiat la 16 biti.
1 este generat ca atare.
1 este echivalenta cu
1 este echivalent cu :
1 este considerat drept delimitator.
1 este inlocuita cu un sir de text iar parantezele ascutite <,>
1 ele, sau doua virgule consecutive introduc in lista un
1 ea introdusa.
1 drive, o litera de la A la P urmata de doua puncte- in cazul in
1 disp. sursa - dispozitivul de pe care M18 citeste
1 disp. prog. obiect - dispozitivul pe care se scrie programul
1 disp. listing - dispozitivul pe care se scrie listingul
1 dintr-un argument ca un literal ( !; este echivalent cu
1 din numele dispozitivului, numele fisierului si tipul sau
1 din lista de parametri reali, vor inlocui parametri din lista de
1 delimitate de apostroafe.
1 definit si in program.
1 de program care se asambleaza sau se compileaza separat dar care
1 de parametri formali.
1 data de caracterul /.
1 dare fara ca sa listeze textul sau.
1 dar va fi definit in pasul 2.
1 daca argumentul sau (un parametru) este vid. Restul
1 cunoscut in pasul 1 pentru a preintimpina aparitia erorii V la
1 cu ultimul operator intilnit, se efectueaza toate operatiile
1 crat o singura data cu fiecare aparitie a parametrului
1 continua pina la prima aparitie a delimitatorului.
1 context ilegal.
1 consola un mesaj de eroare si trece in modul de asamblare al unui
1 considerata implicit (daca este omisa) este:
1 considerat drept delimitator.
1 considera a fi unitatea selectata in mod curent.
1 consecutivi, neinchiderea corecta a paranteze
1 comune astfel incit se pastreaza compatibilitatea cu instructiu
1 compun macroinstructiunea chiar si numele de regis
1 comenzi terminat cu <CR>. La sfirsitul asamblarii fiecarui pro
1 comanda. La sfirsitul lotului de programe se introduce comanda de
1 comanda M18 (sau d:M18 - d: reprezinta specificatia optionala de
1 codul obiect in SOURCE.REL.
1 codul erorii urmat de caracterul spatiu. Daca nu se gene
1 cite nivele.
1 cind in fisierul sursa se intilneste caracterul "form feed".
1 cind apelul este:
1 cifra trebuie precedata de un zero.
1 cele trei exemple precedente pentru apelul
1 cele doua instructiuni LXI sint identice.
1 cari a programului, unei mai rapide testari, depanari si modifi
1 care se termina cu caracterul "carriage return" <CR>.
1 care macroasamblorul se gaseste pe alt drive decit cel implicit),
1 care realizeaza functia de asamblare a programelor sursa scrise
1 care fac apel la operatori cu precedenta mai mare sint calculate
1 care caracter fiind memorat intr-un octet cu bitul cel mai
1 caracterul '#'.
1 caracterele spatiu sint ignorate.
1 caractere.
1 caractere terminate prin virgula sau >.
1 caractere este vid.
1 caracter din sir.
1 blocului de comentarii va fi:
1 bloc mai mare, expandarea continua cu blocul mai mare.
1 blata intr-un cimp de doi octeti.
1 blarii pina la o alta aparitie a delimitatorului.
1 blarea programului si se face trecerea automata in sistemul de
1 bitul cel mai semnificativ pozitionat pe 1. Un sir vid este
1 baza zecimala. Aceasta baza poate fi modificata cu pseudoinstruc
1 bale nedefinite inainte de a cauta in biblioteca FORTRAN.
1 atunci rezultatul expresiei este de tip extern.
1 ascutite < , >.
1 asamblorul trebuie sa genereze un fisier listing pe disc de un
1 asamblat care vor fi incarcate in memoria RAM mai tirziu (segmen
1 asamblare.
1 asamblare pentru programe foarte lungi sau pentru a afisa valo
1 argumentului este diferit de ";" sau este "carriage
1 argumente fiecarei aparitii a parametrului formal in bloc.
1 argument vid.
1 are sfirsit.
1 are ca valoare - valoarea primului in octetul cel mai semnifica
1 apeleze programul CREF18.
1 apel de macroinstructiune.
1 aparitia unei erori C.
1 apare in prima pozitie a fisierului listing.
1 al procesului de asamblare considera simbolul ca fiind nedefinit,
1 adunare sau scadere.
1 aceste programe este necesar sa folositi programul LINK-18. (Vezi
1 acest simbol este declarat EXTERNAL.
1 absolute de la inceputul zonei .PHASE dar codul obiect totusi
1 absolut (nerealocabil).
1 [xx] [No] Fatal error(s) [,xx warnings]
1 [crf#] [eroare] loc#m xx xxxx ... linie sursa
1 [,] indica cimpuri optionale
1 [ TITLE text ] MAC18 1.4 PAGE x[-y]
1 [ SUBTTL text ]
1 ZapfDingbats
1 ZapfChancery
1 Z Asamblare pentru mnemonice Z80
1 Y SET Y+1
1 Y SET 0
1 X SET X+1
1 X SET 0
1 Vor fi modificate la expandare in instructiunile ce
1 Valoarea trebuie sa fie cuprinsa intre 10 si 255.
1 Valoare contor de locatii pe 4 digiti hexa sau 6 digiti
1 V Eroare de evaluare.
1 Utilizarea unei referinte externe intr-un
1 Utilizarea ilegala a realocarii intr-o
1 Urmeaza <text> care cuprinde un bloc de comentarii care
1 Urmatorul caracter poate fi :
1 Urmatoarea entitate dupa eticheta este un operator.
1 Un comentariu incepe cu caracterul ; si se termina cu carac
1 Un alt exemplu care genereaza acelasi cod ilustreaza folosi
1 Un ENDIF fara un IF corespunzator cauzeaza o eroare C.
1 Un sir este compus din unul sau mai multe caractere ASCII
1 Un parametru din MACRO/REPT/IRP/IRPC este totdeauna
1 Un operator poate fi un cod de operatie (8080 sau Z80),
1 U Pentru simbol nedefinit
1 U Simbol nedefinit.
1 Toti simbolii, codurile de operatie si pseudoinstructiunile
1 Toti simbolii utilizati ca operatori in subexpresii sint in
1 Toate pseudoinstructiunile conditionale au urmatorul format:
1 Toate numele utilizate in <expresie> trebuie sa fie definite
1 Toate instructiunile urmatoare vor fi asamblate in segmentul
1 Toate etichetele din blocul .PHASE sint definite ca valori
1 Toate numele din lista trebuiesc definite in programul cu
1 Textul care urmeaza este listat la terminal in timpul asam
1 TTY: pentru consola sistem
1 TITLE <text>
1 TITLE specifica asamblorului listarea unui titlu pe prima
1 TEST.REL si fisierul referinte incrucisate TEST.CRF.
1 T.REL si fisierul referinte incrucisate U.CRF.
1 Suplimentar este posibil sa se specifice segmente de cod
1 Sirul de comanda pentru acest program este:
1 Sintaxa eronata intr-un cod de operatie.
1 Sintaxa eronata intr-o expresie (operatori
1 Simbolii pot fi de orice lungime, dar sint semnificative
1 Se pot introduce oricite SUBTTL in program.
1 Se semnaleaza eroarea M daca numele este un nume declarat
1 Se asambleaza programul din fisierul SOURCE.MAC si se plaseaza
1 Se asambleaza programul TEST.MAC, se genereaza cod obiect in
1 Se asambleaza programul TEST.MAC si se listeaza la imprimanta
1 Se asambleaza fisierul TEST.MAC si se creaza fisierul obiect
1 Se asambleaza fisierul TEST.MAC si se creaza fisierul obiect
1 Se asambleaza TEST.MAC cu fisierul obiect TEST.REL si fisierul
1 Se asambleaza MOD1.MAC cu fisierul obiect LAST.REL si fisierul
1 Scrierea in fisierul listing poate fi controlata de doua
1 SUBTTL <text>
1 SUBTTL specifica listarea unui subtitlu in fiecare antet de
1 SET, EQU, MACRO fara un nume;
1 SET este identic cu folosirea in ASM80.
1 Restul liniei contine imaginea liniei sursa asa cum a fost
1 Referinta la un nume care este urmat imediat de doua carac
1 Referinta la un simbol care este multiplu
1 REQUEST genereaza o cerere de cautare (pentru LINK-18)
1 REPT, IRP, IRPC si MACRO.
1 REPT, IRP, IRPC sau un apel macro.
1 REPT X
1 REPT <expresie>
1 REL pentru fisierul cod obiect realocabil;
1 RADIX permite schimbarea bazei implicite intr-o noua baza
1 R Eroare de realocare.
1 R Forteaza generarea codului obiect
1 Q Sintaxa ambigua.
1 Pseudoinstructiunile conditionale sint:
1 Pseudoinstructiunile conditionale pot fi inlantuite pe ori
1 Pseudoinstructiunile care selecteaza zonele realocabile sint
1 Pseudoinstructiunile ASEG, DSEG, CSEG nu au niciodata ope
1 Pseudoinstructiunile .PHASE si .DEPHASE permit codului
1 Pseudoinstructiunea LOCAL este permisa numai intr-o macrode
1 Pseudoinstructiunea EXITM este utilizata pentru a termina
1 Pseudoinstructiunea COMMON creaza o zona de date comuna
1 Pseudoinstructiunea ASEG este folosita pentru a genera cod
1 Programul LINK-18 combina aceste segmente si creaza in memo
1 Programul nu se termina cu instructiunea END sau
1 Primul caracter diferit de spatiu intilnit dupa .PRINTX este
1 Primul caracter diferit de spatiu intilnit dupa .COMMENT
1 Posibilitatea de a crea module realocabile este una din cele
1 Poate rezulta o eroare M daca unul din numele din lista este
1 Pentru numele de modul sint semnificative numai primele sase
1 Pentru compatibilitatea cu asamblorul ASM80, MACRO-18 accep
1 Pentru asamblarea fiecarui program se introduce un sir de
1 Pentru a modifica valoarea curenta a contorului de locatii
1 Pentru a incarca asamblorul si a asambla un singur program
1 Pentru a utiliza simboli externi in expresii se aplica
1 Pentru a schimba aceasta precedenta pot fi folosite in
1 Pentru a asambla un lot de programe, este necesar sa se
1 Pentru IF, IFF, IFT si IFE expresiile trebuie sa contina
1 Pe fiecare pagina de listing, primele doua linii au forma :
1 Parametru implicit este .CREF.
1 Parametri formali din lista sint parametri care vor fi
1 PUBLIC <nume>[,<nume>...]
1 PUBLIC FOO
1 PRINTX va lista textul in fiecare din cei doi pasi ai proce
1 PRINTX este folosit pentru a afisa progresul procesului de
1 PAGE [<expresie>]
1 PAGE determina listarea programului asamblat de la o pagina
1 P Eroare de faza.
1 Orice argument dintr-o operatie conditionala trebuie sa fie
1 Ordinea de evaluare este urmatoarea:
1 Operatorii sint listati in ordinea precedentei.
1 Operatorii permisi in expresii sint:
1 Operanzii PAGE si INPAGE din ASM80 genereaza erori Q cind
1 ORG este identic cu folosirea in ASM80.
1 ORG <expresie>
1 ORG <expresie>
1 OBJECT.REL si listingul la consola.
1 O valoare de tip EXTERNAL trebuie sa fie obligatoriu asam
1 O pseudoinstructiune conditionala cu mai mult decit un ELSE
1 O constanta tip caracter compusa din doua caractere ASCII
1 O constanta tip caracter este un sir de 1 sau 2 caractere
1 O Eroare de sintaxa cod de operatie.
1 O Se tiparesc toate adresele in octal
1 Numerele sint evaluate totdeauna in baza implicita in afara
1 Numele nu trebuie sa includa extensii de fisiere sau speci
1 Numele modulului mai poate fi definit cu TITLE.
1 Numele de fisiere din lista trebuie sa fie sub forma unor
1 Numarul modurilor COMMON dintr-un program este determinat de
1 Numarul erorilor fatale si al avertismentelor.
1 Numarul de parametri utilizati la apelul macroinstructiunii
1 Numarul sirurilor din lista de parametri formali sau reali
1 Numarul de argumente din <lista de argumente> determina
1 Nu este permisa aparitia in expresie a unor simboli externi
1 No Fatal error(s)
1 NewCenturySchlbk
1 NUL conditional.
1 NAME defineste un nume pentru un modul.
1 NAME (' nume modul ')
1 N Eroare intr-un numar.
1 Modulele realocabile ofera avantajul unei mai usoare codifi
1 Modul implicit pentru asamblor este relativ de cod.
1 Mesaje de eroare
1 Manual de utilizare LINK-18).
1 Macroasamblorul M18 poate functiona in doua moduri:
1 Macroasamblorul M18 (MACRO-18) este un program de sistem
1 MVI B,'A'
1 MVI B,'&X'
1 MVI C,MOV A,B
1 MVI B,(RNZ)
1 MVI A,(JMP)
1 MVI A,(CPI 5)
1 MS LineDraw
1 MACRO-18 1.4 PAGE S
1 MACRO-18 1.4 PAGE 1
1 MAC pentru fisierul sursa in limbaj de asamblare;
1 M18 pastreaza literele mici numai in sirurile intre apos
1 M Eroare simbol multiplu definit.
1 Listingul tabelei de simboli
1 Listingul cu referinte incrucisate difera de un listing
1 Listarea expandarilor pentru MACRO/REPT/IRP/IRPC este con
1 Lista de argumente trebuie delimitata de paranteze ascu
1 Lista de argumente trebuie sa fie inchisa intre paranteze
1 Liniile sursa pot avea maxim 132 caractere in lungime.
1 Liniile programului care urmeaza au forma :
1 Liniile in care simbolii sint definiti sint marcate cu
1 Linii care contin orice cantitate de text ca bloc de comentarii.
1 La fiecare sfirsit de pagina asamblorul introduce un carac
1 LXI H,0FFH
1 LXI H,0FF
1 LST: pentru imprimanta
1 LST pentru fisierul listing;
1 LOCAL <lista de argumente>
1 LINK-18 va completa extensiile in mod implicit si va presu
1 L Forteaza generarea listingului
1 Intr-un bloc de operatii un comentariu precedat de ;; nu
1 Intr-un program se poate specifica un singur TITLE (altfel
1 Instructiunile dinainte de ENDM compun corpul macroinstruc
1 Instructiunile din bloc sint repetate o data pentru fiecare
1 Inainte de a semnala o expresie ca o eroare, asamblorul o
1 In timpul asamblarii, macroinstructiunea este expandata de
1 In listingul tabelei de simboli se gasesc listati:
1 In afara de liniile de control care incep cu caracterul $ in
1 In acest exemplu apelul ERRGEN A va genera codul :
1 In absenta lui NAME sau TITLE numele modulului va fi numele
1 In sirul de comanda M18 se pot introduce si unul sau mai
1 In operatiile diferite de + si - modul ambilor operanzi
1 In general M18 accepta un fisier sursa care este aproape
1 In cazul in care comanda este corecta, se realizeaza asam
1 In cazul unei comenzi incorecte asamblorul tipareste la
1 In afara de inchiderea intre paranteze sau apostroafe
1 Implicit baza de numeratie pentru constantele numerice este
1 Iesirea referintelor incrucisate este controlata de .CREF si
1 IRPC este similar cu IRP cu diferenta ca lista de argumente
1 IRPC X,01234567890
1 IRPC <parametru formal>,sir (sau <sir> )
1 IRP X,<1,2,3,4,5,6,7,8,9,10>
1 IRP <parametru formal>,<lista de argumente>
1 IRP Y,<X>
1 IRP Y,<1,2,3,4,5,6,7,8,9,10>
1 INX C sint exemple de astfel de erori).
1 IFxx [argument]
1 IFNDEF <simbol>
1 IFNB <argument>
1 IFE/IFF <expresie>
1 IFDEF <simbol>
1 IFB <argument>
1 IFB si IFNB sint utilizate pentru a testa un parametru
1 IF/IFT <expresie>
1 IF corespunzator, de doua ori ELSE intr-un
1 IF NUL argument
1 I Asamblare pentru mnemonice 8080
1 Helvetica-Condensed
1 H Se tiparesc toate adresele in hexa
1 Formatul comenzii M18 este urmatorul:
1 Forma generala a unui apel de macroinstructiune este :
1 Fisierul sursa consta din instructiuni de forma :
1 Fiecare IF trebuie asociat cu un ENDIF care sa-l termine.
1 Fiecare repetitie substituie urmatorul sir din lista de
1 Fiecare repetare substituie fiecare aparitie a parametrului
1 Fiecare pseudoinstructiune conditionala poate fi optional
1 Fiecare din aceste patru operatii se termina cu pseudo
1 Facilitatile de macroinstructiuni ale asamblorului M18
1 Facilitatea de referinte incrucisate este oferita de progra
1 FORTRAN-18 si COBOL-18.
1 FOO:: RET
1 FOO: RET
1 FOO MACRO X
1 FOO MACRO X
1 FOO <1,2,3,4,5,6,7,8,9,10>
1 FOO 10
1 Extensia implicita pentru fisierul sursa este .CRF.
1 Expresia <expresie> din .RADIX este totdeauna un numar
1 Exemplu de asamblare
1 Examineaza fisierul TEST.CRF si genereaza fisierul cu referinte
1 Examineaza fisierul TEST.CRF si genereaza fisierul listing cu
1 Este un operator care intoarce valoarea logica adevarata
1 Este permis numai un singur ELSE pentru un IF dat si un ELSE
1 Este folosit pentru concatenarea textelor sau simboluri
1 Este fals, daca in timpul expandarii primul caracter al
1 Este utilizat pentru a introduce urmatorul caracter
1 Este recomandabil ca testarea parametrilor nuli sa se
1 Erorile de sintaxa sint indicate de MACRO-18 printr-un sin
1 Erori de sintaxa
1 EXTRN FOO
1 EXT <nume>[,<nume>.....]
1 EXT sau EXTRN declara numele din lista ca fiind referinte
1 ERRORA: PUSH B
1 ERROR&X: PUSH B
1 ERREGEN MACRO X
1 EQU este identic cu folosirea in asamblorul ASM80.
1 EQ , NE , LT , LE , GT , GE
1 ENTRY sau PUBLIC declara fiecare nume din lista, ca fiind un
1 ENTRY <nume>[,<nume>...]
1 ENTRY CSL3
1 ENDM, LOCAL in afara unui bloc;
1 ENDM
1 END este identic cu folosirea in asamblorul ASM80.
1 END [<expresie>]
1 ELSE fara un IF corespunzator, ENDIF fara un
1 E Eroare External.
1 Dupa fiecare simbol se tipareste caracterul TAB urmat de
1 Doua paranteze ascutite (<>) fara nici un caracter intre
1 Dimensiunea implicita a paginii este de 50 linii/pagina.
1 Default Paragraph Font
1 De notat: numai primul octet este un operand valid.
1 De exemplu, utilizind un asterisc ca delimitator, formatul
1 De exemplu valoarea constantei 'AB' este 41H*256+42H.
1 Daca se utilizeaza, LOCAL trebuie sa fie prima linie dintr-o
1 Daca operatia este de scadere se aplica urmatoarele reguli:
1 Daca operatia este de adunare se aplica urmatoarele reguli:
1 Daca nu se genereaza fisier listing aceste pseudoinstructi
1 Daca nu se doreste obtinerea fisierului listing sau a fisie
1 Daca in operand se include mai mult de un octet atunci acest
1 Daca facilitatea de referinte incrucisate nu a fost apelata
1 Daca /C este intilnit in sirul de comanda MACRO-18 asamblo
1 Daca un simbol este definit dupa IFDEF sau IFNDEF, pasul 1
1 Daca un numar depaseste dimensiunea a 2 octeti depasirea
1 Daca sint mai multi parametri reali decit formali, cei in
1 Daca se omite unul din numele de dispozitive, implicit se
1 Daca se doreste listarea numai in unul din pasi atunci se
1 Daca se creaza si informatia de referinte incrucisate,
1 Daca referinta unui simbol este urmata de caracterele ##,
1 Daca nu se specifica nici o pseudoinstructiune NAME atunci
1 Daca nu se specifica nici NAME nici TITLE atunci numele
1 Daca nu exista nici un caracter intre apostroafe sirul de
1 Daca lista de argumente este vida (adica <> ) blocul este
1 Daca linia contine o eroare atunci in acest cimp apare
1 Daca eticheta este urmata de 2 caractere "::" atunci simbo
1 Daca eticheta este prezenta, este prima entitate dintr-o
1 Daca este inclusa si <expresie> atunci valoarea acestei
1 Daca blocul care contine EXITM este continut intr-un alt
1 Daca ati folosit DSEG sau CSEG asamblorul produce fisiere
1 DW este identic cu folosirea in asamblorul ASM80.
1 DW <expresie>[,<expresie>...]
1 DSEG precizeaza asamblorului sa asambleze instructiunile si
1 DS este identic cu folosirea in asamblorul ASM80.
1 DS <expresie>
1 DC memoreaza caracterele din <sir> in adrese succesive de
1 DB este identic cu folosirea in asamblorul ASM80.
1 DB <sir>[,<sir>...]
1 DB <expresie>[,<expresie>...]
1 DB "ABC""DE""FG" memoreaza sirul ABC"DE"FG
1 DB Y
1 DB X+1
1 D Eroare simbol dublu definit.
1 Courier New
1 Control Efect
1 Contorul de locatii pentru segmentul realocabil de date are
1 Contorul de locatii pentru directiva ASEG are o valoare
1 Contorul de locatii pentru directiva CSEG are o valoare
1 Comentarii extinse se pot introduce cu pseudoinstructiunea
1 Codurile de instructiuni sint valide numai ca operanzi de un
1 Codurile de operatie utilizate ca operanzi de un octet nu au
1 Codul asamblat va contine codul macroexpandarii dupa fiecare
1 Codul obiect din acest bloc poate fi mutat mai tirziu prin
1 Cind se tipareste tabela de simboli x='S'.
1 Cind se intilneste .XCREF nu se mai genereaza informatia de
1 Cind se executa EXITM, expandarea este terminata imediat,
1 Cind se intilneste .XLIST se suprima listarea programului
1 Cind se executa LOCAL asamblorul creaza un simbol unic,
1 Cind operatia de asamblare s-a sfirsit, este necesar sa se
1 Chiar daca fisierul listing nu se genereaza pe un dispozi
1 Cel putin un bloc este neterminat la intilnirea sfirsi
1 Cel putin un conditional este neterminat la intilnirea
1 Caracterele sint memorate in ordinea aparitiei lor in sir,
1 Ca delimitator pentru un sir de caractere ASCII poate fi
1 CSL3 0000I' LOOP 0006'
1 CSEG si DSEG.
1 CSEG precizeaza asamblorului sa asambleze instructiunile si
1 CRF pentru fisierul referinte incrucisate.
1 CREF, .XCREF si /C).
1 CPI (INX H)
1 COMMON precizeza asamblorului sa utilizeze contorul de loca
1 COMMON /<nume bloc>/
1 CALL FOO##
1 CALL FOO
1 C U P R I N S
1 C Pentru nume de bloc COMMON
1 C Eroare conditionala.
1 C Forteaza generarea referintelor
1 Blocul de instructiuni cuprins intre REPT si ENDM este
1 Baza implicita pentru toate constantele este baza zecimala.
1 AvantGarde
1 Atit fisierul cod obiect cit si fisierul listing pot fi
1 Asamblorul va afisa la consola "*" indicind ca este gata sa
1 Argumentul unei pseudoinstructiuni nu este in
1 Argumentul in mod obligatoriu se introduce intre <>.
1 Argumentul poate fi si un sir inchis intre apostroafe si
1 Argumentele care urmeaza dupa operator variaza in functie de
1 Apoi se tipareste in listing o linie de spatii.
1 Apoi se tiparesc trei caractere spatiu urmate de codul
1 Altfel un argument este fie un caracter fie un sir de
1 Adresa de inceput a segmentelor realocabile nu este fixata
1 Adresa contorului de locatii este totdeauna inceputul zonei
1 Adevarat pentru pasul 2 al asamblorului.
1 Adevarat pentru pasul 1 al asamblorului.
1 Adevarat daca argumentul este spatiu (nul).
1 Adevarat daca <simbol> este definit sau a fost declarat EXTERNAL.
1 Adevarat daca <expresie> este diferita de 0 ("TRUE").
1 Adevarat daca <expresie> este 0 ("FALSE").
1 Adevarat daca <argument> este diferit de spatiu.
1 Adevarat daca <simbol> este nedefinit sau nu a fost declarat
1 Adesea este convenabil ca asamblorul sa fie capabil sa
1 Acest parametru este implicit.
1 Acest simbol unic este folosit uzual pentru a defini o
1 Aceasta inseamna ca asamblarea incepe cu un CSEG executat in
1 Aceasta facilitate este realizata de MACRO.
1 Aceasta pseudoinstructiune este folosita pentru a termina
1 Aceasta macroinstructiune genereaza acelasi cod ca si in
1 ASEG sau COMMON.
1 ASEG precizeaza asamblorului sa utilizeze contorul de loca
1 ASCII delimitate de apostroafe. Aceasta constanta poate fi folo
1 ADI (LXI B,LABEL)
1 ADI (CPI)
1 ACI (LXI B)
1 A: B: C: D: pentru unitatile de disc
1 A Eroare de argument.
1 >Translated by WordPort from WordStar 3.x, 4.0 document m18.txt
1 <text> este trunchiat daca este mai mare de 60 de caractere.
1 <spatiu> Valori absolute
1 <spatiu> mod absolut
1 <nume> SET <expresie>
1 <nume> EQU <expresie>
1 <nume> trebuie sa fie un simbol legal si numele lui va fi
1 <nume> MACRO <lista de parametri formali>
1 <nume> <lista de parametri reali>
1 <expresie> este evaluata ca un intreg fara semn reprezentat
1 <eticheta:<:>> <operator> <argumente> <; comentariu>
1 <CR>. Executia asamblorului se termina si se face tranzitia in
1 ;SHIFT P1 LEFT CIRCULARLY 3 BITS
1 ;SHIFT LEFT
1 ;SHIFT COUNT
1 ;SAVE RESULT IN SECOND PARAMETER
1 ;ROTATE IN CY BIT
1 ;RETURN RESULT IN P2
1 ;ONE MORE TIME
1 ;GET VALUE OF FIRST PARAMETER
1 ;DECREMENT COUNT
1 ;CSL3(P1,P2)
1 ; reintoarcerea la modul normal
1 7. FACILITATEA DE REFERINTE INCRUCISATE
1 7. Facilitatea de referinte incrucisate . . . . . . . 30
1 6. FORMATUL LISTINGULUI
1 6. Formatul listingului . . . . . . . . . . . . . . . 28
1 5. Mesaje de eroare MACRO-18 . . . . . . . . . . . . . 26
1 4.8 OPERATORI MACRO SPECIALI
1 4.8 Operatori macro speciali . . . . . . . . . . . . . 24
1 4.7 LOCAL . . . . . . . . . . . . . . . . . . . . . . . 23
1 4.6 EXITM . . . . . . . . . . . . . . . . . . . . . . . 23
1 4.5 ENDM . . . . . . . . . . . . . . . . . . . . . . . 23
1 4.4 MACRO . . . . . . . . . . . . . . . . . . . . . . . 21
1 4.3 IRPC-ENDM
1 4.3 IRPC - ENDM . . . . . . . . . . . . . . . . . . . . 21
1 4.2 IRP-ENDM
1 4.2 IRP - ENDM . . . . . . . . . . . . . . . . . . . . 21
1 4.1 REPT-ENDM
1 4.1 REPT - ENDM . . . . . . . . . . . . . . . . . . . . 20
1 4. text SUBTTL este textul definit de pseudoinstructiunea SUBTTL
1 4. MACROINSTRUCTIUNI
1 4. Lista de parametri reali contine parametri separati prin
1 4. intr-o operatie de scadere numai primul operand poate fi
1 4. Macroinstructiuni . . . . . . . . . . . . . . . . . 20
1 3.9 END . . . . . . . . . . . . . . . . . . . . . . . . 13
1 3.8 Define Word
1 3.8 Define Word . . . . . . . . . . . . . . . . . . . . 13
1 3.7 Define Character
1 3.7 Define Character . . . . . . . . . . . . . . . . . 13
1 3.6 Define Storage
1 3.6 Define Storage . . . . . . . . . . . . . . . . . . 13
1 3.5 Define Byte
1 3.5 Define Byte . . . . . . . . . . . . . . . . . . . . 12
1 3.4 DSEG . . . . . . . . . . . . . . . . . . . . . . . 12
1 3.3 CSEG . . . . . . . . . . . . . . . . . . . . . . . 12
1 3.28 REALOCAREA INAINTE DE INCARCARE
1 3.28 Realocarea inainte de incarcare . . . . . . . . . . 19
1 3.27 PSEUDOINSTRUCTIUNI DE REALOCARE
1 3.27 Pseudoinstructiuni de realocare . . . . . . . . . . 18
1 3.26 PSEUDOINSTRUCTIUNI PENTRU CONTROLUL LISTINGULUI
1 3.26 Pseudoinstructiuni pentru controlul listingului . . 17
1 3.25 PSEUDOINSTRUCTIUNI CONDITIONALE
1 3.25 Pseudoinstructiuni conditionale . . . . . . . . . . 16
1 3.24 .8080
1 3.24 .8080 . . . . . . . . . . . . . . . . . . . . . . . 16
1 3.23 .Z80 . . . . . . . . . . . . . . . . . . . . . . . 16
1 3.22 .REQUEST
1 3.22 .REQUEST . . . . . . . . . . . . . . . . . . . . . 16
1 3.21 .RADIX
1 3.21 .RADIX . . . . . . . . . . . . . . . . . . . . . . 15
1 3.20 .PRINTX
1 3.20 .PRINTX . . . . . . . . . . . . . . . . . . . . . . 15
1 3.2 COMMON
1 3.2 COMMON . . . . . . . . . . . . . . . . . . . . . . 12
1 3.19 .COMMENT
1 3.19 .COMMENT . . . . . . . . . . . . . . . . . . . . . 15
1 3.18 TITLE
1 3.18 TITLE . . . . . . . . . . . . . . . . . . . . . . . 15
1 3.17 SUBTTL
1 3.17 SUBTTL . . . . . . . . . . . . . . . . . . . . . . 14
1 3.16 SET . . . . . . . . . . . . . . . . . . . . . . . . 14
1 3.15 PAGE . . . . . . . . . . . . . . . . . . . . . . . 14
1 3.14 ORG . . . . . . . . . . . . . . . . . . . . . . . . 14
1 3.13 NAME . . . . . . . . . . . . . . . . . . . . . . . 14
1 3.12 EXT/EXTRN
1 3.12 EXT/EXTRN . . . . . . . . . . . . . . . . . . . . . 14
1 3.11 ENTRY/PUBLIC
1 3.11 ENTRY/PUBLIC . . . . . . . . . . . . . . . . . . . 13
1 3.10 EQU . . . . . . . . . . . . . . . . . . . . . . . . 13
1 3.1 ASEG . . . . . . . . . . . . . . . . . . . . . . . 12
1 3. y este numarul de pagina secundar, care se incrementeaza la
1 3. PSEUDOINSTRUCTIUNI
1 3. Lista de argumente contine argumente separate prin
1 3. Expresie
1 3. Intr-o operatie de adunare oricare din operanzi poate fi
1 3. Pseudoinstructiuni . . . . . . . . . . . . . . . . 12
1 2.7 CODURI DE OPERATIE CA OPERANZI
1 2.7 Coduri de operatie ca operanzi . . . . . . . . . . 11
1 2.6.3 Referinte externe . . . . . . . . . . . . . . . . . 11
1 2.6.3 Referinte externe
1 2.6.2 Moduri . . . . . . . . . . . . . . . . . . . . . . 10
1 2.6.2 Moduri
1 2.6.1 Operatori aritmetici si logici . . . . . . . . . . 10
1 2.6.1 Operatori aritmetici si logici
1 2.6 EVALUAREA EXPRESIILOR
1 2.6 Evaluarea expresiilor . . . . . . . . . . . . . . . 10
1 2.5 SIRURI
1 2.5 Siruri . . . . . . . . . . . . . . . . . . . . . . 9
1 2.4 CONSTANTE NUMERICE
1 2.4 Constante numerice . . . . . . . . . . . . . . . . 9
1 2.3 SIMBOLI
1 2.3 Simboli . . . . . . . . . . . . . . . . . . . . . . 9
1 2.2 ETICHETE
1 2.2 Etichete . . . . . . . . . . . . . . . . . . . . . 8
1 2.1 INSTRUCTIUNI
1 2.1 Instructiuni . . . . . . . . . . . . . . . . . . . 8
1 2. x este numarul principal al paginii, care este crescut numai
1 2. Lista de parametri formali contine parametri formali
1 2. La sfirsitul fisierului listing , se scriu numele variabi
1 2. FORMATUL FISIERELOR SURSA
1 2. Cod de operatie/pseudoinstructiune
1 2. Absolut+<mod>=<mod>
1 2. <mod>-<mod>=Absolut
1 2. Daca se utilizeaza intr-o expresie un simbol extern
1 2. Formatul fisierelor sursa . . . . . . . . . . . . . 8
1 1.2 CONTROALE MACRO-18
1 1.2 Controale MACRO-18 . . . . . . . . . . . . . . . . 7
1 1.1 SIRUL DE COMENZI MACRO-18
1 1.1 Sirul de comenzi MACRO-18 . . . . . . . . . . . . . 5
1 1. text TITLE este textul definit de pseudoinstructiunea TITLE
1 1. Parametrul formal trebuie sa fie un nume de simbol legal.
1 1. Fiecare linie sursa este numerotata cu un numar de
1 1. FORMATUL COMENZILOR MACRO-18
1 1. Cel putin unul din operanzi trebuie sa fie absolut
1 1. Apeluri de macroinstructiuni
1 1. <mod>-Absolut =<mod>
1 1. Referintele externe sint legale numai in operatii de
1 1. Formatul comenzilor MACRO-18 . . . . . . . . . . . 5
1 0106 C9 BAZ: RET
1 0103 C3 00 07' JMP ZOO
1 0100 CD 01 06 FOO: CALL BAZ
1 0013' C9 RET
1 0012' 72 MOV M,D
1 0011' 23 INX H
1 0010' 73 MOV M,E
1 000F' EB XCHG
1 000C' C2 0006' JNZ LOOP
1 000B' 05 DCR B
1 000A' 6F MOV L,A
1 0009' 85 ADD L
1 0008' 17 RAL
1 0007' C3 00 05 ZOO: JMP 5
1 0007' 29 DAD H
1 0006' AF LOOP: XRA A
1 0004' 06 03 MVI B,3
1 0003' 6F MOV L,A
1 0002' 66 MOV H,M
1 0001' 23 INX H
1 0000' 7E MOV A,M
1 0000' .PHASE 100H
1 /C este controlul de referinte incrucisate pentru MACRO-18.
1 .Z80 permite asamblorului sa accepte coduri de operatie Z80.
1 .XALL este similar lui .SALL cu exceptia listarii numai a
1 .SALL listeaza numai codul obiect produs de o macroexpan
1 .REQUEST <nume fisier>[,<nume fisier>...]
1 .RADIX <expresie>
1 .RADIX 16
1 .PRINTX <delimitator> <text> <delimitator >
1 .PAGE sau ori de cite ori s-a completat dimensiunea curenta a
1 .LIST si .XLIST
1 .LALL listeaza textul complet al tuturor macroexpandarilor
1 .LALL .SALL .XALL
1 .CREF si .XCREF nu au nici un efect.
1 .COMMENT <delimitator>< text ><delimitator>
1 .COMMENT *
1 .8080 permite asamblorului sa accepte coduri de operatie
1 -relativ in segmentul de date
1 -relativ in segmentul de cod
1 -numele permise pentru dispozitive sint:
1 -nume fisier reprezinta numele si extensia fisierului (sursa,
1 -filespec este o abreviere pentru specificatia de fisier formata
1 ------- -----
1 - repetare simpla REPT;
1 - repetare nedefinita IRP;
1 - repetare nedefinita caracter IRPC;
1 - asamblarea unui singur program;
1 - asamblarea unui lot de programe scrise in limbaj de
1 - Toti simbolii din program listati in ordine alfabetica.
1 - Toate numele de macroinstructiuni din program listate in
1 *T=TEST
1 *T,U=TEST/C
1 *OBJECT,TTY:=TEST
1 *LAST,LAST/C=MOD1
1 *=TEST
1 *=SOURCE.MAC
1 *,LST:=TEST
1 * fisier listing = fisier sursa
1 * , / , MOD , SHR , SHL
1 * referinta externa
1 * Pentru simboli externi
1 (valoarea blocului comun este dimensiunea sa
1 (parametrul este implicit)
1 (parametrul este implicit)
1 (in intervalul 2-16).
1 (daca a existat o astfel de pseudoinstructiune in program).
1 (daca a existat o astfel de pseudoinstructiune in program).
1 (LST:). Nu se produce cod obiect.
1 (FOO SET NAME## MVI A,2-NAME##)
1 (.PAGE 1,.RADIX 1, .PUBLIC 1,STAX H,MOV M,M ,
1 'Unterminated conditional'
1 'Unterminated REPT/IRP/IRPC/MACRO'
1 'No end statement encountered on input file'
1 ' mod cod relativ
1 ' Valoare cod relativa
1 "cod obiect realocabile". Pentru a putea incarca si executa
1 " mod date relativ
1 " Valoare date relativa
1 ! mod common relativ
1 ! Valoare COMMON relativa
1 5. MESAJE DE EROARE MACRO-18