Samuel Devulder a écrit:
Oui faire une addition de deux registres sur 6309 sans se payer un accès ram change carrément la donne. Les registres en plus sont aussi les bienvenus car, encore une fois, cela réduit la nécessité d'utiliser la ram dont les accès sont relativement longs (sur registre: inca = 2 cycles, en ram: inc = 6 cycles)..
Attention aussi aux 4Mhz du Z80... Une instruction chez eux prends minimum 4 cycles (sans compter les temps d'attente de la RAM), donc aux max le Z80@4mhz développe 1 mips. Sur 6809, un instruction minimale est de 2 cycles, soit au max 0.5 mips
Maintenant les instructions 6809 sont plus puissantes que celles du Zx80, donc ca s'équilibre en pratique
avec un léger avantage au Z80 et sa double banque de registres, mais il faut être un sacré bon programmeur pour en tirer parti (cf UTZ qui joue des échantillons audio en PWM 22khz sur le buzzer du spectrum alors que sur 6809
j'atteint péniblement une restitution avec une porteuse dégueu à 5khz)
Justement j'ai vérifié le jeu d'instruction du Z80 ici
http://map.grauw.nl/resources/z80instr.php et on voit que rien que pour les INC et DEC, le Z80 prnd au moins 2 fois plus de temps que le 6809... Il y a de très nombreuses instruction dépassant les 10 cycles (alors que ça dépasse rarement les 6 pour le 6809), donc en effet, dire que le 6809 1MHz vaut au moins un ZX80 à 2 MHz n'st pas usurpé. Mais le Z80 se dit apparemment "RISC" et semble utiliser la techno du Pipe line! En théorie ça signifie que des ensembles d'instruction à la chaine prendraient moins de temps que si on additionnait ces instruction 1 à 1 (enfin ça c'est en théorie : parce qu'il y a 3 phase dans l'exécution d'une instruction dans la techno pipe line... Pendant qu' l'instruc 1 arrive en phase 3, l'"inst2 fait la phase 2 et l'inst3 la phase 1)
Le Z80 a en tout 13 registres de 16 bits
https://fr.wikibooks.org/wiki/Programmation_Assembleur_Z80/Registres, ça lui confère un des avantage des processeurs RISC (comme les ARM Accorn). C'est nettement mieux que les 4 registres 8 bits et 4 registres 16b du 6809.
Mais avec le 6309, on a 9 registres 16 bits (dont 2 accumulateurs 16 bits) et 3 registres 8 bits, ce qui est plus intéressant. Et avec les instruction de MUL, DIV sur 16/32 bits, les transfert interregistres, l'instruction de copie de bloc en rafale (une seule sinstruction pour transférer des centaines voire milliers de kO c'est pas mal).