Comment compiler l'accès à un élément d'un tableau (t[e]) en XVM ?
Compiler l'expression t[e] pour lire la valeur à l'indice e du tableau t.
Compiler t[0] : lire la première case du tableau t.
Compiler l'expression t[e] pour lire la valeur à l'indice e du tableau t.
Compiler t (adresse), compiler e (indice), ajouter 1 à l'indice (offset réel = e+1 car le mot 0 stocke la taille), puis exécuter CREAD.
Compiler t[0] : lire la première case du tableau t.
Compiler t puis l'indice 0, ajouter 1 et lire :
[[t]] -- pile : [addr_t]
PUSH(0) -- pile : [0, addr_t] (indice e=0)
PUSH(1) -- pile : [1, 0, addr_t]
ADD -- pile : [1, addr_t] (offset réel = 0+1 = 1)
CREAD -- pile : [mem(addr_t+1)] = t[0]
La valeur t[0] est en haut de pile.
Compiler t[4] : lire la case d'indice 4 du tableau t.
Compiler t[i] où i est une variable locale à l'offset 3 dans le frame courant.
Compiler tab[j+1] : lire la case d'indice j+1 du tableau tab.
Crée ton compte pour accéder à la fiche et aux exercices