Document, comentariu, eseu, bacalaureat, liceu si facultate
Top documenteAdmitereTesteUtileContact
      
    


 


Ultimele referate adaugate

Adauga referat - poti sa ne ajuti cu un referat?

Politica de confidentialitate



Ultimele referate descarcare de pe site
  CREDITUL IPOTECAR PENTRU INVESTITII IMOBILIARE (economie)
  Comertul cu amanuntul (economie)
  IDENTIFICAREA CRIMINALISTICA (drept)
  Mecanismul motor, Biela, organe mobile proiect (diverse)
  O scrisoare pierduta (romana)
  O scrisoare pierduta (romana)
  Ion DRUTA (romana)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  Starea civila (geografie)
 

Ultimele referate cautate in site
   domnisoara hus
   legume
    istoria unui galban
   metanol
   recapitulare
   profitul
   caract
   comentariu liric
   radiolocatia
   praslea cel voinic si merele da aur
 
despre:
 
Prezentare Turbo Debugger - PROGRAMAREA IN LIMBAJ DE ASAMBLARE
Colt dreapta
Vizite: ? Nota: ? Ce reprezinta? Intrebari si raspunsuri
 
Prezentare Turbo Debugger: facilitati, mod de utilizare ; Unitate centrala 8086:registre, flaguri, memorie. Moduri de adresare. Spatii de adresare. Sintaxainstructiunilor in limbaj de asamblare. Formatul intern al instructiunilor.Implementare de instructiuni in Turbo Debugger.

1. Prezentare Turbo Debugger

Utilitarul Turbo Debugger este un produs al firmei Borland, destinatdepanarii aplicatiilor scrise in mediile de programare Borland, avind siposibibilitate de interfatare cu programe scrise in Microsoft (C, ASM).

Trasaturi:- mediu rapid, interactiv, facilitati de help dependente de context;- accepta surse C, C++, Turbo Pascal versiune minima 5.0 si limbaj deasamblare Tasm versiune minima 1.0;- facilitati de breakpoint si memorare (logging);- reluare trasare (back tracing);- posibilitati de depanare hardware, pentru procesorul 80386;- depanare programe rezidente (Terminate and Stay Resident) si driverededicate;- depanare aplicatii Microsoft Windows.

Cerinte:- nu necesita coprocesor matematic;- accepta programe .EXE compilate cu optiunea "full debugginginformation"=ON sau programe .COM impreuna cu fisierul .TDS (fisier ce contineinformatii despre tabela de simboluri) corespunzator.- necesita existenta ambelor fisiere .EXE sau .COM si sursa.

Programe utile:

