3

私の入力ファイルは次のようになります。

 00 READ 9
 01 READ 10
 02 WRIT 9
 03 LOAD 10

5 つの整数変数 ( reg1、reg2、reg3、reg4、reg5 など) しか使用できず、各行を読み取り、READ などの命令を対応するコード 10 に変換する必要があります。

読み取られた情報は、長さ 100 の整数配列に格納されます。したがって、最初の数行が読み取られ、変換され、次のように格納されます。

 0     1    2
 1009  1010 1109

これについて最善の方法は何ですか?

4

2 に答える 2

0

ご覧のとおり、すべてのニーモニックは 4 バイトです。単純に 32 ビット整数を割り当て、そのアドレスをデータ読み取りルーチンに供給して 4 バイトを読み取ることができます。次に、「READ」は 1145128274、「WRIT」は 1414091351 などになります。これは、文字列よりもはるかに簡単に比較できます。

またはその逆 - すべての入力を読み取り、(int*) ポインターをニーモニックに設定します。そんな感じ:

char input[]="10 READ 09";
int* opcode = (int*)&input[3];
if( *opcode == 1145128274 ) // then it's READ
于 2013-05-31T07:32:45.830 に答える