Apakah ada cara untuk 'pipa' teks dari register ke register lain atau set register? Misalnya, pindah "q
ke register "1
melalui "5
.
Saya sering ingin membuat versi yang sedikit berbeda dari makro yang sama, jadi berguna untuk dapat menyalin makro 'templat' ke beberapa register dan kemudian memodifikasi masing-masing di tempat.
Untuk memberikan contoh praktis, inilah masalah yang mendorong pertanyaan ini untuk saya.
Saya perlu mengubah baris berikut dari bahasa deskripsi perangkat keras menjadi banyak blok berulang,
RAM64(in=in, load=load0, address=address[0..5], out=out1);
untuk
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);
Saya memiliki makro yang melakukan ini, menggunakan fungsi kenaikan, yypW^At)^A
yang saya simpan di register "a
.
Terkadang, saya perlu pola kenaikan menjadi sedikit berbeda, seperti
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);
di mana makro dalam register "b
akan berada yypW^At)^A^A
.
Saya ingin register melakukan ini, tetapi untuk setiap kenaikan dari 1-5. Register "a
dapat (entah bagaimana) disalin ke register b hingga e. Kemudian saya akan menempelkan setiap register ke buffer, membuat modifikasi yang diperlukan (menambahkan lebih banyak istilah, mengubah karakter yang mengikuti t
gerakan, dll) dan menarik kembali ekspresi yang dimodifikasi kembali ke register. Idealnya langkah terakhir ini bahkan dapat dimasukkan dalam perintah untuk menyalin register
Ini menyelamatkan saya dari pengulangan semua karakter di makro yang TIDAK perlu diubah. Sebagai contoh saya ini mungkin sepele, tetapi saya dapat melihat saat-saat ketika mungkin akan sangat membantu untuk melakukan apa yang saya minta.