Primer dibujado XOR: evitar costes con código automodificable [#ASM #Z80]
Channel: Profesor Retroman
Date: 12/10/2019

[Sesión 7.3]: Analizamos un problema que surge al dibujar con XOR. Al borrar antes que dibujar, la primera vez se quedan los sprites. Este problema requiere que hagamos algo distinto la primera vez que renderizamos de las demás. Con esto surge un potencial problema de rendimiento que analizamos y solventamos.
Contenidos Detallados:
- Poner un salto condicional en mitad del render produce que eso se esté comprobando todas las veces que renderizamos. Si además sólo tiene éxito la primera vez, es innecesario y costoso
- Analizamos en detalle este problema y estudiamos posibles soluciones
- Creamos una nueva versión de la función de render, especializada en realizar la tarea sólo la primera vez
- Nos encontramos el mismo problema al decidir si llamar a una función o a otra, pues necesitamos un salto condicional
- Analizamos en el nivel de código máquina las llamadas a una y otra función y vemos cómo modificar el código máquina en tiempo de ejecución para evitar el salto condicional
- Entendemos como funciona el cambio realizado y vemos en el depurador como el código máquina ha sido modificado para llamar a una y otra función alternativamente, pero sin el salto condicional
- Tras analizarlo vemos que todavía nos queda un fleco por resolver: lo que sucede cuando se inicia una nueva partida

Clase de Razonamiento Automático 2019/20
Grado en Ingeniería en Informática
Universidad de Alicante