কোনও রেজিস্টার থেকে অন্য রেজিস্টার বা রেজিস্টারগুলির সেটটিতে কোনও পাইপ পাঠানোর কোনও উপায় আছে কি? উদাহরণস্বরূপ, "q
রেজিস্টারগুলির "1
মাধ্যমে সরান "5
।
আমি প্রায়শই একই ম্যাক্রোর কিছুটা ভিন্ন সংস্করণ তৈরি করতে চাই, তাই বেশ কয়েকটি রেজিস্টারে একটি 'টেমপ্লেট' ম্যাক্রো অনুলিপি করতে এবং তারপরে সেগুলির প্রতিটিকে সংশোধন করতে সক্ষম useful
একটি ব্যবহারিক উদাহরণ দেওয়ার জন্য, এখানে আমার কাছে এই প্রশ্নটি উত্সাহিত সমস্যা is
আমাকে নিম্নলিখিত রেখাটি একটি হার্ডওয়্যার বর্ণনামূলক ভাষা থেকে বহু বার বার ব্লক করা দরকার,
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
গতি অনুসরণ করে এমন চরিত্র পরিবর্তন করবো) এবং পরিবর্তিত অভিব্যক্তিটিকে রেজিস্টারে ফিরে যেতে পারব। আদর্শভাবে এই শেষ পদক্ষেপটি এমনকি নিবন্ধগুলিতে অন্তর্ভুক্ত করা যেতে পারে নিবন্ধগুলি অনুলিপি করতে s
এটি আমাকে ম্যাক্রোর সমস্ত অক্ষর পুনরাবৃত্তি করা থেকে রক্ষা করে যা পরিবর্তনের প্রয়োজন হয় না। আমার উদাহরণের জন্য এটি তুচ্ছ হতে পারে তবে আমি এমন সময়গুলি আগে থেকেই বলতে পারি যখন আমি যা বলছি তা করতে এটি খুব সহায়ক হতে পারে।