Sintaxis

La sintaxis general de los programas de la Máquina Sencilla está inspirada en la sintaxis de ensamblador. Estos disponen de difererentes secciones, cada una con un propósito específico.

Secciones

Veamos el siguiente ejemplo:

.ver 1 .data 79 dw dato 0x00 dw const_1 0x01 .fin end .code etiqueta: ADD const_1, dato CMP 0x7F, 0x7F BEQ etiqueta end:

Sección .ver

Esta sección es opcional y se utiliza para indicar la versión del lenguaje de programación. En este caso de no especificarse, se asume que es la versión 1.

.ver <version>

Versiones disponibles:

VersiónDescripción
1Versión inicial

Sección .data

Esta sección es opcional y se utiliza para declarar variables.

La sección .data puede estar (o no) seguida de una dirección de memoria en la que se almacenarán los datos declarados. En caso de no especificarse una dirección, el traspilador asigna automáticamente la siguiente dirección disponible tras la sección .code + 1.

ValorDescripción
00 0000101 0000100ADD const_1, dato
01 1111111 1111111CMP 0x7F, 0x7F
11 0000000 0000000BEQ etiqueta
00 0000000 0000000SEPARACIÓN CODE-DATA
00 0000000 0000000dato
00 0000000 0000001const_1

Para declarar una variable, se utiliza la palabra reservada dw seguida del nombre de la variable y su valor. El valor puede ser un número hexadecimal (0x…) o decimal.

dw <nombre variable> <valor>

Sección .code

Esta sección es obligatoria y se utiliza para escribir el código de la Máquina Sencilla.

Se pueden utilizar etiquetas para marcar posiciones de memoria. Estas etiquetas se pueden referenciar a la hora de saltar a una posición de memoria.

etiqueta: <instrucción> BEQ etiqueta