You are on page 1of 4

MINISTERUL EDUCAIEI AL REPUBLICII MOLDOVA

UNIVERSITATEA TEHNIC A MOLDOVEI

Raport
Lucrare de laborator nr.1
La disciplina

Arhitectura Calculatorului

Tema: DESCRIEREA PACHETULUI DE PROGRAME


TURBO-ASSEMBLER

A efectuat:
Bogdan Ion

A verificat:
Colesnic

st.gr. TI-131 F/R

lector superior Victor

Sarcinalucrrii: De explicattoatemanipulrileefectuate la compilarea i


obinereafiieruluiexecutabil.Plusrezolvareaproblemelorpropusenlaborator.

PROGRAMUL

1. .model small
2. .stack 100
3. .data
4. tabeldb 1, 2, 3, 4, 5, 10 dup(?)
5. tabelldw 1, 2, 3, 12H, 12
6. tabel2 dd 1, 2, 1234H
7. tabel3 dq 1, 2, 12345678H
8. tabel4 dt 1, 2 1234567890H
9. .code
10.mov ax, @data
11.mov ds, ax
12.mov ax, 14h
;adresareimediata
13.mov ax, 14
14.mov al, tabel
;adresaredirecta
15.mov al, tabel[l]
;adresaredirecta
16.mov ax, word ptrtabel ;adresaredirecta - operatorulptreste
17.mov ax, word ptrtabel[2]
;tabelfiinddefinit cu directiva DB
18.mov bx, offset tabel
19.mov al, [bx+1] ;adresareindirecta
20.mov al, [bx]
;adresareindirecta
21.mov bx, 5
22.mov al, tabel [bx];adresarebazata
23.mov si, 1
24.mov al, [bx][si] ;adresarebazataiindexata
25.mov si, 6
26.mov byte ptr [bx][si],2 ;adresarebazatai indexata
27.mov bp, offset tabel
28.mov al, [bp]
;adresarebazata cu deplasamentnul
29.mov byte ptr ds:[bp][si][1], 7
30.mov word ptr ds:[bp][si][1], 19H
;adresarebazatasiindexata
31.mov ah, 4ch
32.int
21h
33.end start

PROBLEMELEPUSEPENTRUREZOLVARE:
1. naplicaia de maisus, care suntinstruciunile care modificconinutuluneilocaii de memorie?
2. naplicaia de maisuss se determine care esteadresa la care se ncarcsegmentul de date.
Pentruaceasta se vorexecutaprimeledouinstruciuni ale programului.
3. Pentruaplicaia de maisuss se specificepentrufiecarezon a programului (date, cod, stiv) care
esteadresa de segment i care esteadresa de offset la nceputulexecuieiprogramului.
4. Pentruaplicaia de maisuss se determine care esteadresafizic a locaiei de memorie la care se
memoreazvaloarea 5 din tabel. Fiecare student vadeterminaaceastadrespentrucontextul de

pecalculatorulpe care lucreaz.


5. Pentruaplicaia de maisuss se determine cioctei s-au alocatpentrumemorareadatelor. S se
verificeinumrndoctetiinfereastra Dump.
6. Specificaiadresaefectiviadresafizic a locaiei de memoriemodificat de instruciunile:

7.

mov
byte ptr [bx][si], 2
mov byte ptr ds: [bp] [si] [ 1 ], 7
mov
word ptr ds:[bp][si][l], 19H
Motivaiapariiavalorii (nloc de 01H) nregistrul AL, nurmaexecuieiinstruciunii:
mov

al, [bp].

ETAPELEREALIZRIIUNUI PROGRAM:
@echo off
tasm %1.asm
tlink %1.asm
del %1.obj

1. Editarea (crearea, scrierea) programului


2. Stocareantr-un fiiersurs ("nume_fisier.ASM")
3. Asamblare cu TASM (Borland) sau MASM (Microsoft)
4. Rezultfiierulobiect ("nume_fisier.OBJ"), fiierul listing ("nume_fisier.LST"),
fiierulreferin ("nume_fisier.CRF")
5. Editare de legturi (link edit)
6. Rezult fiierul executabil
7. Etapa de depanare (debug), prinexecuiirepetate ale fiieruluiexecutabil, n diverse condiiisau
cu diverse alte date de intrare
Astfeltrebuie de creat un fiiernou:Creai un fiier text nou, care saibextensia .bat
.Exemplucompile.bat. Deschid cu Notepad sau cu Notepad++ iscriuacolo:
tasm /zi %1
tlink /v %1
td %1
Dupastadeschid TD.exe ideschidfiierulmeudupaceeadau la compilare.

REZULTATELE:
1. InstruciuneaOffsetmodificconinutuluneilocaii de memorieurmat de coninut.
2. ncarcsegmentul de dateword ptr ds:[bp][si][1], 19Hbyte ptr ds:[bp][si][1], 7 adic DS:
esteinstruciunea care incarc un segment de date.
3. Adresa de segment de date -DS (datasegment), adresa de offset-mov al, tabel[l]
4. Adresafizic a locaiei de memorie la care se memoreazvaloarea 5 din tabel-mov bx, 5
5. Saufolosit 2 octei de la ax, word ptrtabelunde word are 2 octeti

6. mov
byte ptr [bx][si], 2
;mov byte ptr ds: [bp] [si] [ 1 ], 7
7. El definetencazuln care codulmain este de a
plasa nmemorie. nceeaceprivete ORG 100h aceasta se refer
la format 80x86programul COM care constau dintr-un singur segment de
max. 64Kbytes. 100h spune c codulmain pornete de la adresa (offset) 100h n acest
segment, adresaefectiv este CS: 100h. Pentru format com diferena estentotdeauna 100h. Presup
unc se adreseaz de la 0 la 100h arputea fi utilizate de ctre BIOS-ul, dareu nu sunt sigur c. Un
alt exemplu este ORG 7C00H pentruformatul exe program
de intel.SiadicaaparevaloareaooHpentruca are valoarea minima.

CONCLUZIE:
Pachetul de programe Turbo-Assembler pune la
dispozitiautilizatoruluitoateinstrumentelenecesarepentrudezvoltareaprogramelor in limbaj de
asamblare.Macroasamblorul TASMproduce module obiectrelocabile din fisieresursa in limbaj de
asamblare.Pentruaceste module obiect se pot editalegaturile cu programul TLINK in scopulcrearii de
programeexecutabile sub sistemul de operare DOS.Pachetulcuprinde:
1.
macroasamblorul TASM;
2.
editorul de legaturi TLINK;
3.
bibliotecarul TLIB;
4.
depanatorul simbolic TD.