소개글
시스템 소프트웨어 프로젝트 과제 그대로 올립니다. 입력과 출력에 대한 결과와 소스파일 까지 첨부했으니 도움이 되시길 바랍니다.
목차
1. 프로젝트 목적
2. 프로젝트 필요성
3. 기능 구현
4. 개선해야 할 사항
5. 실행 화면
6. 출력파일
본문내용
프로젝트 필요성
수업 시간에 다룬 기본 개념들을 바탕으로
대표적인 시스템 소프트웨어인 어셈블러를
직접 설계 및 구현해 봄으로써
컴퓨터 시스템의 동작 및 시스템 소프트웨어
관련 기술을 깊게 이해 할 수 있다.
▷ 텍스트 형식의 어셈블리 프로그램 소스 파일을 입력 O
▷ Program 5.1 형식의 텍스트 출력 파일을 생성 O
▷교재 Table 5.1 “x86 명령어 서브셋” O
▷ LABEL 의 처리
(라벨처리가 가능하나 점프명령어 등 미구현)
▷입력 파일 대/소문자 모두 지원, O
▷ ; (세미콜론)으로 구분되는 주석처리 지원 X
(처리 미흡으로 X표시)
▷일부 문법 오류 처리 지원
기능 구현
▷ db와 equ의사 명령어의 지원
▷ 완벽한 문법 오류 처리 지원
▷ ;주석으로 인식해야 하나 오류에 반복으로 제거
▷ 메모리 to 레지 일부 미완성
▷ 레지 to 메모리 미흡
개선해야 할 사항
실행화면
출력파일
: : FIN : :
..FILE:asm.cpp
#include
#include
#include
#include
#define SIZE 128
#define INST_SIZE 19
#define REG_SIZE 8
#define SYM_SIZE 100
struct Struct_Symbol{
char symbol_name[10];
int nValue;
int nLc;
}symbol_table[SYM_SIZE];
struct Inst{
char inst_name[4];
char inst_code[9];
int number_of_opnd;
int nLc;
int nSet;
};
char cDx[4] = {`[`, `D`, `X`, `]`};;
struct Inst Inst_Table[] =
{
{"MOV", "10001001", 2, 2, 1}, {"MOV", "10111000", 2, 2, 2}, {"MOV", "10111", 2, 5, 3},
{"ADD", "00000001", 2, 2, 1}, {"ADD", "10000001", 2, 6, 2}, {"ADD", "00000011", 2, 2, 3},
{"SUB", "00101001", 2, 2, 1}, {"SUB", "10000001", 2, 6, 2}, {"SUB", "00101011", 2, 2, 3},
{"INC", "01000", 1, 1, 1},
{"DEC", "01001", 1, 1, 1},
{ "IN", "11101101", 2, 1, 1},
{"OUT", "11101111", 2, 1, 1},
{"RET", "11000011", 0, 1, 1},
{"JMP", "11101001", 1, 6, 1},
{ "JZ", "00001111", 1, 6, 1},
{"JNZ", "00001111", 1, 6, 1},
{ "JS", "00001111", 1, 6, 1},
{"JNS", "00001111", 1, 6, 1}
};
struct Register{
char reg_name[4];
char reg_code[4];
참고 자료
없음
압축파일 내 파일목록
시스템 소프트웨어 프로젝트!!!!.ppt
asm.cpp
asm.exe
asm.exe의 바로 가기.lnk
test.asm
test.lst