luni, 4 iulie 2016

Definirea şi iniţializarea datelor "asamblare".

Definirea şi iniţializarea datelor
Constante
O constantă este un simplu nume asociat unui număr şi nu are caracteristici distinctive.
Tip Reguli Exemple
binare secvenţe de 0, 1 urmate de B sau b 11B, 1011b
octale secvenţe de 0÷7 urmate de O sau Q 777Q, 567O
zecimale secvenţe de 0÷9 opţional urmate de D sau d 3309, 1309D
hexazecimale secvenţe de 0÷9 şi A÷F urmate de H sau h 55H, 0FEh
ASCII şir de caractere ‘BC’
Constantele pot apare explicit în program:
 mov ah, 5
 mov ax, 256
sau ca valori asignate unor simboluri (constante simbolice):
 five equ 5
 mov ah, five
Variabile
Variabilele identifică datele manipulate, formând operanzi pentru instrucţiuni. Se definesc utilizând
directivele DB, DW, DD, DQ, DT. Aceste directive alocă şi iniţializează memoria în unităţi de octeţi,
cuvinte, dublu cuvinte, etc.
nume directivă lista_de_valori
Numelui variabilei i se asociază următoarele atribute:
• segment: variabilă asociată cu segmentul curent
• offset: variabilă asignată offset-ului curent faţă de începutul segmentului
• tip: 1 octet pentru DB, 2 octeţi pentru DW, etc.
Lista de valori poate cuprinde:
• expresie constantă
• caracterul ? pentru iniţializări nedeterminate
• expresie de tip adresă
• un şir ASCII cu mai mult de două caractere (numai cu directiva DB)
• expresie DUP (expresie1 [, expresie2, …])
Etichete
Etichetele identifică cod executabil, formând operanzi pentru CALL, JMP sau salturi condiţionate. O
etichetă poate fi definită:
• prin numele etichetei urmat de caracterul : - se defineşte astfel o etichetă de tip near
nume_etichetă:
Ex.: eticheta: mov ax, bx
• prin directiva LABEL, cu forma generală
nume label tip
Dacă ceea ce urmează reprezintă instrucţiuni (cod), tipul etichetei va fi NEAR sau FAR şi eticheta va fi
folosită ca punct ţintă în instrucţiuni de tip JMP/CALL. Daca ceea ce urmează reprezintă definiţii de
date, tipul etichetei va fi BYTE, WORD, DWORD, etc.
De exemplu, în urma definiţiei:
alfab label byte
 alfaw dw 1234H
o instrucţiune de forma mov al, alfab va pune în AL octetul mai puţin semnificativ al cuvântului (34H).
• prin directiva PROC, numele procedurii fiind interpretat ca o etichetă cu tipul derivat din tipul
procedurii (NEAR sau FAR). Forma generală a unei proceduri este:
nume_proc proc tip
 …
nume_proc endp

Niciun comentariu:

Trimiteți un comentariu