IIC2343 / Syllabus-2023-2

Repositorio del semestre 2023-2 del curso Arquitectura de Computadores del DCC-UC.
37 stars 1 forks source link

Etapa 1: Variables en la RAM #38

Open Monti7475 opened 1 year ago

Monti7475 commented 1 year ago

Resumen: ¿Cómo asigno variables en la ram?

Básicamente así como en el emulador de assembly teníamos la sección de "DATA" para variables Entiendo que tengo que acceder a eso desde la RAM, pero no estoy seguro de como tendría que editarla para introducir los números. Esto es para los números a multiplicar del algoritmo

Geeermy commented 1 year ago

¡Hola!

No sé si eres de mi sección, pero en clases vimos que el Assembler tenía la responsabilidad de agregar instrucciones que escriban las variables en memoria de datos (RAM) antes de la ejecución de las instrucciones definidas en el segmento CODE.

Por ejemplo, si tuviéramos:

DATA:
  var1 2
  var2 7
CODE:
  MOV A,(var1)
  MOV B,(var2)

Lo que hará el Assembler será agregar instrucciones que escriban en memoria los valores que definiste, en este caso:

; Primero se escribe var1 en la dirección 0x00
MOV A,2
MOV (0),A  ; Mem[var1] = 2
; Luego, se escribe var2 en la dirección 0x01
MOV A,7
MOV (1),A  ; Mem[var2] = 7
; Finalmente, se ejecutan las instrucciones definidas en CODE.
MOV A,(0)  ; El assembler reemplaza el label var1 por el literal de su dirección, en este caso 0.
MOV B,(1)  ; El assembler reemplaza el label var2 por el literal de su dirección, en este caso 0.

Este esquema lo deben tener súper presente para la entrega 2. Ahora, respondiendo a tu pregunta puntual: la idea es que agregues al principio de la ROM las instrucciones que escriban en memoria las variables que definiste en DATA, tal como lo expliqué ahora.

¡Avísame si se entiende! :)