Új hozzászólás Aktív témák

  • #95904256

    törölt tag

    Sziasztok!

    Van két 16384 bájtos számom ( H és L ), amelynek a különbségét szeretném beszorozni egy 32 bites számmal ( R ). Ezt kétféle módon oldható meg:

    A = ( H - L ) * R
    illetve
    A = ( H * R ) - ( L * R )

    A gondom az, hogy a kettő nem teljesen egyforma. A dolog ciklikusan ismétlődik és az egyik lefutásnál a 123136. bit ( +3C20:0.bit ) egyszercsak eltérő értéket vesz fel. Az összes többi biten egyezik az eredmény. Mi lehet az oka?

    A kérdéses lefutásnál H, L és R értékeit ellenőriztem.
    A memóriát is ellenőriztem!

    Milyen esetben lehet eltérő értéke a két fenti számítási módnak?

    A szemem láttára buggyanik meg az adat és nem értem... :W
    A dolog örjítő, mert miután megbuggyanik a bit a következő ciklusban már felszaporodik az eltérés és így tovább...

    szerk.: Itt arra gondolok, hogy kivonás ( SBB mem,r32 ) vagy szorzás ( MUL mem,r32 / ADD EAX,carry ) esetén milyen esetben történhet adatvesztés? Mint pl. kerekítés esetén...

    [ Szerkesztve ]

Új hozzászólás Aktív témák