2016-03-18 17 views
-1

私はIJVMの「SIMPLEプログラム」をやる、それが求められます。IJVMでどのようにprobleを解決できますか?

あなたが入力ONLY数字(0x30からます。0x39まで)で取得する必要があります。

たとえば、(Aまたはbまたはgなど)を挿入すると、「HALT」で停止します。 アルファベット文字なしで0x30から0x39までの値をとる条件を作るにはどうすればよいですか?

答えて

0

2つの個別のテストが必要です。

  1. まず、入力が0x30以上であるかどうかをテストします。
  2. 次に、入力が0x40未満であることをテストします。

両方の条件を満たす場合は、入力します。


「もし」の約3種類のコメントへの応答:

各条件分岐が2つの可能なジャンプの目標、条件が真のときに1つずつ、条件が偽のときのために他を持っています。 N < 0テストのために、TRUEアドレス< 0をn個の場合、N> = 0 N < 0テストもに応じて、N> = 0をテストすることができる場合、FALSEアドレスを採取する採取する

取られた住所

+0

はい、しかし、 "IF"の3種類がある場合は解決できます。 1)n <0 IFLT 2)n = 0 IFEQ 3)n = n IF_ICMPEQ n <0x40(@)はどのように解決できますか? – Paolo

+0

@Paoloあなたはマニュアルを読んだり、何か考えましたか? 'IFEQ'と' IF_ICMPEQ'は、オペランドが** equal **の場合にジャンプします。したがって、この場合どのように便利ですか?ここで** ** –

+0

未満を確認する必要があります。 1)INPUTのメソッドで、mainの値として渡され、ローカル変数に格納されました。 2)0x30(0 HEX)をロードした後、 "ISUB"を実行した。 3)IFLTラベル GOTOラベル2。 ありがとうございました! – Paolo

関連する問題