User Tools

Site Tools


bune-practici

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
bune-practici [2015/11/30 15:19]
catalin.vasile3004 [Confuzii la accesarea datelor în memorie (operatorul de dereferenţiere)]
bune-practici [2015/11/30 15:25]
catalin.vasile3004 [Confuzii la accesarea datelor în memorie (operatorul de dereferenţiere)]
Line 26: Line 26:
  add eax, var ; add to eax, the >>​address<<​ of var  add eax, var ; add to eax, the >>​address<<​ of var
 </​code>​ </​code>​
-Acest cod este echivalent cu următorul cod din C:+Acest cod este echivalent cu următorul cod din **C**:
 <code c> <code c>
 int var = 34; int var = 34;
Line 38: Line 38:
 section .text section .text
  mov eax, [var] ; put var's >>​value<<​ into eax  mov eax, [var] ; put var's >>​value<<​ into eax
- add eax, [var] ; add to eax, the >>​value** of var+ add eax, [var] ; add to eax, the >>​value<< ​of var
 </​code>​ </​code>​
 +Acest lucru ar fi echivalent în **C** cu:
 +<code c>
 +int var = 34;
 +eax = var; /* mov eax, [var] */
 +eax = eax + var; /* add eax, [var] */
 +</​code>​
 +Printre singurele instrucţiuni care fac abatare de la aceste reguli, este **lea** (load effective address).
 +<code asm>
 +section .data
 + var: DD 34
 +section .text
 + lea eax, [var] ; put var's >>​address<<​ into the eax register
 +</​code>​
 +În rest, toate celelalte instrucţiuni aderă la regulile enunţate mai sus. Dacă or mai exista şi alte instrucţiuni care se comportă ca **lea**, cel mai probabil nu vor fi tratate în aceste laboratoare.
 ==== Încărcarea datelor în registre ==== ==== Încărcarea datelor în registre ====
 Adesea apar erori chiar la încărcarea datelor în registre. Adesea apar erori chiar la încărcarea datelor în registre.
bune-practici.txt · Last modified: 2015/11/30 21:08 by catalin.vasile3004