Định nghĩa Macro và gọi Macro Vấn đề truyền thông số trong Macro.. ĐỊNH NGHĨA MACROMacro là 1 ký hiệu được gán cho 1 nhóm lệnh ASM lệnh ASM – – Macro là tên thay thế cho 1 Macro là tên
Trang 1Định nghĩa Macro và gọi Macro
Vấn đề truyền thông số trong Macro.
Macro lồng nhau.
Sử dụng Macro để gọi chương trình con.
Các toán tử Macro.
Thư viện Macro
So sánh việc dùng Macro với Procedure
Một số Macro mẫu.
Trang 2ĐỊNH NGHĨA MACRO
Macro là 1 ký hiệu được gán cho 1 nhóm lệnh ASM
lệnh ASM – – Macro là tên thay thế cho 1 Macro là tên thay thế cho 1
nhóm lệnh.
Trong lập trình nhiều lúc ta cần phải viết những lệnh na ná nhau nhiều lần mà ta không muốn viết dưới dạng hàm vì dùng hàm tốn thời gian thực thi, thay vì ta phải viết đầy đủ nhóm lệnh này vào CT,
ta chỉ cần viết Macro mà ta đã gán cho chúng
Tại sao cần có Macro :
Trang 3LÀM QUEN VỚI MACRO
Khi ta có nhiều đoạn code giống nhau, chúng ta
có thể dùng macro để thay thế, giống như ta
dùng define trong C Thí dụ chúng ta thay thế
đọan lệnh sau bằng macro để in dấu xuống
dòng
MOV DL,13 ; về đầu dòng
MOV AH,2
INT 21H
MOV DL,10 ; xuống dòng
mới
MOV AH,2
INT 21H
Trang 4Thay vì phải viết lại 6 dòng lệnh trên,
ta có thể tạo 1 macro có tên @Newline
để thay thế đoạn code này :
@NewLine Macro
MOV DL,13 MOV AH,2 INT 21H MOV DL,10 MOV AH,2 INT 21H ENDM
Sau đó, bất kỳ chỗ nào cần xuống dòng, ta chỉ cần gọi macro
@NewLine.
@NewLine
Trang 5MACRO (tt)
Khi hợp dịch nội dung nhóm lệnh này mà ta đã gán cho macro sẽ được thay thế vào những nơi có tên macro trước khi CT được hợp dịch thành file OBJ.
Ex1 : nhiều khi ta phải viết lại nhiều lần đoạn lệnh xuất ký tự trong DL ra màn hình.
MOV AH, 2 INT 21H
Thay vì phải viết cả 1 cặp lệnh trên mỗi khi cần xuất ký tự trong DL, ta có thể viết Macro
PUTCHAR như sau :
PUTCHAR MACRO
Trang 6MỞ RỘNG CỦA MACRO CÓ THỂ XEM
TRONG FILE.LIST.
3 DIRECTIVE BIÊN DỊCH SAU SẼ QUYẾT ĐỊNH MỞ RỘNG MACRO NHƯ THẾ NÀO.
.SALL (SUPRESS ALL) PHẦN MỞ RỘNG MACRO
KHÔNG ĐƯỢC IN SỬ DỤNG KHI MACRO LỚN HAY MACRO ĐƯỢC THAM CHIẾU NHIỀU LẦN TRONG CT.
.XALL CHỈ NHỮNG DÒNG MACRO TẠO MÃ NGUỒN MỚI ĐƯỢC IN RA.THÍ DỤ CÁC DÒNG CHÚ THÍCH
ĐƯỢC BỎ QUA ĐÂY LÀ TUỲ CHỌN DEFAULT.
.LALL (LIST ALL) TOÀN BỘ CÁC DÒNG TRONG
MACRO ĐƯỢC IN RA TRỪ NHỮNG CHÚ THÍCH BẮT
Trang 7ĐỊNH NGHĨA MACRO
CÚ PHÁP KHAI BÁO MACRO :
MACRO_NAME MACRO [ <THÔNG SỐ HÌNH THỨC>]
STATEMENTS
ENDM
GỌI MACRO :
MACRO_NAME [<THÔNG SỐ THỰC>, ]
THÔNG SỐ HÌNH THỨC CHỈ CÓ TÁC DỤNG ĐÁNH DẤU VỊ TRÍ
CỦA THÔNG SỐ TRONG MACRO QUAN TRỌNG NHẤT LÀ VỊ TRÍ
CÁC THÔNG SỐ.