0% found this document useful (0 votes)
13 views

Laborator 4 Debug: D

The document describes various commands in the Debug program that allow accessing and manipulating the primary resources of a computer like memory locations, processor registers, and I/O ports. Some of the most useful commands are: d to dump memory, f to fill memory, e to enter bytes, q to quit, c to compare memory, i to read ports, o to write ports, a to assemble code, u to disassemble code, r to display/modify registers, t to trace instructions, m to move memory, and s to search memory. The document then provides a task to use these Debug commands to manipulate memory and test the commands.

Uploaded by

Laur Ex
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views

Laborator 4 Debug: D

The document describes various commands in the Debug program that allow accessing and manipulating the primary resources of a computer like memory locations, processor registers, and I/O ports. Some of the most useful commands are: d to dump memory, f to fill memory, e to enter bytes, q to quit, c to compare memory, i to read ports, o to write ports, a to assemble code, u to disassemble code, r to display/modify registers, t to trace instructions, m to move memory, and s to search memory. The document then provides a task to use these Debug commands to manipulate memory and test the commands.

Uploaded by

Laur Ex
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Laborator 4 DEBUG

Programul Debug, lansat dintr-o fereastra de comanda ("Command Prompt") contine o serie de comenzi cu parametri valori in hexazecimal care permit accesul la resursele primare ale calculatorului: locatii de memorie, registrele procesorului, porturi de intrare / iesire. Printre cele mai utile comenzi sunt: d<adr1>,<adr2><ENTER> ("dump") afiseaza continutul unei zone de memorie cuprinsa intre adresele adr1 si adr2. f<adr1>,<adr2>,<lista_constante><ENTER> ("fill") umple zona de memorie cuprinsa intre adresele adr1 si adr2 cu lista de constante. e<adr><ENTER> ("enter") permite introducerea unor valori de octeti incepand de la adresa adr. Trecerea la octetul urmator se face cu spatiu. Comanda se incheie cu <ENTER>. q<ENTER> ("quit") incheie programul Debug. c<adr1>,<adr2>,<adr3><ENTER> ("compare") compara zona de memorie cuprinsa intre adresele adr1 si adr2 cu zona incepand de la adresa adr3. i<port><ENTER> ("input") citeste continutul portului specificat. o<port><octet><ENTER> ("output") inscrie octet la portul specificat. a<adr><ENTER> . . . . . . . instructiuni . . . . . <ENTER> ("assemble") permite introducerea si asamblarea unei secvente de instructiuni in limbaj de asamblare incepand cu adresa adr. Comanda se incheie cu instructiune vida <ENTER>. u<adr><ENTER>

("unassemble") dezasambleaza continutul unei zone de memorie incepand de la adresa adr si afiseaza secventa de instructiuni sursa in limbaj de asamblare. r<ENTER> ("registers") afiseaza continuturile registrelor utilizator, accesibile prin program. r<reg><ENTER> afiseaza si permite modificarea registrului utilizator reg. t<nr_instr><ENTER> ("trace") executa numarul de instructiuni nr_instr de la valoarea curenta a contorului de instructiuni IP. m<adr1>,<adr2>,<adr3><ENTER> ("move") muta zona de memorie cuprinsa intre adresele adr1 si adr2 in noua zona incepand de la adresa adr3. s<adr1>,<adr2>,<lista_oct><ENTER> ("search") cauta lista de octeti in zona cuprinsa intre adresele adr1 si adr2. g=<adr1>,<adr2><ENTER> ("go") lanseaza in executie codul aflat in memorie incepand de la adresa adr1 pana la adresa adr2 ("breakpoint" - punct de suspendare a executiei programului). Daca adr1 lipseste (lipseste si caracterul '=') executia este lansata de la adresa curenta a contorului de program IP, pana la adresa adr2.

Tema
1) Sa se afiseze continutul zonei de memorie cuprinsa intre adresele 100-13f. 2) Sa se umple zona de memorie 100-13f cu valoarea constanta 55 si sa se verifice operatia. 3) Sa se introduca in fiecare locatie din zona 100-13f o valoare reprezentata de ultimii 8 biti de adresa a locatiei respective (00, 01, 02, . . . ) si sa se verifice. 4) Sa se mute zona de memorie precedenta in zona cuprinsa intre adresele 300-33f. 5) Sa se compare zona de memorie 100-13f cu zona 200-23f si apoi cu zona 300-33f. 6) Sa se caute octetii 0f, 1f, 2f si 3f in zona de memorie 100-33f. 7) Sa se afiseze si sa se modifice continuturile registrelor utilizator.

8) Sa se introduca o secventa de program in limbaj de asamblare incepand de la adresa 300 si sa se execute secventa respectiva urmarind modificarea registrelor utilizator. 9) Sa se execute secventa precedenta de program instructiune cu instructiune, urmarind modificarea registrelor. 10) Sa se dezasambleze continutul zonei de memorie de la punctul precedent, precum si continutul zonei cuprinse intre adresele 200-23f.

You might also like