HispaMSX

Re: [hispamsx] RE: dudas asm z80

2003-05-08 09:05:49


se me ocurre esto,porque no creo que sea posible lo de la variable 
directamente:

; SET (var),A
; var=[0,7]

PUSH AF
LD   A,[VAR]
LD   B,A
LD   A,0
SCF

NBIT:

RLA
DJNZ NBIT

LD   B,A
POP  AF
OR   B

En lugar de usar el push af y pop af usa un ex af,af' al principio y otro
al final. En lugar de usar ld a,0 usa xor a o sub a, ocupan 1 solo byte y
son mas rapidas. En este casi si puedes usar RLCA sin problemas, como a es
0 no va a afectar los bits superiores.

Yakumo: tienes razon sobre lo de la sobreoptimizacion, muchas veces st
pones a optimizar y no avanzas nada por optimizar las cosas al maximo, y
normalmente es en sitios donde no afecta a la velocidad final del
programa, pero hay una serie de habitos que hay que usar siempre de manera
automatica como el xor a, y aquellas rutinas criticas hay que optimizarlas
en cuanto se escriben, porque en caso contrario no realizaran su trabajo
de manera correcta.


Roberto.




 


<Anterior en la conversación] Conversación actual [Siguiente en la conversación>