我正在尝试使用带有 MIC-1 ASSEMBLER 的 .jas 文件在 iJVM 中创建一个程序,通过键盘输入两个数字并将它们相乘以获得输出 EX: 2*2=4
在下面的代码中,我只是对随机数进行了双向推送,因为当我使用“in”获取输入时,它没有给我输入
当我在没有方法的情况下仅在 main 中 bipush 7 和 bipush 2 时,输出为:EX:输入 x:20 输入 y:2
我得到了 ascii 数字,所以我假设它采用十六进制 0x20 和 0x02 并将其相乘得到 0x40 并输出 ascii 字符
.main
.var
x
y
sum
.end-var
BIPUSH 7
ISTORE x
BIPUSH 5
ISTORE y
BIPUSH 0x40
INVOKEVIRTUAL imul
out
.end-main
.method imul(x,y)
.var
x
y
temp
sum
.end-var
BIPUSH 2
ISTORE x
BIPUSH 20
ISTORE y
L1:
BIPUSH 0
ISTORE sum
GOTO L2
L2: ILOAD y
IFEQ exit
POP
ILOAD x
DUP
IADD
ISTORE temp
GOTO L3
L3: ILOAD y
BIPUSH 2
ISUB
ISTORE y
GOTO L4
L4: ILOAD temp
ILOAD sum
IADD
ISTORE sum
GOTO L2
exit: ILOAD sum
IRETURN
.end-method