Skip to content

Latest commit

 

History

History
7 lines (6 loc) · 1022 Bytes

File metadata and controls

7 lines (6 loc) · 1022 Bytes

MiniVm

La máquina posee una única memoria y su propio lenguaje para ejecutar programas dentro de esta. Este lenguaje consta inicialmente de 17 instrucciones (NOP, MOV, LW, SW, PUSH, POP, PRINT, READ, ADD, SUB, MUL, DIV, CMP, JMP, JMPE, JMPL y HLT) las cuales trabajan con operandos de 4 bytes.

Como usar

Para ejecutar algún código en la mini-vm este debe ser pasado en un archivo de extensión asm como argumento del programa a través de la terminal. Dentro de la Mini-VM las funciones yyparse() y processLabels() se encargan de convertir el código en instrucciones ejecutables por la Mini-VM, que son almacenadas en un arreglo code de tipo struct Instruction (una estructura que almacena la instrucción con sus operandos) para poder realizar las operaciones. Una vez hecho esto se imprime el código en pantalla y se llama a la función run() para ejecutarlo. La función run() consiste en un bucle que ejecuta instrucción por instrucción hasta llegar a la instrucción HTL que denota el fin del programa.