![Phân tích tư tưởng của nhân dân qua đoạn thơ: Những người vợ nhớ chồng… Những cuộc đời đã hóa sông núi ta trong Đất nước của Nguyễn Khoa Điềm](https://timtailieu.net/upload/document/136415/phan-tich-tu-tuong-cua-nhan-dan-qua-doan-tho-039-039-nhung-nguoi-vo-nho-chong-nhung-cuoc-doi-da-hoa-song-nui-ta-039-039-trong-dat-nuoc-cua-nguyen-khoa-136415.jpg)
Bài giảng Cấu trúc máy tính - Chương 9: Macro
Số trang: 27
Loại file: ppt
Dung lượng: 146.50 KB
Lượt xem: 18
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng cung cấp cho người học các kiến thức: Tìm hiểu Macro. Hi vọng đây sẽ là một tài liệu hữu ích dành cho các bạn sinh viên đang theo học môn dùng làm tài liệu học tập và nghiên cứu.
Nội dung trích xuất từ tài liệu:
Bài giảng Cấu trúc máy tính - Chương 9: Macro MACRO MACRO Định nghĩa Macro và gọi Macro Vaán ñeà truyeàn thoâng soá trong Macro. Macro loàng nhau. Söû duïng Macro ñeå goïi chöông trình con. Caùc toaùn töû Macro. Thö vieän Macro So saùnh vieäc duøng Macro vôùi Procedure Moät soá Macro maãu. CHUONG 9 MACRO 1 ÑÒNH NGHÓA MACRO ÑÒNH NGHÓA MACRO Macro laø 1 kyù hieäu ñöôïc gaùn cho 1 nhoùm leänh ASM – Macro laø teân thay theá cho 1 nhoùm leänh. Taïi sao caàn coù Macro : Trong laäp trình nhieàu luùc ta caàn phaûi vieát nhöõng leänh na naù nhau nhieàu laàn maø ta khoâng muoán vieát döôùi daïng haøm vì duøng haøm toán thôøi gian thöïc thi, thay vì ta phaûi vieát ñaày ñuû nhoùm leänh naøy vaøo CT, ta chæ caàn vieát Macro maø ta ñaõ gaùn cho chuùng. CHUONG 9 MACRO 2 LÀ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 CHUONG 9 MACRO 3 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 @Newline để thay thế đoạn code này : @NewLine Macro MOV DL,13 Sau đó, bất kỳ chỗ nào MOV AH,2 cần xuống dòng, ta chỉ cần gọi macro INT 21H @NewLine. MOV DL,10 @NewLine MOV AH,2 INT 21H ENDM CHUONG 9 MACRO 4 MACRO (tt) MACRO (tt) Khi hôïp dòch noäi dung nhoùm leänh naøy maø ta ñaõ gaùn cho macro seõ ñöôïc thay theá vaøo nhöõng nôi coù teân macro tröôùc khi CT ñöôïc hôïp dòch thaønh file OBJ. Ex1 : nhieàu khi ta phaûi vieát laïi nhieàu laàn ñoaïn leänh xuaát kyù töï trong DL ra maøn hình. MOV AH, 2 INT 21H Thay vì phaûi vieát caû 1 caëp leänh treân moãi khi caàn xuaát kyù töï trong DL, ta coù theå vieát Macro PUTCHAR nhö sau : PUTCHAR MACRO MOV AH,2 INT 21H ENDM CHUONG 9 MACRO 5 MÔÛ ROÄNG CUÛA MACRO COÙ THEÅ XEM TRONG FILE.LIST. 3 DIRECTIVE BIEÂN DÒCH SAU SEÕ QUYEÁT ÑÒNH MÔÛ ROÄNG MACRO NHÖ THEÁ NAØO. .SALL (SUPRESS ALL) PHAÀN MÔÛ ROÄNG MACRO KHOÂNG ÑÖÔÏC IN. SÖÛ DUÏNG KHI MACRO LÔÙN HAY MACRO ÑÖÔÏC THAM CHIEÁU NHIEÀU LAÀN TRONG CT. .XALL CHÆ NHÖÕNG DOØNG MACRO TAÏO MAÕ NGUOÀN MÔÙI ÑÖÔÏC IN RA.THÍ DUÏ CAÙC DOØNG CHUÙ THÍCH ÑÖÔÏC BOÛ QUA. ÑAÂY LAØ TUYØ CHOÏN DEFAULT. .LALL (LIST ALL) TOAØN BOÄ CAÙC DOØNG TRONG MACRO ÑÖÔÏC IN RA TRÖØ NHÖÕNG CHUÙ THÍCH BAÉT ÑAÀU BAÈNG 2 DAÁU ;; CHUONG 9 MACRO 6 ÑÒNH NGHÓA MACRO ÑÒNH NGHÓA MACRO CUÙ PHAÙP KHAI BAÙO MACRO : MACRO_NAME MACRO [ ] STATEMENTS ENDM GOÏI MACRO : MACRO_NAME [, ...] THOÂNG SOÁ HÌNH THÖÙC CHÆ COÙ TAÙC DUÏNG ÑAÙNH DAÁU VÒ TRÍ CUÛA THOÂNG SOÁ TRONG MACRO. QUAN TROÏNG NHAÁT LAØ VÒ TRÍ CAÙC THOÂNG SOÁ. CHUONG 9 MACRO 7 MACRO TRUYỀN THAM SỐ .MODEL SMALL .STACK 100H MOV AH,4CH PUTCHAR MACRO KT INT 21H MOV DL,KT MOV AH,2 MAIN ENDP INT 21H END MAIN ENDM .CODE MAIN PROC MOV DL, ‘A’ PUTCHAR MOV DL, ‘*” PUTCHAR CHUONG 9 MACRO 8 SWAP MACRO BIEÁN1, BIEÁN2 MOV AX, BIEN1 XCHG AX, BIEN2 MOV BIEN1, AX ENDM GOÏI : SWAP TRI1, TRI2 CHUONG 9 MACRO 9 TRAO ÑOÅI THAM SOÁ CUÛA MACRO MOÄT MACRO COÙ THEÅ COÙ THOÂNG SOÁ HOAËC KHOÂNG COÙ THOÂNG SOÁ. MACRO COÙ THOÂNG SOÁ SÖÛ DUÏNG MACRO . CODE PUTCHAR MACRO CHAR MOV AH, 2 .. ... MOV DL, CHAR PUTCHAR ‘A’ INT 21H PUTCHAR ‘B’ ENDM PUTCHAR ‘C’ ... CHUONG 9 MACRO 10 MACRO TRUYỀN THÔNG SỐ Thí dụ : macro @Printstr Viết chương trình in 2 chuổi ‘Hello’ và ‘Hi”. .DATA MSG1 DB ‘Hello’,13,10 Ta thấy đoạn 1 MSG2 DB‘Hi’,13,10 và đoạn 2 gần .CODE giống nhau ………. có thể tạo macro MOV DX, OFFSET MSG1 ;1 có tham số như MOV AH,9 ;1 sau : INT 21H ;1 MOV DX, OFFSET MSG2 ;2 MOV AH,9 ;2 INT 21H ;2 …….. CHUONG 9 MACRO 11 THÍ DUÏ VEÀ MACRO DISPLAY MACRO STRING PUSH AX PUSH DX LEA DX, STRING MOV AH,9 INT 21H POP DX GOÏI : DISPLAY CHUOI POP AX ENDM CHUONG 9 MACRO 12 TRAO ÑOÅI THAM SOÁ CUÛA MACRO MACRO LOCATE : ÑÒNH VÒ CURSOR MAØN HÌNH LOCATE MACRO ROW, COLUMN SÖÛ DUÏNG MACRO PUSH AX PUSH BX TA COÙ CAÙC DAÏNG SÖÛ PUSH DX DUÏNG SAU : MOV BX, 0 LOCATE 10,20 MOV AH, 2 MOV DH, ROW LOCATE ROW, COL MOV DL, COLUMN LOCATE CH, CL INT 10H POP DX CHUÙ YÙ : KHOÂNG DUØNG POP BX CAÙC THANH GHI POP AX AH,AL,BH,BL VÌ SEÕ ÑUÏNG ENDM ÑOÄ VÔÙI CAÙC THANH GHI ÑAÕ SÖÛ DUÏNG TRONG CHUONG 9 MACRO 13 MACRO MACRO LOÀNG NHAU MOÄT CAÙCH ÑÔN GIAÛN ÑEÅ XAÂY ...
Nội dung trích xuất từ tài liệu:
Bài giảng Cấu trúc máy tính - Chương 9: Macro MACRO MACRO Định nghĩa Macro và gọi Macro Vaán ñeà truyeàn thoâng soá trong Macro. Macro loàng nhau. Söû duïng Macro ñeå goïi chöông trình con. Caùc toaùn töû Macro. Thö vieän Macro So saùnh vieäc duøng Macro vôùi Procedure Moät soá Macro maãu. CHUONG 9 MACRO 1 ÑÒNH NGHÓA MACRO ÑÒNH NGHÓA MACRO Macro laø 1 kyù hieäu ñöôïc gaùn cho 1 nhoùm leänh ASM – Macro laø teân thay theá cho 1 nhoùm leänh. Taïi sao caàn coù Macro : Trong laäp trình nhieàu luùc ta caàn phaûi vieát nhöõng leänh na naù nhau nhieàu laàn maø ta khoâng muoán vieát döôùi daïng haøm vì duøng haøm toán thôøi gian thöïc thi, thay vì ta phaûi vieát ñaày ñuû nhoùm leänh naøy vaøo CT, ta chæ caàn vieát Macro maø ta ñaõ gaùn cho chuùng. CHUONG 9 MACRO 2 LÀ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 CHUONG 9 MACRO 3 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 @Newline để thay thế đoạn code này : @NewLine Macro MOV DL,13 Sau đó, bất kỳ chỗ nào MOV AH,2 cần xuống dòng, ta chỉ cần gọi macro INT 21H @NewLine. MOV DL,10 @NewLine MOV AH,2 INT 21H ENDM CHUONG 9 MACRO 4 MACRO (tt) MACRO (tt) Khi hôïp dòch noäi dung nhoùm leänh naøy maø ta ñaõ gaùn cho macro seõ ñöôïc thay theá vaøo nhöõng nôi coù teân macro tröôùc khi CT ñöôïc hôïp dòch thaønh file OBJ. Ex1 : nhieàu khi ta phaûi vieát laïi nhieàu laàn ñoaïn leänh xuaát kyù töï trong DL ra maøn hình. MOV AH, 2 INT 21H Thay vì phaûi vieát caû 1 caëp leänh treân moãi khi caàn xuaát kyù töï trong DL, ta coù theå vieát Macro PUTCHAR nhö sau : PUTCHAR MACRO MOV AH,2 INT 21H ENDM CHUONG 9 MACRO 5 MÔÛ ROÄNG CUÛA MACRO COÙ THEÅ XEM TRONG FILE.LIST. 3 DIRECTIVE BIEÂN DÒCH SAU SEÕ QUYEÁT ÑÒNH MÔÛ ROÄNG MACRO NHÖ THEÁ NAØO. .SALL (SUPRESS ALL) PHAÀN MÔÛ ROÄNG MACRO KHOÂNG ÑÖÔÏC IN. SÖÛ DUÏNG KHI MACRO LÔÙN HAY MACRO ÑÖÔÏC THAM CHIEÁU NHIEÀU LAÀN TRONG CT. .XALL CHÆ NHÖÕNG DOØNG MACRO TAÏO MAÕ NGUOÀN MÔÙI ÑÖÔÏC IN RA.THÍ DUÏ CAÙC DOØNG CHUÙ THÍCH ÑÖÔÏC BOÛ QUA. ÑAÂY LAØ TUYØ CHOÏN DEFAULT. .LALL (LIST ALL) TOAØN BOÄ CAÙC DOØNG TRONG MACRO ÑÖÔÏC IN RA TRÖØ NHÖÕNG CHUÙ THÍCH BAÉT ÑAÀU BAÈNG 2 DAÁU ;; CHUONG 9 MACRO 6 ÑÒNH NGHÓA MACRO ÑÒNH NGHÓA MACRO CUÙ PHAÙP KHAI BAÙO MACRO : MACRO_NAME MACRO [ ] STATEMENTS ENDM GOÏI MACRO : MACRO_NAME [, ...] THOÂNG SOÁ HÌNH THÖÙC CHÆ COÙ TAÙC DUÏNG ÑAÙNH DAÁU VÒ TRÍ CUÛA THOÂNG SOÁ TRONG MACRO. QUAN TROÏNG NHAÁT LAØ VÒ TRÍ CAÙC THOÂNG SOÁ. CHUONG 9 MACRO 7 MACRO TRUYỀN THAM SỐ .MODEL SMALL .STACK 100H MOV AH,4CH PUTCHAR MACRO KT INT 21H MOV DL,KT MOV AH,2 MAIN ENDP INT 21H END MAIN ENDM .CODE MAIN PROC MOV DL, ‘A’ PUTCHAR MOV DL, ‘*” PUTCHAR CHUONG 9 MACRO 8 SWAP MACRO BIEÁN1, BIEÁN2 MOV AX, BIEN1 XCHG AX, BIEN2 MOV BIEN1, AX ENDM GOÏI : SWAP TRI1, TRI2 CHUONG 9 MACRO 9 TRAO ÑOÅI THAM SOÁ CUÛA MACRO MOÄT MACRO COÙ THEÅ COÙ THOÂNG SOÁ HOAËC KHOÂNG COÙ THOÂNG SOÁ. MACRO COÙ THOÂNG SOÁ SÖÛ DUÏNG MACRO . CODE PUTCHAR MACRO CHAR MOV AH, 2 .. ... MOV DL, CHAR PUTCHAR ‘A’ INT 21H PUTCHAR ‘B’ ENDM PUTCHAR ‘C’ ... CHUONG 9 MACRO 10 MACRO TRUYỀN THÔNG SỐ Thí dụ : macro @Printstr Viết chương trình in 2 chuổi ‘Hello’ và ‘Hi”. .DATA MSG1 DB ‘Hello’,13,10 Ta thấy đoạn 1 MSG2 DB‘Hi’,13,10 và đoạn 2 gần .CODE giống nhau ………. có thể tạo macro MOV DX, OFFSET MSG1 ;1 có tham số như MOV AH,9 ;1 sau : INT 21H ;1 MOV DX, OFFSET MSG2 ;2 MOV AH,9 ;2 INT 21H ;2 …….. CHUONG 9 MACRO 11 THÍ DUÏ VEÀ MACRO DISPLAY MACRO STRING PUSH AX PUSH DX LEA DX, STRING MOV AH,9 INT 21H POP DX GOÏI : DISPLAY CHUOI POP AX ENDM CHUONG 9 MACRO 12 TRAO ÑOÅI THAM SOÁ CUÛA MACRO MACRO LOCATE : ÑÒNH VÒ CURSOR MAØN HÌNH LOCATE MACRO ROW, COLUMN SÖÛ DUÏNG MACRO PUSH AX PUSH BX TA COÙ CAÙC DAÏNG SÖÛ PUSH DX DUÏNG SAU : MOV BX, 0 LOCATE 10,20 MOV AH, 2 MOV DH, ROW LOCATE ROW, COL MOV DL, COLUMN LOCATE CH, CL INT 10H POP DX CHUÙ YÙ : KHOÂNG DUØNG POP BX CAÙC THANH GHI POP AX AH,AL,BH,BL VÌ SEÕ ÑUÏNG ENDM ÑOÄ VÔÙI CAÙC THANH GHI ÑAÕ SÖÛ DUÏNG TRONG CHUONG 9 MACRO 13 MACRO MACRO LOÀNG NHAU MOÄT CAÙCH ÑÔN GIAÛN ÑEÅ XAÂY ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Cấu trúc máy tính Cấu trúc máy tính Định nghĩa Macro Macro lồng nhau Toán tử Macro Thư viện MacroTài liệu liên quan:
-
50 trang 508 0 0
-
67 trang 311 1 0
-
Giáo trình Cấu trúc máy tính toàn tập
130 trang 212 0 0 -
78 trang 171 3 0
-
Đề kiểm tra giữa học kỳ II năm 2013 - 2014 môn Cấu trúc máy tính
6 trang 155 0 0 -
Thuyết trình môn kiến trúc máy tính: CPU
20 trang 154 0 0 -
Tài liệu giảng dạy Cấu trúc và bảo trì máy tính - Trường CĐ Kinh tế - Kỹ thuật Vinatex TP. HCM
133 trang 134 0 0 -
Giáo trình lắp ráp và cài đặt máy vi tính - Trường TCN Đông Sài Gòn
85 trang 123 0 0 -
66 trang 90 1 0
-
Giáo trình Cấu trúc máy tính - Nguyễn Hữu Lộc
126 trang 85 0 0