Existe-t-il un moyen de «diriger» du texte d'un registre vers un autre registre ou ensemble de registres? Par exemple, passez "q
aux registres "1
via "5
.
Je souhaite souvent créer des versions légèrement différentes de la même macro, il est donc utile de pouvoir copier une macro «modèle» dans plusieurs registres, puis de modifier chacun d'eux en place.
Pour donner un exemple pratique, voici le problème qui a suscité cette question pour moi.
J'ai besoin de transformer la ligne suivante d'un langage de description matérielle en plusieurs blocs répétés,
RAM64(in=in, load=load0, address=address[0..5], out=out1);
à
RAM64(in=in, load=load1, address=address[0..5], out=out2);
RAM64(in=in, load=load2, address=address[0..5], out=out3);
RAM64(in=in, load=load3, address=address[0..5], out=out4);
RAM64(in=in, load=load4, address=address[0..5], out=out5);
J'ai une macro qui effectue cela, en utilisant la fonction d'incrémentation, yypW^At)^A
que j'ai stockée dans le registre "a
.
Parfois, j'ai besoin que le modèle d'incrémentation soit légèrement différent, tel que
RAM512(in=in, load=load1, address=address[0..8], out=out2);
RAM512(in=in, load=load2, address=address[0..8], out=out4);
RAM512(in=in, load=load3, address=address[0..8], out=out6);
RAM512(in=in, load=load4, address=address[0..8], out=out8);
où la macro en registre "b
serait yypW^At)^A^A
.
Je veux un registre pour ce faire, mais pour chaque incrément de 1 à 5. Le registre "a
pourrait (d'une manière ou d'une autre) être copié dans les registres b à e. Ensuite, je collais chaque registre dans la mémoire tampon, apportais la modification requise (ajoutais de termes, changeais le caractère qui suit le t
mouvement, etc.) et retirais l'expression modifiée dans le registre. Idéalement, cette dernière étape pourrait même être incluse dans la ou les commandes pour copier les registres
Cela m'évite de répéter tous les caractères de la macro qui ne nécessitent PAS de modification. Pour mon exemple, cela peut être trivial, mais je peux prévoir des moments où il pourrait être très utile de faire ce que je demande.