1) forgot to increment stackpointer
2) used inputcounter and not inputaddress for load
;73
vm_imm:
;load new high byte
- ldb r6, 4(r2)
+ ldb r6, 4(r4)
;shift high byte
lls r6, r6, 8
;load 2nd byte
- ldb r7, 3(r2)
+ ldb r7, 3(r4)
;add to high byte
add r6, r6, r7
;shift
lls r6, r6, 8
;load
- ldb r7, 2(r2)
+ ldb r7, 2(r4)
;add
add r6, r6, r7
;shift
lls r6, r6, 8
;load
- ldb r7, 1(r2)
+ ldb r7, 1(r4)
;add
add r6, r6, r7
;store result to stack
stw r6, 0(r3)
;pc+4
addi r2, r2, 4
+ ;increment sp
+ addi r3, r3, 4
br+ vm_loop
;case J