Documentația calculatorului

Segmentarea structurii programelor

Exemplul 1-1. Un program simplu cu trei segmente


Indicăm corespondența dintre registrele segmentate și segmente


; Vom descrie segmentul de comandă








cod segment; Deschideți segmentul de comandă


începe: mov AX, date; Configurați DS


mov DS, AX; pe segmentul de date;


Să afișăm o linie de text


mov AN, 09h; funcția de afișare DOS pe ecran


int 21h; sunați la DOS


mov AX, 4C00h; funcția DOS de terminare a programului


int 21h; sunați la DOS


codul se termină; închideți segmentul de comandă


; Vom descrie segmentul de date


segment de date; Deschideți segmentul de date


msg db "Programul funcționează!"; Șirul de ieșire


datele se termină, închideți segmentul de date


Să descriem segmentul de stivă


stk seg segment; Deschideți segmentul de stivă


db 256 dup (?); alocăm 256 octeți pentru stiva


stk termină, închideți segmentul de stivă


sfârșitul începe; sfârșitul textului cu punctul de intrare

mov AX, date; Configurați DS


mov DS, AX; pe segmentul de date






Cheie / Z permite ieșirea la o sursă de program de linii de afișare de text în care asamblorul găsit de eroare (fără această căutare cheie ar trebui să efectueze eroare pentru o listare de difuzare).
Comutatorul / zi controlează includerea informațiilor în fișierul obiect care nu este necesar atunci când se execută programul, ci este folosit de depanator.
Comutatorul / n suprimă listarea simbolurilor simbolice în program, ceea ce reduce într-o oarecare măsură conținutul informațiilor
dar dimensiunea sa este redusă.
Parametrii care urmează stabilesc numele fișierelor: sursă (P.ASM), obiect (P.OBJ) și listă (P.LST). Este posibil să doriți să apelați în compilatorul linie pentru a specifica numele complete de fișiere cu extensiile lor, dar acest lucru nu este necesar, deoarece compilatorul implicit utilizează un extensiile de nume enumerate mai sus.
Linia de apel a linkerului este după cum urmează:

Comutatorul / x suprimă formarea unei liste de layout-uri, care de obicei nu este necesară.
Comutatorul / v trimite informații la fișierul de boot utilizat de depanator. Parametrii de mai jos indică numele modulelor: obiect (R.Ob) și boot (R.EXE).
Ca și în studiul acestei cărți, va trebui să scrie și depana un număr mare de programe, este recomandabil să se creeze un fișier batch (numit, de exemplu, A.VAT) care automatizează executarea de același tip de operațiuni de difuzare și de aspect. Textul de fișier batch în forma sa cea mai simplă poate fi atât (presupunând că calea către directorul cu pachetul TASM a fost listat în parametrul de comandă PATH):

Executarea unui program pregătit de R.EXE este efectuat de comanda .p.exe sau pur și simplu
Când programul este încărcat, segmentele sunt plasate în memorie, așa cum se arată în Fig. 1.9.

Fig. 1.9. Imaginea programului în memorie.







Articole similare

Trimiteți-le prietenilor: