Veuillez consulter cette page à partir de l'interface principale.
version 2011-10-

EZB : Extrait d'un octet et met son signe à Zéro

Cette instruction sélectionne un des octets du registre source pour le mettre dans les bits de poids faible du registre destination. Les octets de poids fort sont mis à zéro, pour travailler avec des données non signées. C'est en quelque sorte l'équivalent de SHR mais qui travaille sur des octets et non des bits.

Pour le YASEP16, l'opération sélectionne un octet parmi deux, alors que le YASEP32 sélectionne un octet parmi quatre, comme sur le diagramme suivant :

Cette instruction est typiquement utilisée lors du chargement d'un octet non signé de la mémoire vers un registre, car elle effectue l'alignement et le remplissage du signe en un seul cycle. La mémoire est cependant accédée au travers des registres, un mot à la fois et cette instruction ne fait qu'ajuster le mot obtenu.

Normalement, les octets viennent d'un registre D (qui contient une donnée venant de la mémoire), l'indice de l'octet à sélectionner est fourni par un registre A (l'adresse de la donnée lue) mais n'importe quel registre est utilisable. Il est aussi possible de fournir un indice directement avec une valeur immédiate (Imm4 ou Imm16), c'est pourquoi l'indice est écrit en premier dans l'instruction.

; charge l'octet situé à l'adresse 123h dans le registre R1 :
MOV 123h A1
EZB A1 D1 R1

• L'instruction EB est similaire mais travaille avec des octets signés, donc étend le MSB de l'octet sélectionné.

• L'instruction EZH est similaire mais travaille avec des demi-mots (16 bits) non signés.