Top 10k strings from asmdoc.doc in <root> / doc / technical / specifications / CPMDOC.zip /
Back to the directory listing
20 Ghid de utilizare asamblor ASM
20
3 L ! ! ! ! ! ! ! ! ! ! ! R
2 unitatea specificata)
2 Times New Roman
2 - numele unitatii de disc pe care se va genera
2 - litera "Z" care indica faptul ca se solicita
1 zii instructiunii fiind implicit inlocuiti
1 zecimal (D) sau hexazecimal (H). Orice constanta
1 zator in program, sau
1 za fisierul listing (astfel, nu este obligatoriu sa se listeze
1 vor fi asamblate. Daca valoarea rezultata este zero, atunci
1 vele EQU sau SET.
1 valorile corespunzatoare expresiilor "exp(1)",..."exp(n)"
1 va produce un mesaj de eroare, intrucit valoarea 0FFFFH nu poate
1 unde instr(i) contine:
1 unde exp(i) este o expresie a carei valoare incape pe 8 biti
1 unde c(i) sint cifre apartinind bazei de numaratie "b",
1 unde "eticheta" este un sir de maximum 16 caractere alfanumerice,
1 unde "exp(i)" este o expresie a carei valoare incape pe 16
1 tiv (operan
1 tine si caracterul "$", care nu este tratat de ASM (il ignora),
1 timpul asamblarii.
1 terului ";" si care se termina la sfirsitul liniei curente
1 terul ' poate apare intr-o constan
1 terul "!"). Acest cimp este citit de asamblor, este listat in
1 tea specificata si sa produca la iesire:
1 tata pe 16 biti. Daca reprezentarea constantei
1 ta (literele B, O, Q, D sau H). In absenta lui "b",
1 ta sir prin dublarea lui. Valoarea unui caracter
1 ta binara,
1 suprimarea generarii fisierului listing.
1 suprimarea generarii fisierului cod-obiect.
1 sub un nume egal cu "nume-fisier" si cu extensie standard ".ASM".
1 sub CP/M egala cu 100H care reprezinta inceputul zonei TPA).
1 structiunea/directiva
1 stantelor se pot folosi caracterele "$"
1 specificat.
1 spatiul-disc si reluat procesul de asamblare).
1 siilor "exp(1)",..."exp(n)" pe cite doi octeti fiecare.
1 sie este utilizata intr-o instructiune ADI, atunci primii 8
1 si operatori. Expresiile sint evaluate de asamblor in timpul
1 si care trateaza fisiere sursa in limbaj de asamblare rezi
1 sfirsit logic de linie (sfirsit de
1 seste 16 biti, automat se trun
1 se fisierele care nu mai sint utile si apoi reape
1 se considera "b"="D". O constanta hexa trebuie sa
1 scrisa pe o singura linie (fizica !) si sa aiba maximum
1 sarea la stinga a valorii "a" cu
1 rului nu este ASM.
1 rele apostrof ('). O constanta sir trebuie sa fie
1 rea la dreapta a valorii "a" cu "b"
1 ranzi (etichete, constante numerice, cuvinte rezervate sau siruri
1 ramase libere se completeaza impli
1 rale sau coduri de
1 racterul $ trebuie sa apara separat prin
1 programului sursa.
1 programului (aceasta "adresa" va fi inscrisa in ultima
1 procesului de asamblare ca valori pe 16 biti.
1 prin directiva SET pina in momentul in care i se va atribui
1 pozitii binare (pozitiile ramase
1 pe disc, in urma procesului de asamblare rezultind un fisier cod-
1 pe cite un octet fiecare. "Exp(i)" pot fi si constante-sir,
1 pasi succesivi de parcurgere de catre asamblor a
1 parametrul p1 si sa genereze sau nu fisierele cod-obiect/listing,
1 p3 - poate fi:
1 p2 si p3. Semnificatia parametrilor este:
1 p2 - poate fi:
1 p1 - poate fi o litera (A - P), care indica numele unitatii
1 ordinea: * / MOD SHL SHR - + NOT AND OR XOR
1 operator utilizare semnificatie
1 operanzilor implicati in instructiuni. Daca, de exemplu, o
1 octeti (cu "n" egal cu valoarea expresiei).
1 obtinerea fisierului listing la consola;
1 obiect (cod-masina 8080) in format hexa (compatibil INTEL) si un
1 o noua valoare, printr-o alta directiva SET.
1 numerica reprezinta o valoare pe 16 biti.
1 numele fisierului sursa specificat in comanda este ero
1 nume-fisier.PRN (pe discul instalat sau pe
1 nume-fisier.HEX (pe discul instalat sau pe
1 nume$lung sau data$foarte$lunga).
1 numar-linie eticheta cod-operatie operand ;comentariu
1 nu poate fi plasat in zona de date specificata.
1 nr.linie eticheta instr(1) ! instr(2) ! . . . instr(n) (CR)(LF)
1 nat (de exemplu contine caracterul "?" sau "*").
1 narea executiei programului ASM.
1 n vor fi ignorate de asamblor
1 mata constan
1 ma este de 2 caractere.
1 lui "b" (toti bitii "0" din "b"
1 logici: NOT AND OR XOR SHL SHR
1 listing. Ele apar tiparite si la consola, pe masura ce se gene
1 listing) nu pot fi scrise pe disc (in majoritatea
1 linie sursa n
1 linie sursa 2
1 linie sursa 1
1 libere se completeaza cu zerouri).
1 lat asamblorul.
1 la care asamblorul va genera cod-obiect);
1 instructiunile din liniile 1
1 instructiuni 8080 cu valoare asociata
1 instructiuni masina care au valori prestabilite.
1 instructiune).
1 inregistrare a fisierului hexa generat de asamblor). Daca
1 indica sfirsitul unui program sursa in limbaj de asamblare
1 incorect construit.
1 inceapa intotdeauna cu o cifra. Orice constanta este
1 in functie de optiunea utilizatorului, exprimata prin parametrii
1 in comanda, este fie incorect introdus fie tipul fisie
1 iar "b" reprezinta baza in care este expri
1 generarea codului obiect in fisierul B:PROG.HEX si listare pe
1 formatul general, sau toate aceste elemente.
1 formata de asamblor intr-o constan
1 fisierul: nume-fisier.ASM aflat pe discul instalat sau pe unita
1 fisierul: nume-fisier.ASM aflat pe unitatea specificata prin
1 fisierul/fisierele de iesire (cod-obiect si/sau
1 fisierul sursa specificat in comanda nu poate fi citit
1 fisierul listing dar nu este interpretat de asamblor.
1 fisierul listing (A - P);
1 fisierul de iesire nu poate fi inchis: trebuie verifi
1 fisierul cod-obiect (A - P);
1 fisierul listing pentru aflarea eventualelor erori in programul
1 fisierul "director" al discului este plin; trebuie
1 fisier listing.
1 fi reprezentata pe 8 biti, in timp ce instructiunea:
1 fel cu MVI A,40H).
1 expresiei.
1 executie" a programului va fi 0000H.
1 executie a programului);
1 evalueaza "expresie" si atribuie aceasta valoare simbolului
1 evalueaza "expresie" si rezerva o zona de memorie de "n"
1 evalueaza "expresie" si daca valoarea rezultata este
1 evalueaza "expresie" si atribuie valoarea simbolului
1 evaluata (trebuie simplificata !).
1 evaluata si va reprezenta "adresa de lansare in executie" a
1 etichete carora li s-au atribuit valori prin directi
1 eticheta in programul respectiv.
1 eticheta SET expresie
1 eticheta EQU expresie
1 este compatibila cu tipul de instructiune.
1 este acceptata de ASM, intrucit anuleaza primii 8 biti ai
1 eroarea.
1 ele prin caracterul "!". Este deci, acceptata forma gene
1 el folosind doar pentru cresterea lizibilitatii etichetelor
1 egali cu zero. Astfel, instructiunea:
1 egala cu valoarea expresiei (de obicei aceasta valoare este
1 dintr-un sir este egala cu codul ASCII corespunzator
1 dintr-o succesiune de linii sursa care au formatul gene
1 diferita de zero, atunci instructiunile din liniile 1
1 devin "1" si toti bitii "1" din "b"
1 devin "0")
1 determina generarea codului obiect incepind de la adresa
1 de disc pe care se gaseste fisierul sursa.
1 de apel al asamblorului. Aceste mesaje de eroare sint:
1 de 1 sau 2 caractere ASCII) sau subexpresii incluse intre paran
1 dar nu este tratata de catre acesta (este neimplementa
1 cuvinte rezervate
1 curenta. Ca
1 cu valoarea 0 (zero)). (ex: MVI A,MOV se asambleaza la
1 cu primul caracter obligatoriu alfabetic. Acest cimp poate con
1 cu lungime maxima de 64 caractere. Fiecare caracter din
1 corect de catre asamblor; trebuie utilizata comanda
1 contine una sau mai multe instructiuni/directive, separate intre
1 context (poate fi eticheta dubla).
1 constante sir
1 constante numerice
1 constanta-sir va fi generata pe cite un octet (in cod ASCII).
1 consola.
1 considerata "linie comentariu" si nu este tratata de asam
1 comenzile:
1 cod-operatie operanzi [ ;comentariu ]
1 cit cu zerouri).
1 chiaza la dreapta.
1 cere asamblarea programului aflat in fisierul sursa B:PROG.ASM,
1 cazurilor din lipsa de spatiu-disc; trebuie eliberat
1 cat daca exista disc in unitate si daca acesta nu este
1 c1c2...cnb
1 blare (si optional, adresa de lansare automata in
1 blancuri de identificatorii din context.
1 biti. Directiva genereaza valorile corespunzatoare expre
1 biti ai valorii expresiei (cei mai semnificativi) trebuie sa fie
1 asamblorului ASM. Directivele acceptate de ASM sint:
1 asamblorul nu poate sa gaseasca fisierul sursa
1 asamblor). Daca "expresie" este prezenta, atunci ea va fi
1 aritmetici: + - * / MOD ( ) + (unar) - (unar)
1 a+b*c = a+(b*c)
1 a*b+c = (a*b)+c
1 a lui "a" la "b"
1 a directivelor acceptate de asamblorul ASM.
1 a OR b AND NOT c+d SHL e = a OR (b AND (not (c+(d SHL e))))
1 a MOD b*c SHL d = ((a MOD b)*c) SHL d
1 [eticheta] ORG expresie
1 [eticheta] END [expresie]
1 [eticheta] DW exp(1),...exp(n)
1 [eticheta] DS expresie
1 [eticheta] DB exp(1),...exp(n)
1 ZapfDingbats
1 ZapfChancery
1 XOR a XOR b "sau-exclusiv"logic intre "a"si"b"
1 Valoarea calculata a unei expresii trebuie sa corespunda lungimii
1 V eroare de valoare: operandul intilnit in expresie este
1 Un program in limbaj de asamblare, acceptat de ASM, este alcatuit
1 U eticheta nedefinita: specificatorul fisierului sursa,
1 TYPE pentru a determina locul din fisier in care apare
1 Semnificatia acestor operatori este:
1 SUB RAL DCR
1 STAX DAD ANI
1 STA NOP ORI
1 SPHL STC
1 SP cu valoare asociata 6
1 SOURCE FILE READ ERROR
1 SOURCE FILE NAME ERROR
1 SHR a SHR b valoarea care rezulta prin deplasa
1 SHLD HLT XRI
1 SHL a SHL b valoarea care rezulta prin depla
1 SET atribuie valori temporare unui simbol;
1 SBB RAR DCX
1 S eroare de sintaxa: expresia este incorect construita.
1 R/O; aceasta este o eroare fatala care determina termi
1 R eroare de registru: valoarea specificata ca registru nu
1 PSW cu valoare asociata 6
1 P eroare de faza: eticheta nu are aceeasi valoare in doi
1 Orice constanta numerica se scrie sub forma:
1 Operatorii pot fi:
1 Operanzii pot fi:
1 OUTPUT FILE WRITE ERROR
1 ORG stabileste originea programului (adresa incepind de
1 OR a OR b "sau" logic intre "a" si "b"
1 O linie care incepe cu caracterul ";" sau "*" in coloana 1 este
1 O linie poate contine oricare din elementele specificate in
1 O depasire: expresia este prea complexa pentru a putea fi
1 NewCenturySchlbk
1 NOT NOT b complementul fata de 1 al valorii
1 NO SOURCE FILE PRESENT
1 NO DIRECTORY SPACE
1 N neimplementat: directiva este recunoscuta de asamblor
1 MVI PUSH XCHG
1 MS LineDraw
1 MOV POP DAA
1 MOD a MOD b restul impartirii intregi a lui
1 MNEMONICE 8080
1 M cu valoare asociata 6
1 Lansarea in executie a programului ASM se face prin una din
1 LXI XTHL CMA
1 LHLD OUT ACI
1 LDAX IN ADI
1 LDA EI SUI
1 L cu valoare asociata 5
1 L eticheta eronata: eticheta nu poate apare in acest
1 JZ CZ RZ
1 JPO CPO RPO
1 JPE CPE RPE
1 JP CP RP
1 JNZ CNZ RNZ
1 JNC CNC RNC
1 JMP CALL RET
1 JM CM RM
1 JC CC RC
1 In scrierea con
1 In ambele cazuri, programul ASM presupune ca fisierul de asamblat
1 In ANEXA 1 este prezentata lista completa a mnemonicelor 8080 si
1 In fiecare din cazurile prezentate, "a" si "b" reprezinta ope
1 IF directiva pentru asamblare conditionata;
1 IF expresie
1 Helvetica-Condensed
1 H cu valoare asociata 4
1 Forma (2) precizeaza ca asamblorul va trata ca fisier sursa
1 Forma (1) precizeaza ca asamblorul va trata ca fisier sursa
1 Fiecare linie se termina prin caracterele (CR)(LF). O linie poate
1 Evaluarile tuturor expresiilor se realizeaza in faza de asamblare
1 Evaluarea expresiilor se face astfel:
1 Este un cimp optional, care are forma:
1 Este un cimp optional ce reprezinta numarul liniei sursa
1 Erorile sint semnalate prin urmatoarele coduri:
1 Erorile detectate de asamblor apar in prima coloana a fisie
1 EQU atribuie valori unui simbol;
1 ENDIF sfirsit asamblare conditionata;
1 END indica sfirsitul unui program sursa in limbaj de asam
1 E cu valoare asociata 3
1 E eroare de expresie: expresia nu poate fi evaluata in
1 Default Paragraph Font
1 De exemplu comanda:
1 Daca eticheta exista, ii atribuie valoarea "expresiei".
1 Daca "exp(i)" este o constanta-sir, atunci lungimea ei maxi
1 DW generare date de lungime egala cu doi octeti fiecare;
1 DS rezerva o zona de memorie.
1 DIRECTIVE ACCEPTATE DE ASM
1 DI SBI
1 DB generare date de lungime egala cu un octet fiecare;
1 D cu valoare asociata 2
1 D eroare de data: un element din datele instructiunii
1 Courier New
1 Caracterul "!" este tratat de catre ASM drept
1 CANNOT CLOSE FILE
1 C cu valoare asociata 1
1 B cu valoare asociata 0
1 AvantGarde
1 Astfel, exista urmatoarele cuvinte rezervate:
1 Asamblorul ASM semnaleaza erori, datorate unor comenzi inco
1 Acest cimp contine, in general, expresii alcatuite din ope
1 Acest cimp poate contine o mnemonica 8080 sau o directiva a
1 Acest cimp contine orice sir de caractere care urmeaza carac
1 ATranslated by WordPort from WordStar 3.x, 4.0 document asmdoc.txt
1 ASM PROG.BBX(CR)
1 ASM este un asamblor care lucreaza sub sistemul de operare CP/M
1 AND a AND b "si"logic intre "a" si "b"
1 ADI (-1) AND 0FFH
1 ADI -1
1 ADD RLC INR
1 ADC RRC INX
1 A N E X A 1
1 A cu valoare asociata 7
1 64 caractere. Carac
1 3. MESAJE DE EROARE ASM
1 2.5 CIMPUL "comentariu"
1 2.4.2 Operatori
1 2.4.1 Operanzi
1 2.4 CIMPUL "operand"
1 2.3 CIMPUL "cod operatie"
1 2.2 CIMPUL "eticheta"
1 2.1 CIMPUL "numar linie"
1 2. FORMATUL FISIERULUI SURSA
1 10+20 10H+37Q A1/3 (A2+4) SHR 3 ('A' AND 5FH)+'0'
1 1. PREZENTARE GENERALA
1 1), adica rezulta valoarea 0FFFFH.
1 / a / b impartire intreaga (fara semn)
1 --------------- --------------- --------------
1 -------------- ---------------- -------------
1 ------------- --------------- --------------
1 - sint siruri de caractere ASCII incluse intre caracte
1 - pot fi etichete definite de utili
1 - pot fi exprimate in binar (B), octal (O sau Q),
1 - litera "X" care indica faptul ca se solicita
1 - intii parantezele cele mai interioare
1 - codul-masina corespunzator tipului instructiune respec
1 - apoi,in cadrul unei paranteze sau in absenta acestora, in
1 - adresa la care va fi generata in
1 - acestea sint nume de registre gene
1 - (unar) - b identic cu "0 - b"
1 - a - b scadere fara semn a lui "b" din "a"
1 + (unar) + b identic cu "b"
1 + a + b adunare fara semn a lui "a" cu "b"
1 * a * b inmultire fara semn a lui "a" cu "b"
1 (valoarea expresiei are primii 8 biti nuli) si genereaza
1 (nu se va genera cod pentru ele).
1 (liniile aflate dupa aceasta directiva nu vor fi tratate de
1 (ignorate de asamblor) pentru a creste lizibilitatea
1 (fisier sursa in limbaj de asamblare 8080) se gaseste pe disc,
1 (exprimat in zecimal). Asamblorul ignora acest cimp.
1 (ex: 33$FF$44H).
1 (caracterele (CR)(LF)) sau la sfirsitul logic al liniei (carac
1 (ca operatii pe 16 biti fara semn). Astfel, (-1) este evaluat ca
1 (a OR b) AND (not c)+d SHL e = (a OR b) AND ((NOT c)+(d SHL e))
1 (2) fisierul listing:
1 (2) eticheta:
1 (2) ASM nume-fisier.p1p2p3(CR)
1 (1) fisierul cod obiect (format hexa):
1 (1) eticheta
1 (1) ASM [nume-unitate]nume-fisier(CR)
1 ('B'+B) OR (PSW+M) (1+(2+C)) SHR (A-(B+1))
1 "expresie" nu este prezenta, atunci "adresa de lansare in
1 "eticheta". Simbolul "eticheta" nu trebuie sa mai apara ca
1 "eticheta". Simbolul "eticheta" va avea valoarea atribuita
1 "b" pozitii binare (pozitiile
1 "a" la "b"