Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[MASM] - Kako sabrati dva broja duzine 64 bita

[es] :: Asembler :: [MASM] - Kako sabrati dva broja duzine 64 bita

[ Pregleda: 1990 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

kata_

Član broj: 333061
Poruke: 5



+1 Profil

icon [MASM] - Kako sabrati dva broja duzine 64 bita30.03.2016. u 08:53 - pre 39 meseci
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.
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 2586



+1079 Profil

icon Re: [MASM] - Kako sabrati dva broja duzine 64 bita30.03.2016. u 09:14 - pre 39 meseci
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
 
Odgovor na temu

kata_

Član broj: 333061
Poruke: 5



+1 Profil

icon Re: [MASM] - Kako sabrati dva broja duzine 64 bita30.03.2016. u 16:24 - pre 39 meseci
Uspela sam nekako. Ok, hvala.



[Ovu poruku je menjao kata_ dana 31.03.2016. u 07:06 GMT+1]
 
Odgovor na temu

[es] :: Asembler :: [MASM] - Kako sabrati dva broja duzine 64 bita

[ Pregleda: 1990 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.