- 동국대학교 2학년 전공 과목 시스템 소프트웨어의 중간고사 텀 프로젝트인
Two Pass Assembler만들기 레포지토리 입니다. - 과제 겸
C++과Cmake를 사용한 프로젝트 만들기 연습을 같이 하고 있습니다.
two-pass-assembler/
│
├─ CMakeLists.txt # CMake 빌드 설정
├─ README.md # 프로젝트 설명
│
├─ include/ # 헤더 파일
│ ├─ assembler/ # 어셈블러 핵심 클래스
│ │ ├─ assembler.hpp # 전체 어셈블러 컨트롤러, pass1/pass2 관리
│ │ └─ program.hpp # 전체 코드 관리, Line 객체 저장, 심볼 테이블 관리
│ │
│ ├─ lines/ # 각 라인 타입
│ │ ├─ line.hpp # 추상 클래스, analyze() 가상 함수
│ │ ├─ comment_line.hpp# 주석만 있는 줄 처리
│ │ └─ code_line.hpp # 명령어 포함 줄 처리, label/opcode/operand/comment
│ │
│ ├─ tables/ # 상수 및 테이블
│ │ ├─ instruction_table.hpp # OPTAB, 명령어->헥사 매핑
│ │ ├─ symbol_table.hpp # SYMTAB, 라벨->주소
│ │ └─ location_table.hpp # LOCCTR 테이블
│ │
│ └─ utils/ # 범용 유틸
│ ├─ io_utils.hpp # 파일 읽기/쓰기
│ └─ parser.hpp # readLines, tokenize, isComment 등
│
├─ src/ # 소스 코드 구현
│ ├─ main.cpp # 프로그램 진입점, Assembler 호출
│ │
│ ├─ assembler/
│ │ ├─ assembler.cpp
│ │ └─ program.cpp
│ │
│ ├─ lines/
│ │ ├─ comment_line.cpp
│ │ └─ code_line.cpp
│ │
│ ├─ tables/
│ │ ├─ instruction_table.cpp
│ │ ├─ symbol_table.cpp
│ │ └─ location_table.cpp
│ │
│ └─ utils/
│ ├─ io_utils.cpp
│ └─ parser.cpp
│
└─ test/ # 테스트 코드 (python)