ADDATA MACRO ADD AX DATA ADD BX DATA
원시프로그램과 확장된 프로그램 ADDATA MACRO ADD AX, DATA ADD BX, DATA 확장시 없어짐 ADD CX, DATA ENDM MAIN SEGMENT ASSUME CS: NAIN, DS: MAIN. . .
원시프로그램과 확장된 프로그램 MOV AX, MAIN MOV DS, AX. . . ADDATA MOV AH, 4 CH INT 21 H MOV AX, MOV DS, . . . ADD AX, ADD BX, ADD CX, MOV AH, INT 21 H MAIN AX DATA DATA 4 CH
매크로의 호출과 인수의 사용 ADDATA 1. . . ADDATA 1 DATA 2. . . DATA 1 DW 5 DATA 2 DW 10 ADD ADD ADD. . . DATA 1 DATA 2 AX, BX, CX, DATA 1 AX, BX, CX, DATA 2 DW 5 DW 10
여러 개의 인수를 사용한 정의 l 예제 프로그램 LOOP 1 : ADD AX, ADD BX, ADD CX, . . LOOP 2 : ADD AX, ADD BX, ADD CX, DATA 1 DATA 2 DATA 3 DATA 2 DATA 1
여러 개의 인수를 사용한 정의 l 매크로의 정의 ADD 2 MACRO LAB, ARG 1, ARG 2, ARG 3 LAB : ADD AX, ARG 1 ADD BX, ARG 2 ADD CX, ARG 3 ENDM
여러 개의 인수를 사용한 정의 l 매크로의 호출과 확장 ADD 2 LOOP 1, DATA 2, DATA 3 ⇒ LOOP 1 : ADD AX, DATA 1 ADD BX, DATA 2 ADD CX, DATA 3
조건부 매크로정의와 확장 l 조건부 매크로 정의 VARY MACRO LAB, COUNT, ARG 1, ARG 2, ARG 3 LAB : ADD AX, ARG 1 IFE COUNT-1 ; COUNT = 0 이면… EXITM ; 매크로를 빠져나가라… ENDIF
조건부 매크로 정의와 확장 ADD BX, ARG 2 IFE COUNT-2 ; COUNT = 0 이면… EXITM ; 매크로를 빠져나가라… ENDIF ADD CX, ARG 3 ENDM
조건부 매크로정의와 확장 l 매크로의 호출과 확장 VARY LOOP 2, 2, DATA 3, DATA 2 ⇒ LOOP 2 : ADD AX, DATA 3 ADD BX, DATA 2
매크로내의 매크로 호출 l 매크로의 1차 정의 ADD 1 MACRO ARG MOV AX, ARG SHL AX, 1 ADD BX, AX ENDM
매크로내의 매크로 호출 l 매크로의 2차 정의 ADDS MACRO ARG 1, ARG 2 ADD 1 ARG 1 ADD 1 ARG 2 ENDM
매크로내의 매크로 호출 ⇒ MOV SHL ADD AX, AX, BX, DATA 1 1 AX DATA 2 1 AX
매크로내의 매크로 정의 l 이중 매크로 정의 DEFUN MACRO NAME MACRO ARG PUSH ARG CALL NAME POP ARG ENDM
REPT Directive l This makes it possible for a single macro to create a large data structure l repeats a block of statements based on a counter REPT expression Statement-list ENDM
반복기능의 매크로 정의 FACT MACRO VALUE MOV DL, 1 MOV AL, 1 REPT VALUE MUL DL VALUE 만큼 반복 INC DL ENDM
반복기능의 매크로 확장 ⇒ FACT 2 MOV MUL INC DL, 1 AL, 1 DL DL 2회 반복 DL DL
매크로 정의표(MDT)의 형태 색인. . . 15 16 17 18 19. . . 문 장. . . ADD 2 MACRO LAB #0 ADD AX, ADD BX, ADD CX, ENDM ARG 1, ARG 2, ARG 3 #1 #2 #3
예제 l l 매크로 호출 SUM LOOP, XX, YY, ZZ l LOOP 1: MOV ADD MOV AX, AX, BX, XX YY ZZ AX
- Slides: 55