This repository has been archived on 2021-10-31. You can view files and clone it, but cannot push or open issues or pull requests.
CAHomework/Homework 8/maggioni_rodolfo_masera_ca8...

51 lines
824 B
Plaintext

// product.jas
.constant
OBJREF 0x40 // needed for method invokation - see S.C.O. chapter 4
.end-constant
.main // start of program
LDC_W OBJREF // do not forget to push OBJREF on stack!
BIPUSH 0x15 // paramater n (i.e., n = 21)
BIPUSH 0x9 // paramater m (i.e., m = 9)
INVOKEVIRTUAL product
HALT // stops program execution
.end-main
.method product(n,m) // takes two arguments ("n" and "m")
.var
temp // change variable names as needed
.end-var
// just some code example:
BIPUSH 0x00
ISTORE temp
loop:
ILOAD m
IFEQ end
ILOAD temp
ILOAD n
ILOAD m
IFLT subsum
IADD
GOTO donesum
subsum:
ISUB
donesum:
ISTORE temp
ILOAD m
BIPUSH 1
ILOAD m
IFLT add
ISUB
GOTO update
add:
IADD
update:
ISTORE m
GOTO loop
end:
// this is obviously very useful
ILOAD temp
IRETURN
.end-method