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

[어셈블리어]SIC(Simplified Instruction Computer) Assembler

*재*
개인인증판매자스토어
최초 등록일
2005.12.06
최종 저작일
2005.12
4페이지/ 압축파일
가격 2,000원 할인쿠폰받기
다운로드
장바구니

소개글

sicasm을 실행시키기 위하여 도스상에서

c:> sicasm exam.src

위와 같이 하면 source file과 이름이 같은 exam.tmp, exam.lst, exam.obj의 3개 파일이 만들어 집니다.
exam.tmp는 pass one을 수행하면서 만들게 되는데 각각의 LOCCTR 값만이 char 형으로 저장되어 있습니다.

ex) 1000
1003
1006

exam.lst는 pass two를 수행하면서 만들게 되는데 각각의 LOCCTR 값과 source file의 내용과 기계어내용이 char 형으로 저장되어 있습니다.

ex) 1000 COPY START 1000
1000 FIRST STL RETADR 141033

exam.obj는 원래 hexadecimal로 저장하는 것 같은데 저는 char형으로 저장하였습니다. 만약 hexadecimal로 바꾸고자 한다면

Head record :
7자리(H와 프로그램이름)는 그냥 읽어들인 다음 문자를 2개씩 읽어서 integer로 바꾼 다음 char형의 변수에 저장한 후 변수를 파일에 저장합니다.
Text record :
1자리(T)는 그냥 읽어들인 다음 문자를 2개씩 읽어서 위와 같이 하면 될 것입니다.
ex)
HCOPY 00100000107A
T0010001E*************0*************0154820613C100300102A0C103900102D
T00101E150C10*************34C0000454F4*************
T0020391E041030001030E0205D30203FD8205D*************420572C205E38203F
T0020571C1010364C0000F1001000041000E0*************064DC20792C1036
T0*************4C000005
E001000

결과 파일들은 모두 확장자만 맞췄을 뿐 character의 연속이므로 DOS 창에서 type 명령을 사용하여 볼 수 있습니다.

컴파일 실행환경

turbo c/dos

본문내용

int Sym_Insert(struct Node record);
//record를 넘겨받아 memory를 할당받아서 record를 복사하고 할당받은 메모리를 테이블에 삽입한다.

int RetAddr(char * symbol, char * Address);
//symbol을 SymTable에서 찾아서 저장되어 있는 LOCCTR 값을 Address에 char형으로 반환한다.

int ReadALine(char*LABLE,char*OPCODE,char*OPERAND,FILE*sourceFp);
//source file의 한줄을 읽어서 LABLE, OPCODE, OPERAND로 구분하여 char형으로 담아 놓는다.

void ErrProcess(int temp,FILE * tempFp);
//temp로 넘겨받은 값에 따라서 tempFp에 error 메시지를 기록한다.

int ByteDistinct(char * OPERAND);
//opcode가 byte일 경우 C` `(character), X` `(hex)인지를 판단하여 길이를 return 값으로 반환한다.

int PassOne(char * sourceFN);
//sourceFN을 main으로부터 받아서 PassOne을 수행하고 .tmp 파일에 LOCCTR값들을 기록한다.

void ReadLOC(char * LOCCTR,FILE * tempFp)
//.tmp 파일에서 LOCCTR을 하나씩 읽어들이는 함수

void MakeHrecord(char*Name,char * LOCCTR,int ProgLength,FILE * objectFp);
//Head record를 만들고 Name 시작주소 길이를 char형으로 objectFp에 기록한다.

void InputLength(FILE * objectFp,int * count);
//objectFp의 Text record의 시작주소 다음에 길이를 기록

void MakeTrecord(char * LOCCTR,FILE * objectFp,int * count);
//objectFp의 Text record를 만든다.

void WriteObj(FILE * listFp, char * LOCCTR, char * machine, char * Address, FILE * objectFp,int * count)
//objectFp와 listFp에 opcode의 hex code값과 주소의 hex값을 기록

압축파일 내 파일목록

report.hwp
exam.src
Sic Assembler.cpp
SicAsm.exe

참고 자료

없음
*재*
판매자 유형Bronze개인인증

주의사항

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

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

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

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