Les différents modes d'adressages
L'adressage immédiat :
La valeur indiquée derrière l'instruction est à charger immédiatement dans le registre.
Syntaxe : Instruction #valeur où valeur < 256
L'adressage en page zéro :
La zone composée des 256 premiers octets est appelée la page zéro (sur 16 bits, la partie haute est toujours égale à 0). Plutôt que d'indiquer cette partie haute toujours à 0, il existe des instructions qui travaillent directement dans cette page. Ceci permettant de gagner en taille occupée (au lieu de 3 octets, 1 pour l'instruction et 2 pour la zone mémoire, on occupe 2 octets : 1 pour les instructions et 1 pour la zone mémoire) et donc un gain en vitesse d'exécution.
Syntaxe : Instruction valeur où valeur < 256
L'adressage en page zéro indexé :
La valeur indiquée est une adresse comme origine, le nombre qui est stocké dans le registre X sera ajouté à la valeur de l'adresse d'origine. L'adresse finale sera donc égale à la valeur de l'adresse d'origine + la valeur du registre X.
Syntaxe : Instruction valeur,X où valeur est < 256.
L'adressage absolu :
La valeur indiquée derrière l'instruction est en fait une adresse sur 16 bits. C'est la valeur 8bits contenue à cette adresse 16 bits qui est lue ou modifiée.
Syntaxe : Instruction valeur où valeur < 65536
L'adressage absolu indirect :
En fait, seule l'instruction JMP (JuMP) utilise ce mode d'adressage. La valeur qui est indiquée derrière la commande est une adresse mémoire qui contient à son tour une adresse sur 16 bits.
Syntaxe : JMP (valeur) où valeur < 65536
L'adressage absolu indexé :
La valeur indiquée est une adresse comme origine, le nombre qui est stocké dans le registre X sera ajouté à la valeur de l'adresse d'origine. L'adresse finale sera donc égale à la valeur de l'adresse d'origine + la valeur du registre X.
Syntaxe : Instruction valeur,X où valeur est < 65536.
L'adressage indexé indirect :
La valeur indiquée est une valeur sur 16 bits. Le contenu du registre X et ensuite ajouté à cette valeur. Ce qui donne une adresse. A cette adresse, on trouvera une nouvelle valeur sur 16 bits qui est une nouvelle adresse où lire/écrire la valeur 8 bits demandée. On peut considérer que l'on traite un tableau de pointeur : X est l'index du tableau. Chaque éléments du tableau étant un pointeur sur une donnée 8 bits.
Syntaxe :Instruction (valeur,X) où valeur est < 65536
L'adressage indirect indexé :
La valeur indiquée est une valeur sur 16 bits qui correspond à une adresse dans laquelle on trouve une nouvelle valeur sur 16 bits. Le contenu du registre Y et ajouté à cette nouvelle valeur. Ce qui donne une nouvelle adresse où lire/écrire une valeur sur 8 bits.
Syntaxe : Instruction (valeur), Y où valeur < 65536
L'adressage relatif :
Seules les instructions conditionnelles permettent l'adressage relatif. L'adressage relatif et le nombre d'octets qu'il faut passer pour retrouver la prochaine instruction. Avantage : pas d'adresse en dur dans le code.
Si la valeur qui est indiquée après l'instruction est comprise entre 0 et 127, alors le saut est un saut en avant.
Entre 128 et 255, c'est un saut arrière (Rappel : En fait, le 7ième bit est le signe. Si = 1 alors le nombre est négatif). (voir méthode de calcul des branchements conditionnels).
Syntaxe Instruction valeur où valeur < 256.