क्या एक रजिस्टर से दूसरे रजिस्टर या रजिस्टर के सेट में 'पाइप' पाठ करने का एक तरीका है? उदाहरण के लिए, "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
जिसे मैंने रजिस्टर में संग्रहीत किया है "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
को किसी भी तरह ई के माध्यम से रजिस्टर बी में कॉपी किया जा सकता है। फिर मैं प्रत्येक रजिस्टर को बफर में पेस्ट करूँगा, आवश्यक संशोधन करूँगा (अधिक शर्तें जोड़ें, t
गति का अनुसरण करने वाले वर्ण को बदल दें ) और संशोधित अभिव्यक्ति को वापस रजिस्टर में जमा करें। आदर्श रूप में यह अंतिम चरण रजिस्टर को कॉपी करने के लिए कमांड (एस) में भी शामिल किया जा सकता है
यह मुझे मैक्रो में सभी पात्रों को दोहराने से बचाता है जिन्हें बदलने की आवश्यकता नहीं है। मेरे उदाहरण के लिए यह तुच्छ हो सकता है, लेकिन मैं ऐसे समय की उम्मीद कर सकता हूं जब मैं जो पूछ रहा हूं उसे करने में बहुत मदद मिल सकती है।