Estoy tratando de optimizar un código antes de que crezca demasiado, y se me plantean varias dudas.
Para ver si una instrucción o conjunto de ellas es más optima que otra u otras, basta con considerar los T states, o tiene algo que ver los M Cycles. (Así es como lo he leido, pero se me antoja que serían M States y T Cycles, ¿no?).
Otra cosa, Para acceder a la "estructura" de datos de cada jugador, he creado las siguientes variables:
tanque_x equ 0
tanque_x_dec equ 1
tanque_y equ 2
tanque_y_dec equ 3
tanque_dir equ 4
tanque_dx equ 5
tanque_dx_dec equ 6
tanque_dy equ 7
tanque_dy_dec equ 8
tanque_retdir equ 9
tanque_retdir_dec equ 10
tanque_retmov equ 11
tanque_retmov_dec equ 12
tanque1:
x1: .word
y1: .word
dir1: .byte
dx1: .word
dy1: .word
ret_dir1: .word
ret_mov1: .word
relleno1: ds (32-13)
tanque2:
x2: ...
x2: ...
para cada ciclo, hago
LD IX, tanque(lo que corresponda)
y para ver cada valor
LD H,[ix+tanque_x]
LD L,[ix+tanque_x_dec]
y similares
Para hacerlo con HL, tendría que calcular cada vez que quiero usar una variable, el desplazamiento para cada jugador y el desplazamiento de la variable.
No he pensado todavía como hacerlo, no me he puesto, pero si me pudierais decir qué es mejor, si dejarlo con IX, o intentar hacer algo sin usar ese registro, igual puedo "ahorrarme unos cuantos ciclos de reloj (yo)"
Muchas gracias.