usando la seguente formula:
$ mcm(a,b) = (a*b)/(MCD(a,b)) $
ora, il mio problema è che, quando uso invokevirtual per il metodo MCD(a,b) questo esegue, restituisce MCD giusto, poi però, invece di proseguire l' esecuzione del main ricarica i valori e riesegue MCD per poi terminare, il programma da me sviluppato è il seguente:
- Codice:
.constant
objref 0xCAFE
.end-constant
.main
.var
x
y
z
i
.end-var
bipush 14
istore x
bipush 21
istore y
ldc_w objref
iload x
iload y
invokevirtual MCD
istore z
iload x
istore i
L1: iload y
ifeq END
iload x
iload i
iadd
istore x
iload y
bipush 1
isub
istore y
goto L1
END: bipush 0
istore i
L2: iload x
ifeq EN2
iload x
iload z
isub
istore x
iload i
bipush 1
iadd
istore i
goto L2
EN2: halt
.end-main
.method MCD(a,b)
iload a
iload b
ST: if_icmpeq EN
iload a
iload b
isub
iflt EL
iload a
iload b
isub
istore a
goto ST
EL: iload b
iload a
isub
istore b
goto ST
EN: iload a
ireturn
.end-method
vi prego di aiutarmi perchè non riesco a capire dove possa essere il problema, grazie,
saluti.