어셈블러의 PASS1, PASS2 구현
- 최초 등록일
- 2010.09.08
- 최종 저작일
- 2010.09
- 23페이지/ 한컴오피스
- 가격 4,900원
소개글
C언어로 어셈블러의 PASS1, PASS2 구현한것을 각주를 달아서 설명하였다.
자료에 자신있습니다. 믿고 받아주세요.
목차
1. C언어 소스
2. 결과 화면
① 소스파일을 파일로부터 읽어올때
① 소스파일을 파일로부터 읽어올때
본문내용
과제 : 어셈블러의 PASS1, PASS2 구현
char POT[][] 가연산자 테이블
char MOT[][] 기계연산자 테이블
int LC Location Count 값
enum _type 명령어의 타입을 저장할 열거체 선언
enum _type_table 각 테이블의 이름을 가리키는 열거체 선언
typedef struct _table table Symbol, Listeral, BaseAddress를 저장할 구조체
typedef struct _token token 분리된 Token을 저장할 구조체
typedef struct _p2_table p2_table Pass2 결과를 저장할 구조체
_type_table tb_type 명령어의 타입을 저장할 열거체 변수
table *tables[8] 결과를 저장할 각 테이블의 포인터
p2_table *p2_head, *p2_tail PASS2 결과를 저장할 연결리스트의 머리와 꼬리 포인터
token *tk_head, *tk_tail 토큰 연결리스트의 머리와 꼬리 포인터
void Initialize() 각 구조체 및 변수 초기화
_type is_OPT(char *p) 가연산자 및 기계연산자 테이블 검색해서 명령어 타입을 리턴
int is_Char(char *src, char *find) 문자열 src에서 문자열 find가 몇개 있는지 찾아낸다
int into_Value(char *symbol) 1. symobol을 각 테이블에서 찾아 값을리턴
2. 숫자일 경우 문자->숫자 변환 리턴
3. `*` 경우 현재 LC를 리턴
int Search_BaseAddr(int lc, char *sel) 1. sel이 "val" 경우 주소값을 리턴
2. sel이 "base" 경우 주소를 리턴
void Free_Token(token *head, token *tail) Token Linked List 메모리 해제
void Free_All() 할당한 모든 메모리 해제
참고 자료
없음