User Tools

Site Tools


laboratoare:laborator-12

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
laboratoare:laborator-12 [2016/01/15 18:50]
razvan.deaconescu [Standarde de reprezentare în virgulă mobilă]
laboratoare:laborator-12 [2016/01/15 19:25]
razvan.deaconescu [[2p] 4. Extragere parte întreagă și fracționară]
Line 77: Line 77:
  
 ^ Instrucțiune ​     ^ Descriere ​         ^ ^ Instrucțiune ​     ^ Descriere ​         ^
-| fstp DWORD [registru] | Citește o valoare de tip float (octeți) din vârful stivei și o salvează la adresa indicată de registru. Valoarea este eliminată de pe stivă. |+| fstp DWORD [registru] | Citește o valoare de tip float (octeți) din vârful stivei și o salvează la adresa indicată de registru. Valoarea este eliminată de pe stivă. |
 | fst DWORD [registru] ​ | Similar cu instrucțiunea anterioară,​ dar valoarea rămâne în vârful stivei. | | fst DWORD [registru] ​ | Similar cu instrucțiunea anterioară,​ dar valoarea rămâne în vârful stivei. |
 | fstp QWORD [registru] ​ | Citește o valoare de tip double (8 octeți) din vârful stivei și o salvează la adresa indicată de registru, eliminând valoarea de pe stivă | | fstp QWORD [registru] ​ | Citește o valoare de tip double (8 octeți) din vârful stivei și o salvează la adresa indicată de registru, eliminând valoarea de pe stivă |
Line 91: Line 91:
 | ficom word [registru] | Compara prima valoare de pe stivă cu un număr întreg pe 2 octeți de la adresa indicată de registru | | ficom word [registru] | Compara prima valoare de pe stivă cu un număr întreg pe 2 octeți de la adresa indicată de registru |
 | ficom dword [registru] | Compară prima valoare de pe stivă cu un număr întreg pe 4 octeți de la adresa indicată de registru | | ficom dword [registru] | Compară prima valoare de pe stivă cu un număr întreg pe 4 octeți de la adresa indicată de registru |
-ficomp dword [registru] | Compară prima valoare de pe stivă cu un număr întreg pe octeți de la adresa indicată de registru | +ficom qword [registru] | Compară prima valoare de pe stivă cu un număr întreg pe octeți de la adresa indicată de registru | 
-| ficomp dword/word [registru] | Similar cu instrucțiunile anterioare, dar elimină și prima valoare de pe stivă |+| ficomp ​word/dword/qword [registru] | Similar cu instrucțiunile anterioare, dar elimină și prima valoare de pe stivă |
 | ftst | Compară prima valoare de pe stivă cu 0.0. | | ftst | Compară prima valoare de pe stivă cu 0.0. |
  
Line 147: Line 147:
  
     fld qword [n1]     fld qword [n1]
-    ​fld qword [n2]+    ​fadd qword [n2]
  
     sub esp, 8      ; rezervă loc pe stivă pentru rezultat, pasat ca argument funcției printf.     sub esp, 8      ; rezervă loc pe stivă pentru rezultat, pasat ca argument funcției printf.
-    fadd 
     fstp qword [esp]; mută rezultatul adunării în spațiul rezervat.     fstp qword [esp]; mută rezultatul adunării în spațiul rezervat.
  
Line 250: Line 249:
  
 <note tip> <note tip>
-Pentru a extrage partea întreagă puteți folosi instrucțiunea ''​FISTTP ​dword <​adresa>'',​ care extrage prima valoare din vârful stivei FPU, o trunchiază și o stochează ca un întreg la adresa specificată.+Pentru a extrage partea întreagă puteți folosi instrucțiunea ''​fisttp ​dword <​adresa>'',​ care extrage prima valoare din vârful stivei FPU, o trunchiază și o stochează ca un întreg la adresa specificată
 +</​note>​ 
 + 
 +<note tip> 
 +Instrucțiunea ''​fisttp''​ este o instrucțiune validă, chiar dacă nu este colorată în ''​SASM''​. 
 +</​note>​ 
 + 
 +<note tip> 
 +Instrucțiunea ''​fisttp''​ face și pop la valoarea din vârful stivei FPU. De aceea, pentru obținerea părții fracționare,​ va trebui să reîncărcați valoarea numărului fracționar ''​n''​ (folosind ''​fld''​) înainte de scădea valoarea întregii din acesta folosind instrucțiunea ''​fisub''​.
 </​note>​ </​note>​
 ==== [2p] 5. Media unui vector de întregi cu rezultat fracționar ==== ==== [2p] 5. Media unui vector de întregi cu rezultat fracționar ====
laboratoare/laborator-12.txt · Last modified: 2016/01/15 19:25 by razvan.deaconescu