Asamblarea și Însușirea Programelor

Previzualizare laborator:

Extras din laborator:

1. Scopul lucrarii:

a) Însuşirea ciclului întreg de asamblare a programelor.

b) Însuşirea sistemelor de comenzi şi metodele de adresare a operanţilor procesoarelor în regim real cu ajutorul lui Turbo Debugger.

2. Efectuarea lucrarii:

a1) Codul sursă al programului cu directive simplificate

de segmentare:

title Program_EXE

DOSSEG

.MODEL small

.STACK 512

; segmentul de date

.DATA

cr equ 10

lf equ 13

Lista1 DB ‘Programul a fost efectuat’,lf,cr,’$’

;segmentul de program (cod)

.CODE

;punctual de intrare

Program_Start:

mov ax,@DATA

mov ds,ax

mov dx,offset Lista1

mov ah,09h

int 21h

;sfirsim programul cu reluare

;in sistemul de operare

mov ah,4ch

int 21h

END Program_Start

a2) Teorie:

La culegerea codului sursă al programului de pe tastatura pot fi utilizate atît caracterele mari cît şi mici;

Prima directivă din textul programului-Title –dă posibilitatea de a-i acorda programului un titlu de text. Programul este alcătuit din trei segmente: de stivă, date şi programe.

Segmentarea este realizată de directivele: stack, data şi code. Directiva stack n alocă o zonă avînd lungimea n şi care este segmentul de stivă, “.stack 512” va aloca un segment de lungimea 512 octeţi sau (200h).

Dacă scriem o procedură ce va fi apelată dintr-un limbaj evaluat, atunci segmentul de stivă va fi declarat de cătreprogramul apelator, “.DATA” ea semnalizează despre începutul segmentului de date iniţializate din program, dar mai iniţial e necesar de utilizat directive Model În DOS sunt posibile şase modele de memorie. Prin model noi înţelegem de fapt un mod de dispunere în memoria RAM a segmentelor care alcătuiesc un program:

foarte mic- model tiny LP+LD+LS<64Ko

mic-model small LP<64Ko şi LD+LS<64Ko

mediu-model medium 64Ko<=LP<1Mo şi LD+LS<1Mo

compact-compact LP<64Ko şi 64Ko<=LD+LS<1Mo

mare-large 64Ko<=LP<1Mo şi 64Ko<=LD+LS<1Mo

foarte mare-huge ,

directiva Model trebuie plasată înaintea directivelor stack, code, data.

Directiva code determină începutul codului de program. Inişial e necesar de utilizat directiva Model pentru determinare modelului de memorie. La code se poate de inclus şi un parametru „nume” pentru model mare sau mediu. Simbolul @data primeşte adresa segmentului de date.

Programul, de obicei, constă din proceduri ce sporeşte gradul de concretizare a programului. Procedurile sunt anunţate de catre directiva PROC si sunt închise cu directiva ENDP. înaintea ambelor este indicat un parametru -numele procedurii.

De exemplu: DELAY PROC NEAR

;instrucşiunile procesorului

ret

DELAY ENDP

În continuare este utilizată una din funcţiile de serviciu al întreruperii 21h-09h (afişarea mesajului pe ecranul display-ului.). Aceasta funcţie necesită ca în registrul AH să fie încarcat numărul funcţiei apelate:

mov ah,09h

în registru DS:DX se încarcă adresa mesajului ce va fi afişat:

mov DX, offset Lista1

şi este apelată întreruperea 21h:

int 21h

Mai menţionăm faptul că mesajul ce trebuie afişat cu ajutorul acestei funcţii trebuie să se sfîrşească cu caracterul ‚$’

Textul programului se încheie cu apelul funcţiei 4ch, ce îndeplineşte funcţia de revenire la sistemul de operare DOS.

Directiva END din sfîrşitul programului sfîrşeşte asamblarea programului.

Observații:

Laboratoare Asamblarea si Insusirea Programelor: 1, 2, 4

Download gratuit

Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.

Structură de fișiere:
  • Asamblarea si Insusirea Programelor
    • lab_asm_1.doc
    • lab_asm_2.doc
    • lab_asm_4.doc
Alte informații:
Tipuri fișiere:
doc
Nota:
8/10 (1 voturi)
Nr fișiere:
3 fisiere
Pagini (total):
23 pagini
Imagini extrase:
23 imagini
Nr cuvinte:
3 249 cuvinte
Nr caractere:
17 890 caractere
Marime:
42.67KB (arhivat)
Publicat de:
NNT 1 P.
Nivel studiu:
Facultate
Tip document:
Laborator
Domeniu:
Limbaje de Programare
Predat:
la facultate
Materie:
Limbaje de Programare
Profesorului:
Colesnic Liviu
Sus!