Evo koda:
Za najbolji slucaj, kada su sve varijable na nultoj strani:
Code:
ldx 20;
repeat
ldaa [zwA.1];
adda [zwB.1];
staa [zwC.1];
ldaa [zwA.0];
adca [zwB.0];
staa [zwC.0];
until decr(indX) =0 ;
i prevod:
Code:
$e025 : $ae14 [2] ldx $14
$e027 : $b652 [3] ldaa [$52]
$e029 : $bb54 [3] adda [$54]
$e02b : $b756 [3] staa [$56]
$e02d : $b651 [3] ldaa [$51]
$e02f : $b953 [3] adca [$53]
$e031 : $b755 [3] staa [$55]
$e033 : $5bf2 [4] dbnzx $e027
u najgorem slucaju su sve varijable van nulte strane, ali je izvorni kod isti, pa dajem samo prevod:
Code:
$e026 : $ae14 [2] ldx $14
$e028 : $c60102 [4] ldaa [$0102]
$e02b : $cb0104 [4] adda [$0104]
$e02e : $c70106 [4] staa [$0106]
$e031 : $c60101 [4] ldaa [$0101]
$e034 : $c90103 [4] adca [$0103]
$e037 : $c70105 [4] staa [$0105]
$e03a : $5bec [4] dbnzx $e028
I ja sam napravio gresku, u srednjim zagradama je trajanje naredbe u ciklusima, i vidis da skok na pocetak petlje traje 4 ciklusa, a ja sam racunao 3 (po inerciji jer svi uslovni skokovi toliko traju, ali ovaj je skok sa dekrementiranjem). Zbog toga dodaj po 20 ciklusa za trajanje izrazeno ciklusima, i za vreme dodaj 1us iz istog razloga.
Pozdrav.