Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 2 odgovora
  • 3.779 pregleda

Najnovija ↓

[MASM] - Kako sabrati dva broja duzine 64 bita 30.03.2016. u 09:53 · pre 128 meseci #1
Code:

Test_ proc

LOCAL _FP1:QWORD
LOCAL _FP2:QWORD
LOCAL _Result:QWORD
      
    ;3A34 + 0FFA5 = 139D9
    mov dword ptr [_FP1],3A34h    
    mov dword ptr [_FP2],0FFA5h
    FLD _FP1    
    FLD _FP2    
    FADD ST(0), ST(1)
    fstp _Result    
    mov ecx,dword ptr[_Result]                          ; ECX = 139D9
    ; invoke FloatToStr,_Result,addr tmpBuf             ; tmpBuf = "5.114010e-312"

Test_ endp


Ova procedura sabira 3A34 i 0FFA5 (primer verovatno i nepotreban),

ali kako sada da saberem npr. "36441D979151AA56" i "1FF196D1874C3DE4"?

i kako sacuvati taj rezultat (a ne mogu u 32-bitni registar), da bih ga kasnije prikazala preko poruke ili edit kontrole.
Inace sam skoro pocela sa asemblerom i ne bih vise da citam gomilu tutorijala, samo zbog ovoga,
jer ga verovatno vise nikada necu koristiti.
Sviđa mi se1
Re: [MASM] - Kako sabrati dva broja duzine 64 bita 30.03.2016. u 10:14 · pre 128 meseci #2
64-bitni broj sabereš tako što prvo sabereš donja 32 bita, pa onda gornja 32 bita. Ako je bilo prenosa kod sabiranja donja 32 bita (a to testiraš tako što proveriš carry, odnosno napraviš uslovno grananje sa JC ili JNC posle prvog sabiranja) onda na zbir gornjih reči dodaš 1.

A ni ono što si gore sabrala nije dobro, sabrala si dva integera kao da su double i rezultat ti je besmislen - 5.114010e-312
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme