我在写(基于.NET)我自己的字节码和虚拟机,并有一件事我无法弄清楚是如何嵌入字符串到我的字节码。现在任何想法,我应该怎么办呢?

有帮助吗?

解决方案

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

如果是这样,如果你关注的是如何编码字符串(相对于其他指令,如跳跃,循环等),你可以创造它自己的“指令”。

例如,十六进制码“01XX”可以是用于容纳XX字节(0到255)的字符串。然后,您的语言翻译器将被教导以存储堆栈(或徘徊无论)此字符串,并移动到解码位于后面的一个字节代码XX字节进一步向下字节码流。

如果您关心的是如何在你对字节码的任何存储混合字符数据和数字数据,请提供具体细节,也许有人可以帮助...

其他提示

如果可以在阵列中存储的数字,则可以存储相同的阵列中的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
hello

也许参考作为字符串将帮助?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top