Я пытаюсь создать программу в iJVM, используя файл .jas с MIC-1 ASSEMBLER, чтобы ввести два числа с клавиатуры и умножить их вместе, чтобы получить результат
EX:
2 * 2 = 4
В приведенном ниже коде я просто выбрал случайные числа, потому что когда я использовал 'in' для получения ввода, он не давал мне ввода
Когда я использую bipush 7 и bipush 2 только в main без метода, получается:
EX:
Вход х: 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