Tham khảo tài liệu 'giáo trình kỹ thuật vi xử lý tập 1 part 10', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả | Chương 4 Lập lì ình bẳiỉg hợp ngữ 489 Như vậy cừu lệnh này khởi tạo biến var bằng số 24 giá trị trả về của lính giai thừa của 4 Ví dụ Có thể sử dụng FOR để xử lý các thông số với thuộc tính VARARG trong hàm macro xác định trước của MASM @ArgCount MACRO arglistVARARG đây là cú pháp khai báo hàm LOCAL count count 0 FOR arg arglist count count 1 tính số biến ENDM EXITM count ENDM Hoặc trong hàm xác định trước @Argl Ví dụ index REG arglishVARARG @Argl MACRO LOCAL count retstr retstr TEXTEQU count - 0 FOR arg arglist count - count 1 IF count EQ retstr TEXTEQU EXITM ENDIF ENDM EXITM retstr ENDM khởi tạo count khởi tạo chuỗi trả về index arg thoát khỏi hàm 490 Giáo trình Kỹ thuật vi xử ỉỷ . Thư viện macro Trong thực tế người lập trình phải gọi đêh nhiều macro khác nhau và nếu như các macro nằm rải rác ở nhiều nơi khác nhau thì sẽ không hiệu quả cho viết chương trình nguồn cũng như khi tham chiếu đến các macro. Các macro có liên quan chức năng với nhau có thể đặt chung trong một tệp riêng như thế để tham chiếu đêh tất các các macro chỉ cần có lệnh ghép INCLUDE tệp thư viên macro đó vào chương trình nguồn đặt ở đầu chương trình và câu lệnh tham chiếu đến các macro có thể đặt ở bất kỳ chỗ nào trong chương trình. Thư viện macro là một tệp tin có tên phần mở rộng là .MAC. Trong tệp thư viện các dòng bình luận đầu tiên là danh sách các macro - gồm tên các tham số nếu có và công dụng. Các khai báo của các macro có trong danh sách được dặt trong cấu trúc điều kiện IF1 các khai báo các macro trong thưviện ENDIF Một khi thư viện macro được ghép vào chương trình chính bằng INCLUDE tất cả các khai báo macro của thư viên sẽ xuất hiện trong tệp .LST do assembler tạo ra thậm chí ngay cả khi thư viên được tham chiếu đến trong chương trình chính. Để tránh điều này các khai báo macro phải dặt trong khung điều kiện IF1 . ENDIF. Như vậy IFl chỉ dẫn assembler chí truy cập thư viện macro trong lần biên dịch thứ nhất khi các macro được mở rộng mà không truy cập thêm nữa trong