Documente Academic
Documente Profesional
Documente Cultură
Raport
Lucrarea de laborator nr. 2
Disciplina: Arhitectura Calculatoarelor
Chișinău – 2017
Tema: „Elaborarea programelor în limbajul de asamblare MASM în Visual Studio”
Scopul lucrării: Se prezintă problemele pincipale legate de conversii de date, reprezentarea datelor
întregi, reprezentarea întregilor în format BCD, reprezentarea caracterelor și a șirurilor de caractere,
reprezentarea valorilor reale, elemente de memorie, tipuri de date utilizate și modurile de adresare a
operanzilor.
1.1. Se cere obținerea fișierului executabil pentru următoarea porțiune de cod și rularea apoi pas
cu pas.
2. INCLUDE Irvine32.inc
3. C ; Include file for Irvine32.lib (Irvine32.inc)
4. C
5. C ;OPTION CASEMAP:NONE ; optional: make identifiers
case-sensitive
6. C
7. C INCLUDE SmallWin.inc ; MS-Windows prototypes,
structures, and constants
8. C .NOLIST
9. C .LIST
10. C
11. C INCLUDE VirtualKeys.inc
12. C ; VirtualKeys.inc
13. C .NOLIST
14. C .LIST
15. C
16. C
17. C .NOLIST
18. C .LIST
19. C
20. 00000000 .data
21. 00000000 00000003 [ alfa DW 3 DUP(?)
22. 0000
23. ]
24. 00000000 .code
25. 00000000 main proc
26. 00000000 66| B8 0011 mov ax,17 ;
adresare indirecta a operandului sursa
27. 00000004 66| B8 0015 mov ax,10101b ;
28. 00000008 66| B8 0003 mov ax,11b ;
29. 0000000C 66| B8 0011 mov ax,21o ;
30. 00000010 66| A3 mov alfa,ax ; Adresare
directa a operandului destinatie
31. 00000000 R
32. 00000016 66| 8B C8 mov cx,ax ;
Interschimba registrele ax si bx
33. 00000019 66| 8B C3 mov ax,bx ;
Folosind registrul cx
34. 0000001C 66| 8B C1 mov ax,cx ;
35. 0000001F 66| 93 xchg ax,bx ;
Interschimba direct cele 2 registre.
36. 00000021 66| BE 0002 mov si,2
37. 00000025 66| 89 04 35 mov alfa[si],ax ; Adresare
relativa cu registrul si
38. 00000000 R
39. 0000002D BE 00000002 mov esi,2
40. 00000032 BB 00000000 R mov ebx,offset alfa ; Adresare
imediata a operandului sursa
41. 00000037 8D 1D 00000000 R lea ebx,alfa ;
Acelasi efect
42. 0000003D 8B 0C 1E mov ecx,[ebx][esi] ; Adresare
bazata indexata a sursei
43. 00000040 66| 8B 0D mov cx,alfa[2] ;
Acelasi efect.
44. 00000002 R
45. 00000047 66| 8B 0D mov cx,[alfa+2] ; Acelasi
efect
46. 00000002 R
47. 0000004E 66| BF 0004 mov di,4
48. 00000052 C6 04 1F 55 mov byte ptr[ebx][edi],55h ;
49. 00000056 BE 00000002 mov esi,2
50. 0000005B BB 00000003 mov ebx,3
51. 00000060 66| C7 84 1E mov alfa[ebx][esi],33h ; Adresare
bazata indexata relativa a destinatiei
52. 00000000 R
53. 0033
54. 0000006A 66| C7 84 1E mov alfa[ebx+esi],33h ; Notatii
echivalente
55. 00000000 R
56. 0033
57. 00000074 66| C7 84 1E mov [alfa+ebx+esi],33h
58. 00000000 R
59. 0033
60. 0000007E 66| C7 84 1E mov [ebx][esi]+alfa,33h
61. 00000000 R
62. 0033
63. exit
64. 00000088 6A 00 * push +000000000h
65. 0000008A E8 00000000 E * call ExitProcess
66. 0000008F main ENDP
67. END main
Concluzie:
În urma efectuării lucrării de laborator, am elaborat programe în limbajul de asamblare
MASM. Primul program reprezintă moduri de reprezentare a numerelor în diferite moduri. Al doilea
program este un exemplu de elaborare unei expresii aritmetice folosind funcții standard ale
limbajului de asamblare. Al treilea program este un lucru individual, de asemena pe elaborarea unei
expresii aritmetice.