0

私は自分のバイトコードと仮想マシン(.NET上)を書いていますが、理解できないことの1つは、バイトコードに文字列を埋め込む方法です。今、私はそれをどのようにすべきかというアイデアはありますか?

4

2 に答える 2

1

どうやらあなたはあなた自身のバイトコードを定義しているようです。これは.NETCILの構文/文法とは何の関係もありませんよね?

もしそうなら、そしてあなたが文字列をどのようにエンコードするか(ジャンプ、ループなどの他の命令とは対照的に)に関心があるなら、あなたはそれのためにあなた自身の「命令」を発明することができます。

たとえば、16進コード「01xx」は、xxバイト(0〜255)を含む文字列の場合です。次に、言語インタプリタは、この文字列をスタック(または任意の場所)に格納し、バイトコードストリームのxxバイト下にある次のバイトコードをデコードするように指示されます。

バイトコード用のストレージに文字データと数値データを混在させる方法が気になる場合は、詳細をお知らせください。誰かがお手伝いできるかもしれません...

于 2009-09-19T05:31:44.703 に答える
0

数値を配列に格納できる場合は、ASCIIデータを同じ配列に格納できます。クラスとしての文字列の概念を無視すると、単純な文字列はとにかく単なる文字配列です。Cでは、値が0のバイトは文字列の終わりを示します。

Cの単純な概念実証として:

int main()
{
    putchar(104); // h
    putchar(101); // e
    putchar(108); // l
    putchar(108); // l
    putchar(111); // o
    putchar(10);  // \n
    return 0;
}

出力:

$ ./a.out
こんにちは

文字列としての文字配列の参照が役立つかもしれませんか?

于 2009-09-19T05:37:28.403 に答える