Utilizați segmente de asamblare - studopediya

Odată ce a existat o întrebare cu privire la difuzarea de părți ale programului există problema de modul în care funcționează aceste părți. În corectitudine trebuie remarcat faptul că, chiar și atunci când nu ne gândim la segmentele, două segmente ale programului este: memorie de program și de date de memorie. Dacă te uiți atent la program, veți găsi că, în plus față de instruirea în magazinele de memorie program de constante, adică în memoria de program sunt dispuse cel puțin două segmente: software și date. Alternanta programului și a datelor poate duce la consecințe nedorite. Din cauza orice date motiv poate fi accidental efectuată ca program software sau invers pot fi primite și procesate ca date.

Utilizați segmente de asamblare - studopediya

Figura V.3.1. Divizarea de memorie program și memorie de date segmente.

Motivele menționate mai sus conduc la faptul că este de dorit să se distingă clar de cel puțin trei segmente:

Pentru a determina absolute segmentele de memorie utilizate de directivă:

CSEG - un segment absolut în memoria programului

DSEG - segment absolut în memoria internă a datelor

XSEG - segment absolut în memoria de date externe

Figura V.3.3. Directivele Exemplul CSEG folosesc pentru a se potrivi rutina de întrerupere de servicii.

Directiva segment permite să specificați numele segmentului și zona de memorie care va găzdui segmentul de memorie. Pentru fiecare cuvânt cheie de memorie Locul de amplasare specificat:

· Xdata - plasarea unui segment în memoria externă de date;

· Codul - plasarea unui segment în memoria programului;

idata segment _data

În acest exemplu buferKlav șir declarat, format din opt variabile octet. În plus, în acest exemplu, variabila este declarată VershSteka, care corespunde ultima locație de memorie, care este utilizat pentru a stoca variabile. Variabila VershSteka poate fi folosit pentru inițializare pointer stivă pentru a aloca un teanc de cantitatea maximă utilizabilă de celule de memorie internă. Acest lucru este necesar pentru a evita o depășire de stivă atunci când apelați subrutine imbricate.

bit _bits segment