Extras din laborator
Elementele limbajului de asamblare si formatul programelor executabile
INTRODUCERE
Scopul lucrarii este prezentarea formatului instructiunilor în limbaj de asamblare, a principalelor pseudoinstructiuni pentru lucrul cu segmente si rezervare a datelor precum si a structurii programelor executabile de tip .COM si .EXE
Elementele limbajului de asamblare TASM
Formatul instructiunilor
O instructiune se poate reprezenta pe o linie de maxim 128 caractere, având forma generala:
[<eticheta>:] [<codop>[<operanzi>][;<comentarii>]]
unde:
<eticheta> un nume, maxim 31 caractere (litere, cifre sau caractere speciale _,?,@,..), primul caracter fiind litera sau unul din caracterele speciale. Fiecare eticheta are asociata o valoare si anume adresa relativa în segmentul din care face parte
<codop> mnemonica instructiunii
<operanzi> operandul (sau operanzii) asociat instructiunii conform sintaxei cerute de aceasta. Poate fi o constanta, un simbol sau expresii continând acestea
<comentarii> un text oarecare precedat de caracterul “;”
Este permisa inserarea de linii goale si a unui numar oarecare de spatii. Aceste facilitati se folosesc pentru asigurarea lizibilitatii programului
Specificarea constantelor
Constante numerice – se prezinta sub forma unui sir de cifre, prima fiind între 0 si 9 (daca de exemplu numarul este în hexa si începe cu un caracter, se va pune un zero in fata acestuia). Baza numarului se specifica printr-o litera la sfârsitul numarului (B pentru binar, Q pentru octal, D pentru zecimal si H pentru hexa; fara o specificatie explicita, numarul se considera în zecimal).
Exemple: 010010100B, 26157Q (octal), 7362D (sau 7362), 0AB3H.
Constantele caracter sau siruri de caractere se specifica între ghilimele sau apostrofe.
Exemple: “sir de caractere”, ‘sir de caractere’
Simboluri
Simbolurile reprezinta pozitii de memorie. Acestea pot fi: etichete sau variabile. Orice simbol are urmatoarele atribute:
- segmentul în care e definit
- offset-ul (adresa relativa în segment)
- tipul simbolului (se atribuie la definire)
Etichete
Etichetele (label) se pot defini numai pe zona de program si pot fi operanzi la instructiunile CALL sau JMP
Atributele etichetelor sunt:
- segmentul (de regula CS) este adresa paragrafului unde începe segmentul care contine eticheta. Când se face referire la eticheta, valoarea se gaseste în CS (valoarea efectiva se stie numai în timpul rularii)
- offset-ul este distanta în octeti a etichetei fata de începutul segmentului în care acesta a fost definit
- tipul determina modul de referire la eticheta; exista doua tipuri: NEAR si FAR. Referirea de tip NEAR este în segment (numai offset) iar cea de tip FAR precizeaza si segmentul (segment : offset).
Etichetele se definesc la începutul liniei sursa. Daca dupa eticheta urmeaza caracterul “:” atunci va fi de tip near.
Variabile
Definirea variabilelor (eticheta de date) se poate face cu pseudooperatori de rezervare a spatiului.
Atributele variabilelor sunt:
- Segment si offset – ca si la etichete, cu deosebirea ca pot fi si alte registre segment
- tipul – este o constanta care arata lungimea (în octeti) a zonei rezervate:
BYTE(1), WORD(2), DWORD(4), QWORD(8), TWORD(10), STRUC (definita de utilizator), RECORD (2).
Preview document
Conținut arhivă zip
- L1 Conversii si operatii in baze de numeratie.doc
- L10 Utilizarea functiilor sistem.doc
- L11 Utilizarea coprocesorului matematic-final.doc
- L2 Reprezentarea interna a datelor.doc
- L3 Utilizarea Turbo Debugger.doc
- L4 Elementele limbajului si formatul programelor.doc
- L5 Instr aritmetice logice deplasare.doc
- L6 Instr transferul datelor.doc
- L7 Controlul fluxului de instr.doc
- L8 Utilizarea macrourilor si Tlib.doc
- L9 Progr mai multe seg.doc
- PLA Teme de proiecte.doc