4

Jasmin Java アセンブラーを使用しておもちゃの言語をコンパイルしています。しかし、jsr 命令を使用して再帰的にサブルーチンに戻り、Java を使用して Jasmin の出力を実行すると、「jsr エントリへの再帰呼び出し」というエラーが発生します。Jasmin コードは次のとおりです (5 を計算しています! (クラス定義は省略しました。これはすべてメイン メソッド本体にあります)):

f:
   swap
   istore 2
   iload 2
   ifeq label0
   iload 2
   iload 2
   ldc 1
   isub
   jsr f
   istore 1
   istore 2
   iload 1
   iload 2
   imul
   goto label1
label0:
   ldc 1
label1:
   swap
   astore 0
   ret 0
main:
   ldc 5
   jsr f
   istore 1
   iload 1
4

1 に答える 1