Programarea in limbaj de asamblare - introducere

Mai intai, cum scriem un program in limbaj de asamblare?

Programul se va scrie intr-un fisier text cu extensia asm. Un exemplu minimal: arit1.asm

Pentru "compilare" veti da comenzile

  tasm /zi nume

urmata de

  tlink /v nume

Important!

  1. Numele programului se va da fara extensie.
  2. Executabilele tasm si tlink se gasesc in acelasi loc cu mediul Turbo Pascal sau Borland C++

Rezultatul celor doua comenzi de mai sus este un program executabil (.exe).

Depanarea programelor scrise in asamblare (si pentru inceput, chiar urmarirea executiei lor) se face cu ajutorul programului Turbo Debugger. Comanda este:

  td nume

Urmarirea programului cu Turbo Debugger se va face in fereastra CPU (se deschide din meniul View|CPU). Aici avem

Putem pozitiona zona vizibila din program, zona de date si stiva folosind comanda Go to din meniul local al ferestrei (meniul activat cu Alt-F10).

De asemenea, putem afla sau modifica valoarea unei variabile, folosind fereastra de dialog Evaluate/Modify (deschisa cu Ctrl-F4)

Exercitii

1. Generati program executabil din sursa prezentata in aceasta pagina

2. Urmariti pas cu pas executia programului (in Turbo Debugger). Urmariti continutul registrelor ax si ip in acest timp.

3. Tot in executia pas cu pas a programului, urmariti continutul segmentului de date. Pentru aceasta, activati (cu Shift-sageata jos) zona de date a ferestrei CPU, activatati meniul local (Alt-F10) si dati comanda Go to. In fereastra ce se deschide, dati ds:0. Urmariti primii octeti din segmentul de date pe parcursul executiei programului.

4. Pozitionati afisarea zonei de date pe cs:0 Comparati cu ceea ce se afiseaza in zona de cod.

5. Modificati programul in asa fel incat variabilele sa fie reprezentate pe 16 biti si initializati-le cu valori mai mari (de ordinul 1000). Repetati exercitiile 1-4.

6. Acelasi lucru acum (exercitiile 1-4) pentru programul arit2.asm. Ce greseala observati? Corectati-o.


Arhitectura Calculatoarelor

17 Oct 2001
Radu-Lucian LUPSA