¿Cómo son cadenas incrustadas en archivos binarios?
-
11-09-2019 - |
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?
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?