Tài liệu về MACRO

27 665 0
Tài liệu về MACRO

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tài liệu về MACRO

CHUONG 9 MACROCHUONG 9 MACRO11MACROMACRO Định nghĩa Macro và gọi MacroĐịnh nghĩa Macro và gọi Macro Vấn đề truyền thông số trong Macro.Vấn đề truyền thông số trong Macro. Macro lồng nhau.Macro lồng nhau. Sử dụng Macro để gọi chương trình con.Sử dụng Macro để gọi chương trình con. Các toán tử Macro.Các toán tử Macro. Thư viện MacroThư viện Macro So sánh việc dùng Macro với ProcedureSo sánh việc dùng Macro với Procedure Một số Macro mẫu.Một số Macro mẫu. CHUONG 9 MACROCHUONG 9 MACRO22ĐỊNH NGHĨA MACRỊNH NGHĨA MACRO Macro là 1 ký hiệu được gán cho 1 nhóm Macro là 1 ký hiệu được gán cho 1 nhóm lệnh ASM – Macro là tên thay thế cho 1 nhóm lệnh ASM – Macro là tên thay thế cho 1 nhóm lệnh.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 :Tại sao cần có Macro : CHUONG 9 MACROCHUONG 9 MACRO33LÀM QUEN VỚI MACROKhi 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,2INT 21HMOV DL,10 ; xu ng dòng ốm iớMOV AH,2INT 21H CHUONG 9 MACROCHUONG 9 MACRO44Thay 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,2INT 21HMOV DL,10MOV AH,2INT 21HENDMSau đó, bất kỳ chỗ nào cần xuống dòng, ta chỉ cần gọi macro @NewLine. @NewLine CHUONG 9 MACROCHUONG 9 MACRO55MACRO (tt) MACRO (tt) Khi hợp dòch nội dung nhóm lệnh này mà ta đã 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ó 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 tên macro trước khi CT được hợp dòch thành file OBJ.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 21HThay vì phải viết cả 1 cặp lệnh trên mỗi khi cần 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 xuất ký tự trong DL, ta có thể viết Macro PUTCHAR như sau :PUTCHAR như sau : PUTCHAR MACRO MOV AH,2 INT 21H ENDM CHUONG 9 MACROCHUONG 9 MACRO66MƠÛ RỘNG CỦA MACRO CÓ THỂ XEM MƠÛ RỘNG CỦA MACRO CÓ THỂ XEM TRONG FILE.LIST.TRONG FILE.LIST.3 DIRECTIVE BIÊN DỊCH SAU SẼ QUYẾT 3 DIRECTIVE BIÊN DỊCH SAU SẼ QUYẾT ĐỊNH MƠÛ RỘNG MACRO NHƯ THẾ NÀO.ĐỊNH MƠÛ RỘNG MACRO NHƯ THẾ NÀO SALL (SUPRESS ALL) PHẦN MƠÛ RỘNG MACRO .SALL (SUPRESS ALL) PHẦN MƠÛ RỘNG MACRO KHÔNG ĐƯC IN. SƯÛ DỤNG KHI MACRO LỚN HAY KHÔNG ĐƯC IN. SƯÛ DỤNG KHI MACRO LỚN HAY MACRO ĐƯC THAM CHIẾU NHIỀU LẦN TRONG CT.MACRO ĐƯC THAM CHIẾU NHIỀU LẦN TRONG CT XALL CHỈ NHỮNG DÒNG MACRO TẠO MÃ NGUỒN .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 MỚI ĐƯC IN RA.THÍ DỤ CÁC DÒNG CHÚ THÍCH ĐƯC BỎ QUA. ĐÂY LÀ TUỲ CHỌN DEFAULT.ĐƯC BỎ QUA. ĐÂY LÀ TUỲ CHỌN DEFAULT LALL (LIST ALL) TOÀN BỘ CÁC DÒNG TRONG .LALL (LIST ALL) TOÀN BỘ CÁC DÒNG TRONG MACRO ĐƯC IN RA TRỪ NHỮNG CHÚ THÍCH BẮT MACRO ĐƯC IN RA TRỪ NHỮNG CHÚ THÍCH BẮT ĐẦU BẰNG 2 DẤU ;;ĐẦU BẰNG 2 DẤU ;; CHUONG 9 MACROCHUONG 9 MACRO77ĐỊ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Ố. CHUONG 9 MACROCHUONG 9 MACRO88MACRO TRUY N THAM SỀ ỐMACRO TRUY N THAM SỀ Ố.MODEL SMALL .MODEL SMALL .STACK 100H.STACK 100H PUTCHAR MACRO KT MOV DL,KT MOV AH,2 INT 21H ENDM.CODE.CODE MAIN PROCMAIN PROC MOV DL, ‘A’MOV DL, ‘A’ PUTCHARPUTCHAR MOV DL, ‘*”MOV DL, ‘*” PUTCHARPUTCHAR MOV AH,4CH INT 21HMAIN ENDPEND MAIN CHUONG 9 MACROCHUONG 9 MACRO99SWAP MACRO BIEN1, BIEN2SWAP MACRO BIEN1, BIEN2 MOV AX, BIEN1MOV AX, BIEN1 XCHG AX, BIEN2XCHG AX, BIEN2 MOV BIEN1, AXMOV BIEN1, AX ENDMENDMGOẽI : SWAP TRI1, TRI2 GOẽI : SWAP TRI1, TRI2 CHUONG 9 MACROCHUONG 9 MACRO1010TRAO ĐỔI THAM SỐ CỦA MACROTRAO ĐỔI THAM SỐ CỦA MACROMỘT MACRO CÓ THỂ CÓ THÔNG SỐ HOẶC KHÔNG CÓ THÔNG SỐ.PUTCHAR MACRO PUTCHAR MACRO CHARCHAR MOV AH, 2MOV AH, 2 MOV DL, CHARMOV DL, CHAR INT 21HINT 21HENDMENDM. CODE . PUTCHAR ‘A’ PUTCHAR ‘B’ PUTCHAR ‘C’ .MACRO CÓ THÔNG SỐSƯÛ DỤNG MACRO [...]... vào CT, ta chỉ cần viết Macro mà ta đã gán cho chúng. Tại sao cần có Macro : Tại sao cần có Macro : CHUONG 9 MACRO CHUONG 9 MACRO 1 1 MACRO MACRO Định nghĩa Macro và gọi Macro Định nghĩa Macro và gọi Macro Vấn đề truyền thông số trong Macro. Vấn đề truyền thông số trong Macro. Macro lồng nhau. Macro lồng nhau. Sử dụng Macro để gọi chương trình con. Sử dụng Macro để gọi chương trình... con. Sử dụng Macro để gọi chương trình con. Các toán tử Macro. Các toán tử Macro. Thư viện Macro Thư viện Macro So sánh việc dùng Macro với Procedure So sánh việc dùng Macro với Procedure Một số Macro mẫu. Một số Macro maãu. CHUONG 9 MACRO CHUONG 9 MACRO 12 12 THÍ DỤ VỀ MACRO THÍ DỤ VỀ MACRO DISPLAY MACRO STRING DISPLAY MACRO STRING PUSH AX PUSH AX PUSH DX PUSH DX LEA... CHUOI CHUONG 9 MACRO CHUONG 9 MACRO 7 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Ố. CHUONG 9 MACRO CHUONG 9 MACRO 15 15 ĐỊNH NGHĨA NHÃN BÊN TRONG MACRO ĐỊNH NGHĨA... ‘ * ’ , 2 0 CHUONG 9 MACRO CHUONG 9 MACRO 14 14 MACRO LOÀNG NHAU MACRO LOÀNG NHAU MỘT CÁCH ĐƠN GIẢN ĐỂ XÂY DỰNG MACRO LÀ XÂY DỰNG 1 MACRO MỚI TỪ MACRO ĐÃ CÓ. EX : HIỂN THỊ 1 CHUỔI TẠI 1 TOẠ ĐỘ CHO TRƯỚC EX : HIỂN THỊ 1 CHUỔI TẠI 1 TOẠ ĐỘ CHO TRƯỚC DISPLAY_AT MACRO ROW, COL, STRING LOCATE ROW, COL ;Gọi macro định vị cursor DISPLAY STRING ; Gọi Macro xuất string ENDM MỘT MACRO CÓ THỂ THAM CHIẾU... CHÍNH NÓ, NHỮNG MACRO NHƯ VẬY GỌI LÀ MACRO ĐỆ QUI. CHUONG 9 MACRO CHUONG 9 MACRO 6 6 MỞ RỘNG CỦA MACRO CÓ THỂ XEM MỞ RỘNG CỦA MACRO CÓ THỂ XEM TRONG FILE.LIST. TRONG FILE.LIST. 3 DIRECTIVE BIÊN DỊCH SAU SẼ QUYẾT 3 DIRECTIVE BIÊN DỊCH SAU SẼ QUYẾT ĐỊNH MỞ RỘNG MACRO NHƯ THẾ NÀO. ĐỊNH MỞ RỘNG MACRO NHƯ THẾ NÀO. .SALL (SUPRESS ALL) PHẦN MỞ RỘNG MACRO .SALL (SUPRESS ALL) PHẦN MỞ RỘNG MACRO KHÔNG... N ị END_WHILE Bài 2 : MACRO doi tu so chua trong ax sang chuoi tro den boi DI ; in : DI =offset chuoi ; AX =so can doi ; out: khong co(chuoi van do di tro toi) CHUONG 9 MACRO CHUONG 9 MACRO 2 2 ĐỊNH NGHĨA MACRO ĐỊNH NGHĨA MACRO Macro là 1 ký hiệu được gán cho 1 nhóm Macro là 1 ký hiệu được gán cho 1 nhóm lệnh ASM – Macro là tên thay thế cho 1 nhóm lệnh ASM – Macro là tên thay thế cho... THƯỚC CT DÀI HƠN HƠN CHUONG 9 MACRO CHUONG 9 MACRO 9 9 SWAP MACRO BIEÁN1, BIEÁN2 SWAP MACRO BIEÁN1, BIEÁN2 MOV AX, BIEN1 MOV AX, BIEN1 XCHG AX, BIEN2 XCHG AX, BIEN2 MOV BIEN1, AX MOV BIEN1, AX ENDM ENDM GOÏI : SWAP TRI1, TRI2 GOÏI : SWAP TRI1, TRI2 CHUONG 9 MACRO CHUONG 9 MACRO 26 26 BÀI TẬP MACRO BÀI TẬP MACRO Bài 1 : 1. Vi t m t MACRO tính USCLN c a ế ộ ủ 2 bi n s M... CHUONG 9 MACRO CHUONG 9 MACRO 27 27 Bài 3 :Vi t macro chuyen tu chuoi thanh so chua trong axế ; in : DI =offset chuoi ; out : AX =so da doi Bài 4 : Viết MACRO xuất số hecxa chứa trong AL ra màn hình * ; INPUT : AL chứa số cần xuất; OUTPUT: nothing Bài 5 : Viết Macro in số hecxa chứa trong BL ra dạng binary ;Input: BL chứa số cần in ;Output: Nothing CHUONG 9 MACRO CHUONG 9 MACRO 5 5 MACRO (tt) MACRO. .. NHÃN BÊN TRONG MACRO TRONG MACRO CÓ THỂ CÓ NHÃN. GỌI MACRO NHIỀU LẦN  NHIỀU NHÃN ĐƯC TẠO RA  LÀM SAO GIẢI QUYẾT VẤN ĐỀ NHẢY ĐIỀU KHIỂN? ASSEMBLY GIẢI QUYẾT VẤN ĐỀ NÀY BẰNG CHỈ THỊ LOCAL CƯỢNG BỨC MASM TẠO RA 1 TÊN DUY NHẤT CHO MỖI MỘT LABEL KHI MACRO ĐƯC GỌI CÚ PHÁP : LOCAL LABEL_NAME CHUONG 9 MACRO CHUONG 9 MACRO 4 4 Thay vì ph i vi t l i 6 dòng l nh trên, ta có ả ế ạ ệ th t o 1 macro có tên... khi cần xuất ký tự trong DL, ta có thể viết Macro xuất ký tự trong DL, ta có thể viết Macro PUTCHAR như sau : PUTCHAR như sau : PUTCHAR MACRO MOV AH,2 INT 21H ENDM CHUONG 9 MACRO CHUONG 9 MACRO 17 17 Thí dụ minh họa chỉ thị Local Thí dụ minh họa chỉ thị Local Xây dựng Macro REPEAT có nhiệm vụ xuất count lần số ký tự char ra màn hình. REPEAT MACRO CHAR, COUNT LOCAL L1 MOV CX, COUNT L1: . CHUONG 9 MACROCHUONG 9 MACRO1 1MACROMACRO Định nghĩa Macro và gọi Macro ịnh nghĩa Macro và gọi Macro Vấn đề truyền thông số trong Macro. Vấn đề truyền. thể tạo macro có tham số như sau :;1;1;1;2;2;2 CHUONG 9 MACROCHUONG 9 MACRO1 212THÍ DỤ VỀ MACROTHÍ DỤ VỀ MACRODISPLAY MACRO STRINGDISPLAY MACRO STRING

Ngày đăng: 25/08/2012, 10:36

Hình ảnh liên quan

MACRO_NAME MACRO [ &lt;THÔNG SỐ HÌNH THỨC&gt;] - Tài liệu về MACRO

lt.

;THÔNG SỐ HÌNH THỨC&gt;] Xem tại trang 7 của tài liệu.
MACRO LOCATE : ĐỊNH VỊ CURSOR MÀN HÌNH - Tài liệu về MACRO
MACRO LOCATE : ĐỊNH VỊ CURSOR MÀN HÌNH Xem tại trang 13 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan