레지스터에서 다른 레지스터 또는 레지스터 세트로 텍스트를 '파이프'하는 방법이 있습니까? 예를 들어 "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
모션 을 따르는 문자 변경 등) 수정 된 표현식을 레지스터에 다시 넣습니다. 이상적 으로이 마지막 단계는 레지스터를 복사하는 명령에 포함될 수도 있습니다.
이렇게하면 매크로에서 변경할 필요가없는 모든 문자를 반복하지 않아도됩니다. 내 예를 들어 그것은 사소한 것일 수도 있지만, 내가 요구하는 것을하는 것이 매우 도움이 될 수있는 시간을 예견 할 수 있습니다.