Pregunta

Estoy escribiendo mi propio código de bytes y la máquina virtual (en .NET) y una cosa que no puedo entender es cómo insertar cadenas en mi código de bytes. Cualquier idea ahora cómo debo hacerlo?

¿Fue útil?

Solución

Al parecer se está definiendo su propio código de bytes. esto no tiene nada que ver con la sintaxis / gramática de .NET CIL, ¿verdad?

Si es así, y si la preocupación es cómo codificar cadenas (en comparación con otras instrucciones, como saltos, bucles, etc.), sólo puede inventar su propio "instrucciones" para ello.

Por ejemplo, código hexadecimal "01xx" podría ser para una cadena que contiene xx bytes (0 -255). Su intérprete de lenguaje sería entonces enseñó a almacenar esta cadena en la pila (o dondequiera) y pasar a decodificar el siguiente código de byte situado xx bytes más abajo en la corriente de código de bytes.

Si preocupación es cómo mezclar los datos de caracteres y datos numéricos en cualquier almacenamiento que tiene para el código de bytes, proporcione detalles y tal vez alguien puede ayudar ...

Otros consejos

Si usted puede almacenar números en una matriz, entonces se puede almacenar datos ASCII en la misma matriz. Haciendo caso omiso de la idea de una cadena como una clase, una cadena simple es sólo una matriz de caracteres de todos modos - y en C, un byte con un valor de 0 indica el final de la cadena

.

Como un simple prueba de concepto en C:

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

Salida:

$ ./a.out
hello

en matrices de caracteres como cadenas ayudaría?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top