• 파일시티 이벤트
  • LF몰 이벤트
  • 서울좀비 이벤트
  • 탑툰 이벤트
  • 닥터피엘 이벤트
  • 아이템베이 이벤트
  • 아이템매니아 이벤트

[프로그래밍] SIC/XE 로더/시뮬레이터 (VC)

*종*
개인인증판매자스토어
최초 등록일
2007.02.01
최종 저작일
2006.06
파일확장자 압축파일
가격 3,500원 할인쿠폰받기
다운로드
장바구니

소개글

아래 어셈블러에 이은 다음 과제입니다. 컴퓨터 학부 3학년 과목 시스템 프로그래밍의 과제였습니다. 로더와 시뮬레이터를 제작하는 것인데, C로 개발하였으며, GUI는 MFC로 꾸몄습니다.

소스코드가 어렵지 않습니다. MFC코드 빼고나면 정말 간단한 SWITCH-CASE문으로 대부분 구성되어 있으며, System Software (3rd Edition) by Leland L. Beck 책과 함께 한다면 더욱 어렵지 않습니다.

압축 파일 내부에는 VC 6.0 프로젝트 파일과 VC 2005용 솔루션 파일이 있으며, 소스코드 외 레포트 파일 및 아키텍쳐 구조도 및 설명서, 프로그램 Control Flow인 순서도 또한 포함되어 있습니다. 본인이 SIC/XE명령어를 추가하고 싶다면 간단하게 SWITCH-CASE에 추가하기만 하면 됩니다. 교재의 COPY하는 소스 코드를 테스트 해보시면 동작 원리를 알 수 있을 듯하며, 물론 예제 코드 또한 포함되어 있습니다.

교수님께서 보기 쉬운 레포트를 작성해서 인지 매우 좋은 과제 점수를 받았습니다.
흐름도나 아키텍쳐 설명 등을 포함해서 그런 것 같으며, 모두 압축 파일 내에 있습니다.
아무리 코딩을 잘 해도, 교수님께서 보기 어려운 소스코드나 레포트인 경우 점수가 잘 나오지 않더군요. 문서의 컬러링 또한 한목 한 것 같습니다.

참고하셔서 좋은 성적 받으시길 바래요.. ^^
아래는 문서 내용 일부분입니다.


** 요구 사항
SIC/XE의 오브젝트 파일을 메모리에 로드하는 기능과 로드된 Machine Code를 실행하는 시뮬레이터를 구현

Loader - SIC/XE 오브젝트 코드의 각 Section을 Linking해주는 기능과 Relocation Loader기능을 포함하고 있다.
Simulator – Loader가 올릴 SIC/XE의 가상 머신 아키텍쳐 구현과 Memory에 올라간 Machine Code를 분석/해석하여 실행을 시켜주는 기능을 포함하고 있다.


** 구 현
본 프로그램에서는 MFC를 이용하여 GUI를 제작, 내부 핵심 모듈은 C함수로 구현이 되어 있다.

** 주요 함수
Loader – Loader_Pass1(), Loader_Pass2() [ HexACSII2Int(), convert_endian() ]
Simulater – parsing_code() [ address_analysis(), type3_execute() ]

** SIC/XE Architecture 구현 방법
- 메모리
Char배열로 1MB의 메모리를 할당
- 레지스터
각 레지스터의 3바이트를 구현하기 위해 int와 char[4]를 union타입으로 Packing한 구조(상위 1바이트는 사용안함)
- union을 사용한 이유 – 메모리 복사시 SIC메모리를 char배열로 만들었기에 메모리 복사하기 위해 char형 타입필요 , 시뮬레이터 사용시 각종 산술 연산을 하기 위해 int형 타입이 필요

** 장치
SIC/XE Machine의 장치 ‘F1’과 ‘05’장치는 Simulater에서는 각각을 파일로 Emulation 시켰다.
‘F1’ = test_in.txt
‘05’ = test_out.txt

** SIC/XE Simulator Architecture
위 그림에서 OnMenuitem1pass와 OnMenuitemLineRun, OnMenuitemRun은 사용자가 버튼을 클릭하였을 때 수행하는 메소드이다. 각 이벤트 메소드들은 Loader과 Simulater 모듈을 실행시켜 메모리에 적재, 코드 분석, 실행 등을 수행한다.

