IIC2343 / Syllabus-2024-2

45 stars 0 forks source link

E2 Los Labels son variables #118

Open mxmauoc0 opened 6 days ago

mxmauoc0 commented 6 days ago

Buenas! Mi duda es la siguiente... Leyendo las issues de la etapa 2 que se han hecho hasta ahora, me di cuenta que los labels, osea, secciones de código a las que se les asigna un nombre y que, basicamente, representan un puntero a su primera instruccion; son tratados como cualquier variable que perteneciese a DATA, que, a su vez, es tratado como un literal, onda que si tengo este código, por ejemplo:

DATA: b 1 a 3 CODE: MOV A, (a) label: CMP A, label // label tiene el valor de 3, porque es el indice de instrucción de la próxima linea despues de "label:" JEQ fin /> Entonces el JEQ si saltaría a fin, eso es cierto?

Geeermy commented 4 days ago

¡Hola!

Los labels a nivel de instrucción son independientes de los labels a nivel de variable. Entonces, no es correcto usar los labels de CODE como si fueran variables.

En tu ejemplo, por otra parte, no estás entregando una ejecución válida, ya que no existe una instrucción CMP que utilice como argumento una variable sin los paréntesis. Tendrías que cambiar tu ejemplo a:

CMP A,(label)

Y dicha ejecución se caerá si no existe una variable de ese nombre.

¡Saludos!