Czy istnieje sposób na przeniesienie tekstu z rejestru do innego rejestru lub zestawu rejestrów? Na przykład przejdź "qdo rejestrów "1przez "5.
Często chcę tworzyć nieco inne wersje tego samego makra, więc warto skopiować makro „szablonu” do kilku rejestrów, a następnie zmodyfikować każde z nich na miejscu.
Aby dać praktyczny przykład, oto problem, który skłonił mnie do tego pytania.
Muszę przekształcić następujący wiersz z języka opisu sprzętu w wiele powtarzających się bloków,
RAM64(in=in, load=load0, address=address[0..5], out=out1);
do
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);
Mam makro, które wykonuje to, używając funkcji przyrostowej, yypW^At)^Aktórą zapisałem w rejestrze "a.
Czasami potrzebuję, aby wzorzec przyrostu był nieco inny, np
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);
gdzie "bbyłoby makro w rejestrze yypW^At)^A^A.
Chcę, aby rejestr to zrobił, ale dla każdego przyrostu od 1-5. Rejestr "amożna (w jakiś sposób) skopiować do rejestrów od b do e. Następnie wkleiłem każdy rejestr do bufora, dokonałem wymaganej modyfikacji (dodałem więcej terminów, zmieniłem znak następujący po truchu itp.) I wcisnąłem zmodyfikowane wyrażenie z powrotem do rejestru. Idealnie ten ostatni krok mógłby nawet zostać zawarty w poleceniu (-ach), aby skopiować rejestry
To oszczędza mi powtarzania wszystkich znaków w makrze, które NIE wymagają zmiany. W moim przykładzie może to być trywialne, ale mogę przewidzieć czasy, w których zrobienie tego, o co proszę, może być bardzo pomocne.