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 EXITM ENDIF
조건부 매크로정의와 확장 ADD BX, ARG 2 IFE COUNT-2 EXITM ENDIF ADD CX, ARG 3 ENDM
조건부 매크로정의와 확장 l 매크로의 호출과 확장 VARY LOOP 1, 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 VALU MOV DL, 1 MOV AL, 1 REPT VALU MUL DL INC DL ENDM
반복기능의 매크로 확장 ⇒ FACT 2 MOV MUL INC DL, 1 AL, 1 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
struct point{ int x; int y; }first, second; l 두개의 정수형 변수 x, y를 가지는 point라는 구조체 정의 l point 형 변수 first와 second 생성 l first와 second는 x, y를 멤버로 가짐 l first. x =3;
struct int }; struct l 구조체의 point{ x; y; point first, second; 정의와 변수선언을 구분
typedef unsigned long ulong; ulong ul; l Equivalent to "unsigned long ul;
typedef struct int x; int y; }pointer; pointer first, l point라는 구조체 정의 l pointer라는 synonym 선언 l pointer point{ second; first, second; struct point first, second;
- Slides: 64