Skip to content

[시스템 소프트웨어 중간 텀 프로젝트] SIC/XE 2 Pass Assembler 만들기

Notifications You must be signed in to change notification settings

karpitony/two-pass-assembler

Repository files navigation

two-pass-assembler

  • 동국대학교 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)

About

[시스템 소프트웨어 중간 텀 프로젝트] SIC/XE 2 Pass Assembler 만들기

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published