มีวิธีใดที่จะทำให้ข้อความ 'ไพพ์' จากรีจิสเตอร์เป็นรีจิสเตอร์อื่นหรือรีจิสเตอร์อื่น ยกตัวอย่างเช่นย้าย"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
สามารถ (อย่างใด) ถูกคัดลอกไปลงทะเบียนผ่านทาง e ข จากนั้นฉันจะวางการลงทะเบียนแต่ละครั้งลงในบัฟเฟอร์ทำการแก้ไขที่ต้องการ (เพิ่มเงื่อนไขเพิ่มเติมเปลี่ยนอักขระที่ตามหลังt
การเคลื่อนไหว ฯลฯ ) และดึงการแสดงออกที่ถูกดัดแปลงกลับไปที่การลงทะเบียน โดยหลักการแล้วขั้นตอนสุดท้ายนี้อาจรวมอยู่ในคำสั่งเพื่อคัดลอกการลงทะเบียน
สิ่งนี้ช่วยฉันในการทำซ้ำอักขระทั้งหมดในแมโครที่ไม่ต้องการเปลี่ยนแปลง สำหรับตัวอย่างของฉันมันอาจไม่สำคัญ แต่ฉันสามารถคาดการณ์เวลาที่มันอาจมีประโยชน์มากในการทำสิ่งที่ฉันขอ