Có cách nào để "đường ống" văn bản từ một thanh ghi sang một thanh ghi khác hoặc một bộ các thanh ghi không? Ví dụ, di chuyển "q
đến các thanh ghi "1
thông qua "5
.
Tôi thường muốn tạo các phiên bản hơi khác nhau của cùng một macro, vì vậy thật hữu ích khi có thể sao chép macro 'mẫu' vào một số thanh ghi và sau đó sửa đổi từng vị trí của chúng.
Để đưa ra một ví dụ thực tế, đây là vấn đề đặt ra câu hỏi này cho tôi.
Tôi cần biến dòng sau từ ngôn ngữ mô tả phần cứng thành nhiều khối lặp lại,
RAM64(in=in, load=load0, address=address[0..5], out=out1);
đến
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);
Tôi có một macro thực hiện điều này, bằng cách sử dụng hàm tăng, yypW^At)^A
mà tôi đã lưu trong sổ đăng ký "a
.
Đôi khi, tôi cần mô hình tăng dần để hơi khác nhau, chẳng hạn như
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);
nơi macro trong đăng ký "b
sẽ được yypW^At)^A^A
.
Tôi muốn đăng ký để làm điều này, nhưng với mỗi mức tăng từ 1-5. Thanh ghi "a
có thể (bằng cách nào đó) được sao chép vào thanh ghi b đến e. Sau đó, tôi sẽ dán từng thanh ghi vào bộ đệm, thực hiện sửa đổi cần thiết (thêm nhiều thuật ngữ, thay đổi ký tự theo t
chuyển động, v.v.) và kéo biểu thức đã sửa đổi trở lại vào thanh ghi. Lý tưởng nhất là bước cuối cùng này thậm chí có thể được bao gồm trong (các) lệnh để sao chép các thanh ghi
Điều này giúp tôi không lặp lại tất cả các ký tự trong macro KHÔNG yêu cầu thay đổi. Ví dụ của tôi có thể là tầm thường, nhưng tôi có thể thấy trước những lúc có thể rất hữu ích để làm những gì tôi đang yêu cầu.