0

我正在编写自己的字节码和虚拟机(在 .NET 上),而我不知道的一件事是如何将字符串嵌入到我的字节码中。现在有什么想法我应该怎么做?

4

2 回答 2

1

显然你正在定义你自己的字节码。这与.NET CIL 的语法/语法无关,对吧?

如果是这样,并且如果您关心的是如何编码字符串(而不是其他指令,如跳转、循环等),您可以为它发明自己的“指令”。

例如,十六进制代码“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 回答