Pequeña discrepancia en la egecucion del gdb para test.s

Pequeña discrepancia en la egecucion del gdb para test.s

de Felipe Tenchio Penela -
Número de respuestas: 2

Siguiendo el tutorial "guiá herramientas para el curso" sin ninguna dificulta, al llegar al punto 4- "Ejemplo de ejecución de prueba", obtengo un resultado diferente al esperado en la información del registro hl como se puede apreciar en la imagen adjunta.

A que se debe esto ?

Haber ejecutado el gdb o compilar mas de una ves puede tener que ver ?

Captura de la discrepancia en los resultados de gdb para test.s

En respuesta a Felipe Tenchio Penela

Re: Pequeña discrepancia en la egecucion del gdb para test.s

de Julio Perez -
Supongo que te referís al valor diferente de HL, no?
La diferencia se debe a un pequeño cambio en la configuración de las herramientas que hicimos hace algunos años, pero la captura de pantalla que pusimos en la guía fue hecha antes de ese cambio. Ese cambio hace que la variable dato ahora esté almacenada en la dirección 0xB100, antes quedaba en la dirección 0xB016. Seguí para adelante, no le hagas caso a esa diferencia.

Todo esto va a quedar más claro cuando completemos la clase del próximo miércoles.
Igual adelanto acá algo de la explicación:
El registro HL se carga en la línea 16, con la instrucción LD HL, dato
El símbolo dato está definido al final del programa, en la línea dato: db 0
El ensamblador que usamos permite definir diferentes áreas de memoria (secciones) para ubicar diferentes partes de nuestro código. Las secciones que se utilizan siempre son .text (en la línea 14), usada para poner las instrucciones de nuestro programa, y .data (en la línea 30, para almacenar las variables.
La ubicación de esas secciones en memoria se definen al invocar el linker, y está fijo en los scripts. Eso es lo que cambió entre la ejecución en la que se hizo la captura de pantalla de la guía y la ejecución de tu prueba.
Debe estar medio oscuro, espero que después de la clase del miércoles quede más claro.

julio