Programme initial pour processeur 6809 : 175 cycles
Programme modifié pour processeur 6309 en mode émulation : 167 cycles (gain 4,5%)
Programme modifié pour processeur 6309 en mode natif : 134 cycles (gain 23,5%)
On peut peut-être faire mieux en utilisant d'autres fonctions cachées du 6309.
Code : Tout sélectionner
Lecture d'un octet pour processeur 6809 : 21x8 + 7 = 175 cycles
---------------------------------------------------------------
RBYTE
LDA #$FE b0 marqueur fin de boucle (2)
RBYTE1
LDB #$7F Valeur pour test bit 7 (2)
STB <$CC clock high, di high (4)
CMPB <$CC PA b7 (bit lu) -> carry (4)
LDB #$5F clear bit 5 (2)
STB <$CC clock low, di high (4)
ROLA C (bit lu) -> b0 reg A (2)
BCS RBYTE1 suite de la boucle (3)
RTS retour (octet dans A) (5)
Code : Tout sélectionner
Lecture d'un octet pour processeur 6309. Registre W prealablement initialise : $7F5F
20x8 + 7 = 167 cycles en mode emulation () 16x8 + 6 = 134 cycles en mode natif []
------------------------------------------------------------------------------------
RBYTE
LDA #$FE b0 marqueur fin de boucle (2) [2]
RBYTE1
STE <$CC clock high, di high (5) [4]
CMPE <$CC PA b7 (bit lu) -> carry (5) [4]
STF <$CC clock low, di high (5) [4]
ROLA C (bit lu) -> b0 reg A (2) [1]
BCS RBYTE1 suite de la boucle (3) [3]
RTS retour (octet dans A) (5) [4]