TDSTRIP.EXE - extrage informatia necesara pentru depanare din program farao noua link-editare a acestuia; creeaza un fisier .COM si fisierul .TDScorespunzator acestuia. TDUMP.EXE - afiseaza continutul fisierului de intrare (ex.: modul obiectsau fisier .EXE in formate semnificative utile (ex.:ASCII); TDDEV.EXE -afiseaza informatii despre driverele instalate;

Observatie:

Prin tiparirea oricaruia din numele programelor de mai sus se vor obtineinformatii suplimentare despre acesta. Facilitati de depanare oferite de Turbo Debugger




Utilitarul Turbo Debugger permite:- Trasare (Tracing) - executia unei linii sursa sau a unei linii in limbajde asamblare;- Reluare trasare (Back tracing) ;- Executie pas cu pas (Stepping), procedurile si functiile nu se executapas cu pas ;- Vizualizare (Viewing) - vizualizare prin intermediul ferestrelor a:variabilelor, continutului stivei, fisiere, cod Central Processor Unit (CPU),memorie, registre, informatii Numeric Processor Unit (NPU), etc ;- Inspectare (Inspecting) - vizualizare structuri complexe de date:vectori, uniuni, structuri ;- Modificare (Changing), globala sau locala a valorii unei variabile; - Vizualizare pe timpul executiei programului (Watching) ;

Nu permite:- nu are un editor incorporat; daca la instalare a fost specificat inprogramul de configurare TDINST un editor, acesta va putea fi folosit din meniullocal al ferestrei Module sau File ;- nu permite recompilarea sursei ;

Avantaje:- meniuri globale convenabile si logice;- meniuri locale sensibile la context;- posibilitatea de a alege, seta si selecta optiuni;- posibilitate de memorare a unui "istoric" a tastelor introduse;- posibilitate de definire macrouri;- copiere si transfer intre ferestre;- lucru cu mouse-ul;- meniuri de help "online" ;- reluare executie si memorare a "sesiunii" curente;

Meniuri si ferestre de dialog:

- Meniul global - selectat cu F10, sau ALT+prima litera si ALT+spacepentru =. - Se revine din meniul curent in cel anterior apasind tasta Esc. - Partea de jos a ecranului reprezinta linia de stare, contine permanentinformatii de Help relativ la linia selectata sau la fereastra curenta, inclusiv"hotkeys"; informatii suplimentare se obtin prin apasarea tastelor ALT si CTRL. - In cadrul unei ferestre, trecerea dintr-o subfereastra in alta se facecu Tab, respectiv Shift-Tab.

Important:- Fiecare fereastra are un meniu local specific, selectabil prin ALT-F10.- Rezultatul unei comenzi depinde de contextul in care aceasta a fostlansata. Ferestre Turbo Debugger

Exista doua surse posibile de ferestre: meniul View si meniul Data/ Inspect.Meniul View poate genera urmatoarele ferestre:- Module Window - contine codul program curent;- Watches Window - afisare variabile si expresii; permite adaugarea de noivariabile cu comanda CTRL-W.- Breakpoints Window - afiseaza punctele de oprire setate, cu tipulcorespunzator (global sau local) si conditiile in care breakpoint-ul selectatse executa.- Stack window - afiseaza starea curenta a stivei, prima functie apelata -in partea inferioara a stivei. Folosind comanda Inspect (CTRL-I) se poateexamina codul sursa al oricarei functii din stiva. CTRL-L (din meniul local)deschide o fereastra ce afiseaza variabilele globale unui program, variabilelelocale ale unei functii, impreuna cu argumentele lor de apel.- Log Window - afiseaza o lista de mesaje si informatii generate simemorate in timpul depanarii: motivele opririi programului, rezultatelebreakpoint-urilor, etc.- Variables Window - afiseaza variabile globale si locale pentru functiasau modulul curent.- File Window - afisare continutul unui fisier in format ASCII sauhexazecimal.- CPU Window - afisare stare curenta CPU, contine 5 ferestre:- instructiuni in limbaj de asamblare;- date, implicit in format hexa, echivalenta cu Dump Window;- continutul stivei, in cuvinte format hexa, echivalenta cu StackWindow;- continutul registrelor CPU, - starea indicatorilor de conditie CPU, ultimele doua ferestre CPUfiind echivalente cu Registers Window.- Dump Window -afisare zona de memorie pointata de registrul DS curent,in diferite formate; permite manipularea blocurilor de date.- Registers Window - afiseaza continutul registrelor CPU, (inclusiv aflagurilor), permite modificarea acestora.- NPU Window - afiseaza starea curenta a coprocesorului matematic, contine3 ferestre:- continutul registrelor CPU;- indicatorii de stare NPU;- indicatorii de control NPU.- Execution History Window - afiseaza codul in limbaj de asamblare si inlimbajul sursa, numarul instructiunii curente si starea curenta: trasare saurulare pas cu pas.- Hierarchy Window - utilizata in programarea orientata obiect;- Windows messages Window - utilizata la depanarea aplicatiilor Windows.- Clipboard Window - toate "obiectele" introduse in aceasta fereastra sintdinamice, valoarea lor este actualizata permanent pe parcursul executieiprogramului. Permite afisare, inspectare, stergere si "inghetare" valoare inClipboard. Fiecarui "obiect" introdus in Clipboard Turbo Debugger-ul iiasigneaza un atribut ce il caracterizeaza, de ex.: String, Module, CPU code sauCPU data, address, Coprocessor, Expression, etc. Avantajele acestei ferestre:- memorare adrese ce vor fi folosite ulterior la comanda Goto;- analiza valorii unei expresii pe timpul executiei programului;- memorare siruri in Log Window;

- Another - Duplicate Windows -permite definirea simultana a mai multorferestre de tipul Module, Dump sau File.- Inspector Window -afiseaza valoarea curenta a datei selectate, inclusivpentru date complexe.

Observatii:- fereastra activa are chenarul cu =, cea inactiva -;- ALT-F3 inchide fereastra curenta;- ALT-numar => fereatra 'numar' devine activa;- meniul Window ofera comenzi de lucru cu ferestre;

2. Prezentare generala a microprocesorului 8086. Registre. Moduri de adresare.

Caracteristici generale ale familiei I8086: - specializarea functionala a circuitelor; - posibilitati de lucru in sistem multiprocesor; - organizarea ierarhica a bus-urilor.

Microprocesorul I8086:

- realizat in tehnologie N-MOS; - impachetat in capsula cu 40 pini; - functioneaza la o frecventa de 5..8 MHz - transfer de date pe 8 sau 16 biti; - adreseaza direct o memorie maxima de 1Mo.

Registre accesibile utilizatorului: - registre generale pe 16 biti: AX,BX,CX,DX, SP,BP,SI,DI. - registre segment: CS,DS,ES,SS. - registre utilizabile pe octet: AH,AL,BH,BL,CH,CL,DH,DL.- registru de flag-uri, F.

-------------------------------------------------------- | - | - | - | - |OF|DF|IF|TF|SF|ZF| - |AF| - |PF| - |CF| -------------------------------------------------------- CF - carry flag, reprezinta indicatorul de transport, devine 1 dacaoperatia a produs un transport de iesire din cel mai semnificativ bit alrezultatului; AF - auxiliary carry, reprezinta indicatorul de transport auxiliar, devine1 daca operatia a produs un transport de la bitul al 4-lea (D3) la bitul al 5-lea al rezultatului. Acest transport semnifica imprumut in cazul operatiei descadere. PF - parity flag, reprezinta indicatorul de paritate, devine 1 in urmaoperatiilor logice daca rezultatul este par; OF - overflow, reprezinta indicatorul de depasire, OF=1 indica depasirea,adica alterarea bitului de semn; DF - direction flag, indica incrementarea/decrementarea registrelorSI/DI in cazul instructiunilor iterative; IF - interrupt flag, activeaza/dezactiveaza intreruperile externe; TF - trap flag, permite executia instructiunilor pas cu pas; SF - sign flag, devine 1 daca bitul cel mai semnificativ al rezultatuluieste 1; ZF - zero flag, devine 1 daca rezultatul operatiei anterioare este nul.

Registrele generale sint utilizate ca surse si/sau destinatie pentru operanzi. Sint prezentate in continuare citeva exemple de utilizare implicitaa registrelor I8086:

AX - operatii aritmetice si operatii de I/O pe 16 biti ; BX - conversii cod si registru de baza de adresare ; CX - contor ciclu pentru operatii pe siruri de caractere si bucle ; CL - contor pentru intructiuni deplasare ; DX - registru de adresare indirecta a porturilor de I/O ; SI - registru index sursa - operatii cu siruri de date ; DI - registru index destinatie - operatii cu siruri de date ; CS - adrese de baza ale segmentelor pentru codurile instructiunilor ; DS - adrese de baza ale segmentelor pentru operanzi ; ES - adrese de baza ale segmentelor pentru operanzi ; SS - segmentul stivei; ES - extra-segment de date;

Operatiile cu doi operanzi admit urmatoarele tipuri de perechi deoperanzi: - registru-registru ;- registru-memorie ;- registru-operand imediat ;- memorie-operand imediat ;

Operanzii in memorie pot fi adresati:

- direct, cu o adresa relativa in segment de 16 biti; - indirect, printr-un registru de baza (BX,BP), optional cu o deplasare de8 sau 16 biti; - indirect, printr-un registru de index (SI,DI), optional cu o deplasarede 8 sau 16 biti; - indirect, prin suma continutului registrului de baza, cu cel alregistrului index, optional cu o deplasare de 8 sau 16 biti.

Relatia generala de calcul a adresei efective, EA, devine : EA = aBX/BPi + aSI/DIi + aD8/D16i ,

unde : BX, BP, SI, DI reprezinta valorile continute in registrele respective,interpretate ca numere binare cu 16 biti, fara semn; / semnifica alegerea unuia dintre cele doua elemente; D8/D16 -operanzi numerici de deplasare, pe 8 respectiv 16 biti. In cazuldeplasarilor pe 8 biti, acestea sint considerate ca numere cu semn si se faceextensia semnului pina la 16 biti, dupa care se executa calculul adreseiefective.

Observatii:

1. EA reprezinta adresa relativa (offset) in cadrul unui segment, adresa fizicafiind: A = SEG * 16 + EA ,unde SEG reprezinta continutul unui registrusegment.2. Oricare din cei trei termeni poate lipsi.3. Registrul segment utilizat implicit depinde de tipul operatiei si deregistrul utilizat ca adresa de baza sau index:

____________________________________________________________| | | | | Adresa efectiva (EA) | RS implicit | Alte RS utilizabile ||______________________|_____________|______________________| | | | | | D | DS | CS,SS,ES | | BX + SI + D | | | | BX + DI + D | | ||______________________|_____________|______________________| | | | | | BP + SI + D | SS | CS,DS,ES | | BP + DI + D | | | |______________________|_____________|______________________| | | | | | SI + D | DS | | | DI + D | | ||______________________|_____________|______________________|| | | || BP + D | SS | CS,DS,ES ||______________________|_____________|______________________|| | | || BX + D | DS | CS,DS,ES ||______________________|_____________|______________________|

Utilizarea altui segment decit cel implicit va fi indicat printr-un prefix, astfel:

Exemplu: MOV BX,ES:758,

care incarca in registrul BX cuvintul de la adresa ES:758. 3. Formatul instructiunilor

Formatul instructiunilor:

aeticheta:i Mnemonica operanzi a;comentariui, unde:

- a i arata ca elementele incluse sint optionale (eticheta si comentariul) ;- mnemonica este numele simbolic al instructiunii; - cimpul operanzi poate contine doi operanzi, unul sau nici unul, infunctie de tipul instructiunii ; identifica datele asupra carora actioneazainstructiunea, modul de adresare si alte informatii auxiliare. - tipuri de operanzi:

- registru; - locatie de memorie, adresa acesteia aflindu-se fie intr-unregistru fie in memorie;- imediat;

Codul obiect asociat unei instructiuni a microprocesorului 8086 are 1..6octeti, la care se mai pot adauga 1..2 octeti pentru prefixe speciale(modificare explicita registru segment, repetare instructiune).

Exemplu:

Echivalentul in cod obiect pentru instructiunea MOV BETA aBXiaDIi,ALeste urmatorul:

|------------------------------------------------------------||1 0 0 0 1 0 |0|0 |1 0 | 0 0 0 | 0 0 1 |ADRESA DEPLASARE BETA| |COD OPERATIE|D|W |MOD | REG | R/M | LOW | HIGH | |------------------------------------------------------------|

Se considera ca formatul obiect al instructiunilor e reprezentat pe osecventa de octeti dispusi consecutiv astfel:

- Octetul 1: contine codificarea codului operatiei. Tot in acestoctet mai e prezenta informatia referitoare la natura operanzilor. - Octetul 2:contine informatii despre operanzi. - Octetii 3-6:sint optionali, cu informatii despre:

- deplasarea operanzilor; - moduri de adresare; - operanzi imediati (constante); OCTETUL 1

COD OPERATIE: tipul instructiunii si implicit modul in care vor fi alocatesemnificatii celorlalte cimpuri ;

D: indicator al destinatiei datelor:

D=0: destinatia e data de MOD si R/M ; D=1: destinatia e data de REG ;

W: indicator al tipului de transfer:

W=0 : operatie la nivel de octet ; W=1 : operatie la nivel de cuvint ;

OCTETUL 2

R/M = indica registrul care contine operandul sau specifica modul decalcul al EA ; REG = registrul utilizat; MOD = contine informatii asupra deplasarii si semnificatia cimpului R/M; DISP = deplasare, pe 8 sau 16 biti;

Registrele de baza si index specificate de R/M pentru operanzi in memorie(MOD diferit de 11):

R/M Adresa operand REG W=0 W=1 ------------------------- ------------------------ 000 (BX)+(SI)+DISP 000 AL AX 001 (BX)+(DI)+DISP 001 CL CX 010 (BP)+(SI)+DISP 010 DL DX 011 (BP)+(DI)+DISP 011 BL BX 100 (SI)+DISP 100 AH SP 101 (DI)+DISP 101 CH BP 110 (BP)+DISP 110 DH SI 111 (BX)+DISP 111 BH DI

In cazul instructiunilor speciale, gen prefix de segment, registrele sintcodificate pe 2 biti astfel: |0|0|1|r|1|1|0|, unde r codifica registrul de segment, astfel:

rREG. SEGMENT ------------------ 00 ES 01 CS 10 SS 11 DS Mod = specifica modul de calcul al deplasarii:

MOD 00-DISP absenta(*)-cu o exceptie!; 01-DISP8 (pe 8 biti) cu semn extins la 16 biti; 10-DISP16; 11-cimpul R/M este tratat drept cimp indicator de registre;

Observatii: - daca MOD=00 si R/M=110 octetii 3 si 4 contin adresa operandului. - conventie Intel: in cazul dispunerii opeanzilor pe 16 biti in sir deocteti pozitia lor va fi: |octet low|octet high|.

Intrebari si exercitii:

1. Care este dimensiunea maxima a unui segment de memorie? Dar dimensiuneamaxima de memorie ce poate fi "vazuta" de 8086?2. Scrieti in TD o secventa de instructiuni care sa incarce continutulregistrului AX in memorie la adresa DS:400. Verificati cu TD.

3. Considerati ca segmentele procesorului 8086 se pot suprapune in memorie?Argumentati.

4. Analizati cu TD efectul urmatoarelor instructiuni de transfer:

MOVAX,100 MOVAX,a100i MOVAX,DS:a100i MOV AX,CS:a100iSpecificati tipul de adresare.

5. Microprocesorul 8086 contine in DS 0A010h . Se intentioneazaadresarea locatiei de la adresa absoluta 0AA000h . Ce deplasare trebuieadaugata continutului lui DS ?

6.Registrul CS contine 500Fh. Un program in limbaj masina incepe la adresa 0100Bh in cadrul segmentului de cod. Care esteadresa absoluta a acestui inceput de program ?


Colt dreapta
Creeaza cont
Comentarii:

Nu ai gasit ce cautai? Crezi ca ceva ne lipseste? Lasa-ti comentariul si incercam sa te ajutam.
Esti satisfacut de calitarea acestui document, eseu, cometariu? Apreciem aprecierile voastre.

Nume (obligatoriu):

Email (obligatoriu, nu va fi publicat):

Site URL (optional):


Comentariile tale: (NO HTML)


Noteaza documentul:
In prezent fisierul este notat cu: ? (media unui numar de ? de note primite).

2345678910

 
Copyright© 2005 - 2024 | Trimite document | Harta site | Adauga in favorite
Colt dreapta