¿Ocupa más? Creo que son 5 bytes ambas, ¿no?
Eeeem... no se por qué me había empeñado en que
add hl,hl ocupaba dos bytes...
He dejado el tema del DJNZ para poder hacer multiplicaciones por potencias de dos entre 2^1 (2) y 2^15 (32.768).
Nada, nada... eso se puede arreglar como sigue:
HLPOR32768: add hl,hl
HLPOR16384: add hl,hl
HLPOR8192: add hl,hl
HLPOR4096: add hl,hl
HLPOR2048: add hl,hl
HLPOR1024: add hl,hl
HLPOR512: add hl,hl
HLPOR256: add hl,hl
HLPOR128: add hl,hl
HLPOR64: add hl,hl
HLPOR32: add hl,hl
HLPOR16: add hl,hl
HLPOR8: add hl,hl
HLPOR4: add hl,hl
HLPOR2: add hl,hl
ret
Rutina que ocupa 16 bytes y es más rápida que el bucle
Evidentemente, si lo que quieres es velocidad, como dice Sap, hay que desenrollar todos los bucles al máximo.
cuanto más mejor
Podríamos resumirlo en la siguiente máxima: "para llegar antes no hay que enrollarse"