レジスタから別のレジスタまたはレジスタセットにテキストを「パイプ」する方法はありますか?例えば、移動"q
レジスタに"1
スルー"5
。
同じマクロのわずかに異なるバージョンを作成したいことがよくあるので、「テンプレート」マクロを複数のレジスタにコピーして、それぞれを適切に変更できると便利です。
実用的な例を示すために、ここで私にこの質問を促した問題があります。
次の行をハードウェア記述言語から多くの繰り返しブロックに変換する必要があります。
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);
yypW^At)^A
registerに保存したインクリメント関数を使用して、これを実行するマクロがあります"a
。
時々、次のようにインクリメントのパターンが少し異なる必要があります
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);
ここで、レジスター内のマクロはに"b
なりますyypW^At)^A^A
。
レジスターでこれを行いたいのですが、1から5までの増分ごとに行います。レジスタ"a
は(どういうわけか)レジスタbからeにコピーできます。次に、各レジスターをバッファーに貼り付け、必要な変更を加え(項を追加し、t
モーションに従うキャラクターを変更し)、変更した式をヤンクしてレジスターに戻します。理想的には、この最後のステップをレジスタにコピーするコマンドに含めることもできます
これにより、変更する必要のないマクロ内のすべての文字を繰り返す必要がなくなります。私の例では、それは些細なことかもしれませんが、私が求めていることを実行することが非常に役立つかもしれないときを予測することができます。