1 hla feladat megoldásában kérnék segítséget. Valakinek van valami ötlete erre?
procedure Fgv (VAR V1:int64; VAL V2:int32; RESULT R:int64); @external;
procedure Fgv (VAR V1:int64; VAL V2:32; RESULT R:int64);
R=V1-V2
Ezt a feladatot kellene megoldanom, de ötletem sincs, hogy hogy kéne megcsinálni.
Talán tipus erőltetéssel megy :
R:=V1-int64 (V2);
Sok sikert.
Üdv.
szerintem nem fog. Ha ilyen egyszerű lenne nem adták volna fel. :) Egy másik megoldás lehet, hogy aljas módon 64 bites programot írsz, és kivonod, vagy a másik az, hogy
V1 utolsó 4 bájtját regiszterbe rakod, V2-t is, aztán kivonod. Aztán megnézed a carry bitet. Ha 0 akkor V1 felső 4 bájtja után odabiggyeszted az eredményt, és megvagy, ha pedig 1 akkor kivonsz a felső 4 bájtból egyet, és az után rakod az eredményt.
Köszi az eddigi segítséget. Most ezt sikerült beírnom, viszont a tesztelő szerint hibás.
Valószínűleg én vagyok a vaksi, de nem látom a hibát.
Ötlet?
Üdv.
Ird meg valamelyik magasszintű nyelven, majd próbáld meg debugolni.
Én megirtam Delphiben ezt lett az eredmény (11111-1111) :
MOV DWORD PTR DS:[444840],2B67
MOV DWORD PTR DS:[444844],0
MOV ECX,457
MOV EAX,DWORD PTR DS:[444840]
MOV EDX,DWORD PTR DS:[444844]
PUSH EDX
PUSH EAX
MOV EAX,ECX
CDQ
SUB DWORD PTR SS:[ESP],EAX
SBB DWORD PTR SS:[ESP+4],EDX
POP EAX
POP EDX
MOV DWORD PTR DS:[444848],EAX
MOV DWORD PTR DS:[44484C],EDX
Sok sikert.
Üdv.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!