HLA Feladat, hogyan?
Sziasztok a következő feladatot próbáltam megcsinálni:
Adatok:
Procedure Fgv1(VAL i:int32; VALj:int16; @cdecl; @use EAX; @returns("EAX"); @external
Feladat amit le kéne programoznom:
(((i-144)*((i*i)+i))+(i*(i-j)));
Legutóbbi próbálkozásom:
PUSH(EBX);
PUSH(ECX);
MOV(i,EBX);
SUB(144,EBX);
MOV(i,EAX);
MOV(EAX,ECX);
INTMUL(ECX,ECX);
ADD(EAX,ECX);
INTMUL(EBX,ECX);
MOV(i,EBX);
MOVSX(j,EAX);
SUB(EAX,EBX);
MOV(i,EAX);
INTMUL(EAX,EBX);
ADD(EBX,ECX);
MOV(ECX,EAX);
POP(EBX);
POP(ECX);
A program lefut csak nem jó és el nem tudom képzelni hogy mi lehet az oka,kb 4-5 órája próbálkozok és legalább 8-9 alternatívával(még edx is) próbálkoztam és egyik sem jó. Aki esetleg tudna segíteni annak hálásan köszönöm
Első ránézésre a PUSH-POP utasítások hibásnak tűnnek, mert tudomásom szerint ez LIFO-szervezésű tárolást valósít meg, te meg FIFO-ként használod.
(magyarul az EBX-et felcseréled az ECX-el)
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!