Sunteți pe pagina 1din 4

UNIVERSITATEA DE STAT DIN MOLDOVA

FACULTATEA MATEMATICĂ ŞI INFORMATICĂ


DEPARTAMENTUL INFORMATICĂ

SÎRBU DANIEL

Lucrarea individuală nr. 4


la disciplina Arhitectura Calculatoarelor și Limbaje de Asamblare

Coordonator: Butnaru Mariana, lector universitar

Autorul: Sîrbu Daniel

Chişinău, 2021
Tema 4. Instrucţiuni de transfer. Introducerea şi afişarea unui şir (funcţiile
3Fh şi 40h)
Obiectivele lucrării :
 Familiarizarea și însușirea modului de utilizare al unor instrucţiuni de
transfer.
 Formarea abilităţilor în elaborarea programelor datele cărora sunt
introduse de la tastatură prin afişarea rezultatului pe ecran.
 Formarea abilităţilor în utilizarea funcțiilor de introducere și afișare şi
depanarea programelor folosind depanatoare interactive.
Sarcini propuse spre elaborare [V23] :
a) 23. Să se introducă un şir cu lungimea de cel puţin 10 simboluri. Să
se copieze din şirul s1 în şirul s2 primele trei simboluri. Să se afişeze
la consolă ambele şiruri.
b) Să se execute programul prin depanatorul TD. Să se efectueze
trasarea programului pas cu pas, urmărind la fiecare pas valoarea
segmentului de date. Să se analizezemodificările indicatorului
vârfului stivei sp, indicatorului instrucţiunilor ip şi ale segmentului de
date la fiecare pas de execuţie a programului.
1. Codul sursă :
2. model small
3. .stack
4. .data
5.
6. message1 db 'Introduceti un sir',10,13,'$'
7. message2 db 10,13,'Ati introdus:',10,13,'$'
8. message3 db 10,13,'Sirul format este:',10,13,'$'
9.
10. s1 db 100 dup(?)
11. s2 db 4 dup(?)
12.
13. .code
14. start:
15. mov ax, @data
16. mov ds,ax
17.
18. mov ah, 40h
19. lea dx, message1
20. mov cx,20;lungimea sirului message1
21. int 21h
22. ;functia de citire de la tastatura a sirului s1, cu lungimea de 100
23. mov ah, 3fh
24. lea dx,s1
25. mov cx,100
26. int 21h
27.
28. mov ah,0;ah = 0
29. sub al,2; al-2
30. mov di,ax ;in registrul di numarul caracterelor introduse
31.
32. mov ah, 40h
33. lea dx, message2
34. mov cx,16
35. int 21h
36.
37. mov al,s1[0] ; caracterul de pe prima pozitie
38. mov s2[0],al ;se copiaza pe prima pozitie, in sirul s2
39. mov al,s1[1] ;urmeaza aceeasi procedupara pentru caracterul 2
si 3
40. mov s2[1],al
41. mov al,s1[2]
42. mov s2[2],al
43.
44. mov ah,40h ;se afiseaza la ecran sirul introdus s1
45. lea dx,s1
46. mov cx,di
47. int 21h
48.
49. mov ah,40h; se afiseaza la ecran sirul message3
50. lea dx,message3
51. mov cx,20;lungimea lui message 3
52. int 21h
53.
54. mov ah,40h ;se afiseaza la ecran sirul rezultant s2
55. lea dx,s2
56. mov cx,4 ;lungimea lui s2
57. int 21h
58.
59. ; functia care incheie executia programului si
60. ;transmite dirijarea sistemului de operare
61. mov ah,4ch
62. int 21h
63.
64. end start
2. Rezultatul :

S-ar putea să vă placă și