¿Hay alguna manera de 'canalizar' el texto de un registro a otro registro o conjunto de registros? Por ejemplo, pasar "q
a registros a "1
través "5
.
A menudo deseo crear versiones ligeramente diferentes de la misma macro, por lo que es útil poder copiar una macro 'plantilla' en varios registros y luego modificar cada una de ellas en su lugar.
Para dar un ejemplo práctico, aquí está el problema que provocó esta pregunta para mí.
Necesito convertir la siguiente línea de un lenguaje de descripción de hardware en muchos bloques repetidos,
RAM64(in=in, load=load0, address=address[0..5], out=out1);
a
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);
Tengo una macro que realiza esto, usando la función de incremento, yypW^At)^A
que almacené en el registro "a
.
A veces, necesito que el patrón de incremento sea ligeramente diferente, como
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);
donde "b
estaría la macro en el registro yypW^At)^A^A
.
Quiero un registro para hacer esto, pero para cada incremento de 1-5. El registro "a
podría (de alguna manera) copiarse a los registros b a través de e. Luego pegaría cada registro en el búfer, realizaría la modificación requerida (agregaría más términos, cambiaría el carácter que sigue al t
movimiento, etc.) y tiraría la expresión modificada nuevamente al registro. Idealmente, este último paso podría incluso incluirse en los comandos para copiar los registros
Esto me evita repetir todos los caracteres de la macro que NO requieren cambios. Para mi ejemplo, puede ser trivial, pero puedo prever momentos en que podría ser muy útil hacer lo que le pido.