Kezdőoldal » Számítástechnika » Programozás » HLA Feladat, hogyan?

HLA Feladat, hogyan?

Figyelt kérdés

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



2016. dec. 25. 20:42
 1/2 anonim ***** válasza:
79%

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)

2016. dec. 25. 21:47
Hasznos számodra ez a válasz?
 2/2 A kérdező kommentje:
Hát te isten vagy komolyan mondom,én meg egy elképesztően nagy állat :D és sikerült igy ,nem hiszem el,ezen filóztam órákat :D Hálás köszönet :D
2016. dec. 25. 22:20

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!