| ★ CODING ★ Apprendre pas à pas la programmation en assembleur Z80 ★ Présentation de l'Assembleur Z80 ★ |
| Introduction au langage machine |
Note : Toute la description de l'assembleur Z80 et du jeu d'instruction provient du wikibook que j'ai écrit [ici] mais cette version est légèrement actualisée.
L'utilité du langage machine prend tout son sens sur des processeurs anciens ou en architecture contrainte (peu de mémoire, peu de puissance) car c'est le langage qui offre le plus de performance si on le maîtrise. La contrepartie de cette simplicité est que le langage assembleur ne dispose comme instructions que ce dont le processeur est capable. Pour écrire un programme assembleur de bout en bout, il faut être capable de décomposer des instructions complexes en instructions simples. Par exemple, le Z80 n'est pas capable de réaliser de division ni de multiplication. Il faudra les décomposer en additions et décalages. Cet état de fait ne doit pas rebuter le débutant car de nombreuses librairies ou exemples existent. La pratique aidant, l'utilisation de librairies tierces deviendra caduque.
Si la première version est cadencée à 2.5MHz, c'est la version Z80a à 4MHz qui le rendra populaire au milieu des années 80 quand on le retrouvera dans de nombreux ordinateurs personnels tels que l'Amstrad CPC, Spectrum ZX, MSX mais aussi la console de salon Master System et de nombreuses bornes d'arcade dont les fameuses triple-based [archive] de SNK. Quelques années plus tard, on le trouve encore dans des systèmes plus puissants (NeoGeo, Megadrive) non plus en tant que processeur principal mais en tant que coprocesseur pour gérer des puces sonores par exemple. La version NMOS la plus rapide est le Z80h à 8MHz. Une version CMOS a été développée au début des années 2000 pour une fréquence de fonctionnement de 4 à 20MHz. On le trouve encore aujourd'hui dans les calculatrices TI-84 et TI-84+.
Description Son jeu d'instruction est de compatibilité ascendante avec le 8080 d'Intel, auquel il ajoute de nombreuses instructions de manipulation de bit: RES, SET, BIT ainsi qu'une généralisation des instructions de décalage à tous les registres là où le 8080 d'Intel ne pouvait faire des décalages qu'avec le registre A. Sa compatibilité ascendante lui permit de s'imposer comme architecture de référence pour le système d'exploitation CP/M qui fût conçu pour le 8080 au point que certains programmes ne fonctionnaient plus que sur Z80.
Les processeurs compatibles
- Le Sharp LR35902/SM83 utilisé dans la console Game Boy. Certains opcodes sont attribués à d'autres instructions.
|