rendered paste body
//feladat, EAX-ben (j-i)*(j+i) - (i+5) + 2*j; legyen. int32:i, int16:j
MOV(i,ECX); //i->ecx
XOR(EDX,EDX);
XOR(EAX,EAX);
MOV(j,AX);
MOV(AX,DX); //j->edx
CMP(DX,0);
JG nagyobb;
NEG(EDX);
MOV(AX,DX);
nagyobb:
//eredemny kiszamitasa, vegen ebx-ben tarolom az eredmenyt
//eax-et hasznalom ideiglenes tarolonak a reszeredmenyhez
//ebx=j-i
MOV(ECX,EBX); //ebx=i
NEG(EBX); //-1*i
MOV(EDX,EAX); //eax=j
ADD(EAX,EBX); //ebx=j-i
PUSH(EBX); //elmentem(j-i)
//eax=j+i
ADD(ECX,EAX); //eax=i+j
POP(EBX); //ebx=(j-i)
IMUL(EBX,EAX); //eax=eax*ebx=(j+i)*(j-i)
//eax=EAX-i-5+2j
NEG(ECX); //-i
ADD(ECX,EAX); //eax=eax*ebx=(j+i)*(j-i)-i
ADD(-5,EAX); //-5
SHL(1,EDX); //2*j
ADD(EDX,EAX); //eax=eax*ebx=(j+i)*(j-i)-i-5+2j