CODINGCLASSEURS WEKA ★ Comment exploiter toutes les ressources et augmenter les performances de votre AMSTRAD CPC ★

4/2.1 - Pourquoi utiliser l'assembleur et dans quels domainesCoding Classeurs Weka

4/0 - Langages du CPC

4/2 - Assembleur Z80 : Définitions et rappels de base

4/2.1 - Pourquoi utiliser l'assembleur et dans quels domaines

Le circuit intégré principal de votre ordinateur est le microprocesseur Z80. Il émet des commandes visibles ou invisibles (pour l'utilisateur) vers ses circuits périphériques. Grâce à lui, vous pouvez :

  • entrer une commande ou un programme au clavier,
  • voir du texte ou des graphismes s'afficher sur l'écran,
  • dialoguer avec des périphériques, etc.

Les microprocesseurs ne comprennent qu'un langage : le binaire. Le Z80 qui est un microprocesseur 8 bits fies données manipulées sont codées sur 8 bits : de 0 à 255) est activé par des instructions en langage machine codées sur 1, 2, 3 ou 4 octets.
Les langages dits « évolués >» (BASIC, LOGO, PASCAL, FORTH, etc.) sont composés d'un ensemble de mots-clés de haut niveau. Chaque mot-clé peut correspondre à un assemblage de plusieurs dizaines d'instructions en langage machine.

Pour être exécutables, les programmes écrits dans ces langages doivent être traduits en langage machine. Deux solutions sont possibles :

  • la traduction est faite instruction par instruction, au moment où l'instruction est exécutée : on parle alors de langage interprété.
  • la traduction est faite avant l'exécution : on parle alors de langage compilé.

La deuxième solution, quoique plus lourde à mettre en oeuvre, procure des temps d'exécution plus courts que la première. En effet, la phase de traduction n'est pas faite pendant mais avant l'exécution.

Définition :

On appelle « taux d'expansion » le rapport entre le nombre de codes en langage machine produits par le compilateur et le nombre de codes en langage machine nécessaires pour produire l'action demandée.

Quel que soit le compilateur utilisé, il aura un taux d'expansion supérieur à 1. En effet, les ordres évolués d'un langage ont souvent plusieurs significations possibles. Par exemple, en BASIC, l'ordre « PRINT » peut envoyer des informations sur l'écran ou sur une imprimante. Les séquences d'ordres générés en langage machine ne sont pas toujours optimisées. Pour cela, il faudrait différencier chaque utilisation possible d'un même ordre, et lui affecter un traitement spécifique ; ce qui augmenterait sensiblement la taille du compilateur.

Malgré l'utilisation de compilateurs à faible taux d'expansion, certaines tâches ont besoin d'être exécutées très rapidement, et la seule solution pour les réaliser consiste à les écrire directement en langage machine, ou à utiliser un assembleur.

Qu'est-ce qu'un assembleur ?

C'est un compilateur à taux d'expansion unitaire qui traduit des codes opératoires en binaire codé en hexadécimal- Programmer en assembleur est strictement équivalent à manipuler des codes en binaire, à ceci près que l'utilisation de codes opératoires facilitera grandement la tâche du programmeur.

 

Page précédente : 4/1.7 Basic MALLARD sur CPC (27e Complément)

CPCrulez[Content Management System] v8.75-desktop/c
Page créée en 041 millisecondes et consultée 1345 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.