| ★ CODING ★ Apprendre pas à pas la programmation en assembleur Z80 par Roudoudou ★ Premiers programmes (briques indispensables) ★ |
| Déplacer des données dans la mémoire 2/2 |
Tenir compte de la contrainte de bus quand on déplace des donnéesDans l'article précédent, nous avons abordé l'usage de l'instruction LDIR du Z80. Cette instruction est performante car elle réalise en fait 6 instructions à la fois.
- Lire la donnée C'est très rapide en regard du service rendu. Ce genre d'instruction se retrouve sur les processeurs Intel (rep movsb) où c'est le moyen le plus performant de façon générale. Comment ça de façon générale? Il y a mieux? Plus rapide? Si vous voulez une routine de copie mémoire un peu plus rapide, cela existe, vous la trouverez dans la [page d'optimisation en vrac] L'important est surtout d'adapter son code à la copie que l'on veut réaliser. Je vous ai montré comment copier un écran, le LDIR est très bon.
Par contre, si vous devez copier une donnée dont vous connaissez le contenu à un endroit précis, vous aurez tout intérêt à stocker cette donnée dans le code lui même. Ainsi, le Z80 va lire votre instruction qui contient la donnée et l'écrire ensuite avec une deuxième instruction. Par exemple, si vous devez écrire une valeur à une adresse, il est plus simple d'écrire : ld a,valeur : ld (adresse),a ; 6 nopsPas besoin de copier la valeur de quelque part ou d'initialiser un compteur, deux pointeurs. Ça fonctionne aussi en 16 bits et c'est presque aussi rapide! ld hl,valeur : ld (adresse),hl ; 8 nopsSi vous avez des petits objets à copier, pour initialiser une structure, c'est déjà plus rapide qu'un LDIR en utilisant l'écriture 16 bits avec HL. Pour écrire vos valeurs n'importe où en mémoire, c'est toujours plus rapide que passer par LDIR et le code reste lisible ; HL=destination |
|
Page créée en 662 millisecondes et consultée 16 fois L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko. |