Gibt es eine Möglichkeit, Text von einem Register in ein anderes Register oder einen anderen Registersatz zu leiten? Bewegen Sie sich beispielsweise "q
zu Registern "1
durch "5
.
Ich möchte oft leicht unterschiedliche Versionen desselben Makros erstellen, daher ist es nützlich, ein 'Vorlagen'-Makro in mehrere Register kopieren und dann jedes an Ort und Stelle ändern zu können.
Um ein praktisches Beispiel zu geben, hier ist das Problem, das diese Frage für mich ausgelöst hat.
Ich muss die folgende Zeile aus einer Hardwarebeschreibungssprache in viele wiederholte Blöcke umwandeln:
RAM64(in=in, load=load0, address=address[0..5], out=out1);
zu
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);
Ich habe ein Makro, das dies mit der Inkrementfunktion ausführt, yypW^At)^A
die ich im Register gespeichert habe "a
.
Manchmal muss das Inkrementierungsmuster etwas anders sein, z
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);
wo das Makro im Register "b
wäre yypW^At)^A^A
.
Ich möchte, dass ein Register dies tut, aber für jedes Inkrement von 1-5. Das Register "a
könnte (irgendwie) in die Register b bis e kopiert werden. Dann würde ich jedes Register in den Puffer einfügen, die erforderliche Änderung vornehmen (weitere Begriffe hinzufügen, das Zeichen ändern, das der t
Bewegung folgt usw.) und den geänderten Ausdruck zurück in das Register ziehen. Idealerweise könnte dieser letzte Schritt sogar in den Befehlen zum Kopieren der Register enthalten sein
Dies erspart mir das Wiederholen aller Zeichen im Makro, die NICHT geändert werden müssen. Für mein Beispiel mag es trivial sein, aber ich kann Zeiten vorhersehen, in denen es sehr hilfreich sein könnte, das zu tun, was ich verlange.