★ CODING ★ Zilog Z80 la programmation ★ |
Z80infos |
Les registres Le Z80 est un microprocesseur 8 bits mais il a un bus d'adressage sur 16 bits donc capable d'adresser 64Ko. Les registres sont des mémoires internes au processeur impliquées dans la plupart des instructions. Ils sont souvent représentés comme des cases dans lesquelles sont stockées des valeurs de différentes tailles. On classe traditionnellement ces registres en familles : registres généraux, d'états, d'index, etc... Dans les registres généraux se classent les 5 registres 8 bits "de travail" : A (appelé accumulateur pour des raisons historiques), B, C, D et E. Ils peuvent se regrouper pour former des registres 16 bits: BC,DE,HL et... AF, mais qu'est que c'est que ce F ??? Il s'agit du registre des flags , il est sur 8 bits et je m'en vais vous les d'écrire. Les flags sont dans l'ordre décroissant S, Z, HC, PO, N, C. Pour clore cette famille, il y a les registres pointeurs, il en existe deux sur le Z80, IX et IY, ils sont évidemment 16 bits. PC est le program counter, il contient en permanence l'adresse mémoire de l'instruction exécute par le microprocesseur. SP le pointeur de la pile. Il reste encore R : memory refresh register et I : Interrupt page address Mais ce n'est pas fini car il existe un plan secondaire de registre A',B',C',D',E',F' et HL', on ne peut pas y accéder en même temps que le plan principal. EXX échange B',C',D',E',HL' et B,C,D,E et HL, il faut rajouter EX AF,AF pour échanger aussi A',F' et A,F . Récapitulatif liste des registres: +--------------------------+---------+---------+| | 8 bits | 16 bits |+--------------------------+---------+---------+|Registres généraux | A | AF || | B | BC || | C | DE || | D | HL || | E | |+--------------------------+---------+---------+|Registres généraux | A' | AF' ||(plan secondaire) | B' | BC' || | C' | DE' || | D' | HL' || | E' | |+--------------------------+---------+---------+|Pointeurs (indexage) | | IX || | | IY |+--------------------------+---------+---------+|Pointeurs de piles | | SP |+--------------------------+---------+---------+|Programm Counter | | PC |+--------------------------+---------+---------+|Flags | F | || | F' | |+--------------------------+---------+---------+L'indicateur FLAG Les indicateurs sont les bits d'un registre un peu spécial (registre de flag ou d'indicateurs). Ces bits sont indépendants les uns des autres, et peuvent être modifiés selon le résultat des instructions exécutées par le processeur. En effet, la plupart des instructions ont la propriétés de modifier la valeur de certains de ces indicateurs en fonction de leur résultat. +------+---+-----------------------+| bits | | Nom |+------+---+-----------------------+| 7 | S | Sign flag || 6 | Z | Zero Flag || 5 | | || 4 | H | Half Carry flag || 3 | | || 2 | P | Parity/Overflow flag || 1 | N | Add/Subtract flag || 0 | C | Carry flag |+------+---+-----------------------+https://CPCrulez.fr
|