Open fgarl opened 3 weeks ago
Hola! La idea es que al leer la sección DATA su assembler agregue las instrucciones necesarias para escribir en la RAM cada valor en la RAM.
DATA:
x 6
y 7
CODE:
MOV A, 1 // "primera" instrucción
...
JMP 0
Efectivamente, esto causará un desfase en la numeración de las instrucciones, por lo que deben tomarlo en cuenta para que al leer la instrucción JMP 0
salte a la primera instrucción de la sección CODE.
Entonces, el assembler en este caso escribe el opcode correspondiente a la instrucción JMP Ins
, pero el literal q escribe no es 0.
Ok, entonces estaria bien que al tener
DATA:
var 1
sea equivalente a tener lo siguiente?
CODE:
MOV A, 1
MOV (0), A
MOV A, 0
Correcto, son equivalentes. Aunque no se si es tan necesario hacer MOV A, 0
después de guardar cada variable, pero queda a su criterio. Si lo hacen así, deben tomar en cuenta que habrán 3 instrucciones por cada variable en DATA.
Vale, gracias, entonces ese desfase en teoría solo afecta a los JMPs y a CALL ya que son los unicos que usan Ins cierto?
Claro, en definitiva afecta la numeración "real" de las instrucciones y por lo tanto afecta a los labels que guardarás, los cuales se referencian con JMP
s y CALL
.
Hola, para guardar la seccion DATA en la RAM, hay que escribir en la ROM primero las instrucciones respectivas para escribir en la RAM mediante la CPU o hay alguna forma de escribir en la RAM en el mismo assembler mediante el directorio iic2343?
Si hay que escribir en la ROM, no crearia conflictos al hacer por ejemplo JMP 0 si es que hay una variable, ya que saltaría a la seccion de DATA en vez de la de CODE?