구현한 프로젝트에서 사용된 파일은 아래와 같다.

SICXEAssembler.cpp - GUI를 위해 MFC에서 사용 – Wizard가 만들어 준 코드라 첨부하지 않음
SICXEAssemblerDlg.cpp - GUI를 위해 MFC에서 사용 – 실제 이 코드에서 각 함수를 Call한다.
SICXELoader.cpp - Object를 메모리에 Load시키는 코드 파일
SICXESimulater.cpp - 메모리에 적재된 Machine Code를 분석/실행하는 코드 파일
StdAfx.cpp - SIC/XE Architecture Emulation을 위해 사용된 전역 변수 및 공통 함수

위 파일 중에서 실제 작성/수정한 파일인 SICXEAssemblerDlg.cpp, SICXELoader.cpp, SICXESimulater.cpp, StdAfx.cpp
파일만 레포트에 추가하였다.

컴파일 실행환경

** 개발 환경
O/S : Windows XP Professional SP2
Tool & Compiler : Visual C++ 6.0 SP6
Language - Core : C
- GUI : C++, MFC

압축파일 내 파일목록

COPY.obj
ReadMe.txt
ReadMe.txt.bak
resource.h
SICXEAssembler.aps
SICXEAssembler.clw
SICXEAssembler.cpp
SICXEAssembler.dsp
SICXEAssembler.dsw
SICXEAssembler.h
SICXEAssembler.ncb
SICXEAssembler.opt
SICXEAssembler.plg
SICXEAssembler.rc
SICXEAssembler.sln
SICXEAssembler.suo
SICXEAssembler.vcproj
SICXEAssembler.vcproj.KOREA.Administrator.user
SICXEAssemblerDlg.cpp
SICXEAssemblerDlg.h
SICXELoader.cpp
SICXELoader.h
SICXESimulater.cpp
SICXESimulater.h
StdAfx.cpp
StdAfx.h
test_in.txt
test_in.txt.bak
test_in.txt1
test_out.txt1
res/SICXEAssembler.ico
res/SICXEAssembler.rc2
레포트/filedone.gif
레포트/fileopen.gif
레포트/MGIF.gif
레포트/PASS2.gif
레포트/SICXE Architecture.vsd
레포트/SICXE Architecture1.gif
레포트/SICXE Architecture2.gif
레포트/SICXEAssemblerDlg.doc
레포트/Thumbs.db
레포트/시스템프로그래밍-시뮬레이터.doc

참고 자료

System Software (3rd Edition) by Leland L. Beck
*종*
판매자 유형Bronze개인인증

주의사항

저작권 자료의 정보 및 내용의 진실성에 대하여 해피캠퍼스는 보증하지 않으며, 해당 정보 및 게시물 저작권과 기타 법적 책임은 자료 등록자에게 있습니다.
자료 및 게시물 내용의 불법적 이용, 무단 전재∙배포는 금지되어 있습니다.
저작권침해, 명예훼손 등 분쟁 요소 발견 시 고객센터의 저작권침해 신고센터를 이용해 주시기 바랍니다.
환불정책

해피캠퍼스는 구매자와 판매자 모두가 만족하는 서비스가 되도록 노력하고 있으며, 아래의 4가지 자료환불 조건을 꼭 확인해주시기 바랍니다.

파일오류 중복자료 저작권 없음 설명과 실제 내용 불일치
파일의 다운로드가 제대로 되지 않거나 파일형식에 맞는 프로그램으로 정상 작동하지 않는 경우 다른 자료와 70% 이상 내용이 일치하는 경우 (중복임을 확인할 수 있는 근거 필요함) 인터넷의 다른 사이트, 연구기관, 학교, 서적 등의 자료를 도용한 경우 자료의 설명과 실제 자료의 내용이 일치하지 않는 경우
최근 본 자료더보기
탑툰 이벤트
[프로그래밍] SIC/XE 로더/시뮬레이터 (VC)
  • 레이어 팝업
  • 레이어 팝업
  • 레이어 팝업
  • 레이어 팝업
AI 챗봇
2024년 05월 19일 일요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
10:33 오후
New

24시간 응대가능한
AI 챗봇이 런칭되었습니다. 닫기