[시스템 프로그래밍]C로만든 매크로 프로세서 MACRO PROCESSOR
- 최초 등록일
- 2006.05.31
- 최종 저작일
- 2004.11
- 8페이지/ 한컴오피스
- 가격 1,000원
소개글
시스템 프로그래밍 시간에 만든 간단한 매크로 프로세스 입니다.
많은 매크로 명령어가 실행되진 않지만 나름대로 열심히 만들었습니다.
공부하는데 참고하시면 많은 도움 될 겁니다.
목차
MACRO PROCESSOR
실행화면
소스코드
본문내용
#include <stdio.h>
#include <memory.h>
#include <stdlib.h>
#include <string.h>
//POT테이블의 생성
char pot[5][6]={"START","USING","LTORG","DC","END"};
//원시 소스를 저장하기 위한 임시 버퍼
char line_buffer[12][80];
//라인의 토큰을 저장하기 위한 구조체
struct l_token{
char lable[8];
char opcode[8];
char oprend1[8];
char oprend2[8];
char oprend3[8];
};
//메크로 정의 테이블 구조체
struct MDTable {
int index;
char lable[8];
char opcode[8];
char oprend1[8];
char oprend2[8];
char oprend3[8];
};
//메크로 이름 테이블 구조체
struct MNTable {
int index;
char name[8];
int MDTindex;
};
//인수 저장 테이블 구조체
struct ArgumentListArray {
char name[8];
int Index;
};
struct l_token token;//라인 토큰 구조체 선언
struct l_token pass1buffer[20]; //pass1결과 저장 (매크로정의 부분제외)
struct l_token pass2buffer[20];//pass2결과 저장
struct MDTable MDT[20];
struct MNTable MNT[5];
struct ArgumentListArray ALA[10];
//원시 코드를 읽어들이는 함수 (어셈블러의 함수 재사용)
void read_line(){
FILE * fs;
int l_count,l_length;
if((fs=fopen("m_sample.asm","rt"))==NULL)
{//파일 읽기 실패시
printf("File is not read!!\n");
exit(1);
}
//파일 읽기 성공시
for(l_count=0;;l_count++)
{
if(fgets(line_buffer[l_count],80,fs)==NULL){
line_buffer[l_count][0]=`\n`;
break;
}
참고 자료
없음