-
[시스템프로그래밍] 6강 매크로, 매크로의 기능, 매크로 프로세서의 설계프로그래밍/시스템프로그래밍 2014. 4. 26. 05:10반응형
* 매크로
매크로의 정의
반복되는 일련의 명령들을 하나의 새로운 이름으로 정의해 놓고 프로그래머가 쉽게 이용할 수 있도록 하는 것
새로운 기능을 정의하여 확장할 수 있는 기능을 제공
매크로 처리는 매크로 호출에 대한 소스 확장으로 이루어진다.
확장은 매크로 프로세서가 처리하고 대부분 어셈블리 언어세서 사용된다
매크로는 어셈블러에 포함되거나 별도의 프로그램 생성이 가능
2. 매크로 호출과 매크로 확장
여러 번 반복하여 수행해야하는 처리구문을 매크로로 정의하여 더욱 편리하게 활용 가능하다.
3. 매크로와 서브루틴
매크로는 반복되는 일련의 작업들을 프로그램에서 호출하였을 때 주 프로그램에 매크로 정의된 내용을 복사, 확장하여 실행하도록 구성된 것이며 반면 서브루틴은 프로그램 실행시에 프로시저가 있는 위치로 이동하여 처리하도록 구성된 작은 부 프로그램을 말한다.
* 매크로의 기능
매크로 인수
매크로 인수는 형식 인수와 실인수로 나누어진다.
형식 인수는 매크로 정의 시 명시되는 인수로 매개변수, 매개인수라고도 한다
실인수는 정의한 매크로를 호출할 때 주어지는 인수로 매크로에서 사용되는 인수로는 정의 시에 사용되는 형식인수의 호출 시에 주어지는 실인수로 구성
매크로 명령어 인수의 도입으로 매크로 호출 시에 주어지는 실인수에 따라서 치환된 코드를 변화시킬 수 있다.
2. 조건부 매크로 확장
조건부 매크로 확장에는 IFE라는 조건분기 지시어와 ENDIF라는 지시어에 의해 처리된다
3. 매크로 내의 매크로 호출
매크로 내에서 다른 매크로를 호출하는 것이다.
4. 매크로 내의 매크로 정의
매크로 정의 내에서 새로운 매크로를 정의하는 것을 말한다.
* 매크로 프로세서의 설계
매크로 프로세서의 기능
매크로 프로세서는 매크로 정의를 인식하는 기능, 매크로 정의를 저장하는 기능, 매크로 호출 인식 기능, 매크로 확장과 인수 치환하는 기능을 고려하여 설계해야 한다.
매크로 프로세서를 설계 시엔 이중 패스를 사용하게 되는데 이는 전향 참조 때문이다.
2. 이중 패스 매크로 프로세서
매크로의 정의에 대한 색인 표시를 매크로 호출 시의 인수 값으로 실인수표에 의해 치환되어 최종 확장된 매크로 처리된 프로그램이 된다.
3. 단일 패스 매크로 프로세서
단일 패스 매크로 프로세서는 매크로 정의표와 매크로 정의 계수기에 의해 MDT내의 행번호를 지정하게 되고 매크로 이름표 계수기는 MNT내의 행번호를 지정하게 된다.
형식 인수는 색인표시로 치환하기 위해 형식인수표가 사용된다.
4. 자료구조
매크로 프로세서는 기능적으로 어셈블러와 독립적
매크로 프로세서의 출력결과는 어셈블러의 입력으로 공급되는 형태
5. 알고리즘
매크로 프로세서는 하나의 입력 프로그램 속의 매크로를 처리하고 그 출력결과를 어셈블러가 받아 어셈블할 수 있도록 구성된다.
이중 패스 알고리즘의 가장 큰 장점으로는 매크로 호출이 해당 매크로의 정의에 앞서 나타날 수 있다는 점이다.
모든 매크로는 호출되기 전에 반드시 먼저 정의되어야 한다는 전향 참조를 지원해야한다
전향 참조를 금지시키면 두 개의 패스를 하나의 패스로 처리할 수 있다.
반응형'프로그래밍 > 시스템프로그래밍' 카테고리의 다른 글
[시스템프로그래밍] 8강 인터프리터의 기능, 인터프리터의 구조 (0) 2014.04.27 [시스템프로그래밍] 7강 로더와 링커의 기능, 로더의 형태, 바인딩, 연결 및 재배치 로더의 설계 (0) 2014.04.26 [시스템 프로그래밍] 5강 어셈블러 개요, 이중 패스 어셈블러, 이중 패스 어셈블러의 설계, 다중 패스 어셈블러, 테이블 처리 (0) 2014.04.26 [시스템프로그래밍] 4강 어셈블리어 개요, 어셈블리 명령어, 어셈블러 지시어(의사 명령어) (0) 2014.04.26 [시스템프로그래밍] 3강 기계 명령어의 구성, 주소지정방식 (0) 2014.04.25