hiba a hacer la parte 6 de erickassembly sobre como usar el modo alto nivel , pero mientras estuve testeando el codigo que compile con el hlvc (hight-level compiler) lo descompile y las instrucciones que salieron eran totalmente diferentes a las que originalmente se habian convertido del ErickAssembly de alto nivel al de bajo nivel, que rayos esta pasando?
Ese no es el chiste de un descompilador? Convertir el de alto nivel al de bajo nivel?
no es que hay un modo de ErickAssembly llamado HighLevelCompiler que permite convertir un .easm con una sintaxis mas parecida a C por ejemplo
HightLevel[
use "ASCII"
/*
configure statuses
*/
WORD Success
WORD Warnning
WORD Error
SetVar Success 0
SetVar Warnning 1
SetVar Error 2
Print "Hello\sWorld"
]HightLevel
entonces ese codigo lo convierte a ErickAssembly comun y corriente, he probado depurar el proceso y imprimir el outpud y aparece lo que quiero, el problema es cuando tengo el binario, lo descompilo y sorpresa, las instrucciones que muveen caracteres han desaparecido, tambien la sumas que convierten las mayusculas en minusculas, y el codigo descompilado queda asi
EA
move 6,0
move 11,2
move 2,32
system_call 8,1
move 2,32
system_call 8,1
move 2,32
system_call 8,1
move 2,32
system_call 8,1
move 2,32
system_call 8,1
move 2,32
system_call 8,1
move 2,32
system_call 8,1
move 2,32
system_call 8,1
move 2,32
system_call 8,1
move 2,32
system_call 8,1
move 2,32
system_call 8,1
y lo peor es que al ejecutarlo en KellyBootloader el codigo que se ejecuta es el erroneo
Perdón de que no pueda ayudar mucho…
Pero en 1er lugar usas los términos de manera errónea, te dejo un glosario.
Glosario
- Compilar: Traducir código altonivel a código ejecutable. (generalmente bytecode o binario)
- Transpilar: Traducir código altonivel de un lenguaje a otro igualmente altonivel.
Los prefijos “De-” y “Des-” son usados para denotar la inversión de la acción (Deshacer), Decompilar es el proceso de traducir código ejecutable a código fuente, pero eso no es código ejecutable, lo que haces es algo así como Detranspilar.
En 2do lugar, no tenemos las herramientas para depurar (Ni siquiera sé donde está el git del lenguaje)…
PD: Créo que encontré el compilador, pero no tenía idea ya que faltaba mucha documentación o algún
readme.md
… Perdón por la ignorancia.
Dejando ello, hay un código medio raro en el código objeto que te dá:
Esas 2 líneas se repiten 11 veces seguidas, cosa que muy normal no es al ser manejo de memoria.
No tengo bien en claro como se supone que manejarás las variables, ya que, para tener ello debes tener como mínimo un sistema de tags numéricos, o sea, un pseudosistema de archivos tipo array.