::: 강좌/소스/문서 :::

강좌/소스/문서 성격에 맞지 않는 광고,비방,질문의 글은 즉시 삭제하며
내용을 복사하여 사용할 경우 반드시 이곳(http://www.howto.pe.kr)을 출처로 명시하여 주세요


Category

  김영대(2003-03-13 21:04:19, Hit : 18545, Vote : 1858
 http://www.howto.pe.kr
 sicxe.zip (17.1 KB), Download : 3811
 [소스] SIC/XE 어셈블러 구현

// 작성자: 김영대( http://www.howto.pe.kr )

1.문제설명
  SIC/XE 기계에서 수행되는 assembler의 구현
  SIC/XE의 2 pass의 일반적인 기능을 기본으로 함
  pass 1(기호정의)
    1. 프로그램내의 모든 문에 주소를 배정
    2. pass 2에서 사용하기 위해 모든 레이블에 배정된 주소값들을 저장
    3. 어셈블러 지시자들에 관련된 처리를 부분적으로 행함
  pass 2(명령어를 번역하고 목적프로그램 생성)
    1. 명령어를 어셈블(연산자 코드를 번역하고 주소를 조사함)
    2. BYTE, WORD등으로 정의되는 데이터 값을 생성
    3. pass 1동안에 이루어지지 않는 어셈블러 지시자의 처리를 함
    4. 목적프로그램과 어셈블러 리스트를 출력
  SIC/XE 기계에서 수행되는 다양한 기능들을 단계적으로 구현

2.개발환경
  컴파일/실행 환경: Linux (RedHat 6.1)
  구현언어: C 언어
  구현자: 김영대(cozy@howto.pe.kr, http://www.howto.pe.kr )

3.Assembler 기능 처리범위
  Instruction Set :  All the SIC/XE instructions listed in the appendix
  Instruction Formats  :  1형식, 2형식, 3형식 and 4형식 for the SIC/XE architecture
  Addressing : Simple (with or without indexing), Indirect, Immediate
  Assembler Directives : START, END, WORD, BYTE, RESW, RESB, BASE, NOBASE,
                                     LTORG, EQU, CSECT, EXTDEF, EXTREF
  Error Detection
    1. illegal instruction
    2. invalid symbol
    3. undefined symbol in operand field
    4. illegal addressing
    5. duplicate symbol

4.Assembler의 결과물 종류 및 실행방법
  1.Assembler의 결과물 종류
    symbol/literal table - *.sbl
     assemble list - *.lst
     object program - *.obj
  2.Assembler 실행방법
     > sicxe source_file

     source_file은  full name 이며  source_file의 symbol/literal table 파일은 source_file.sbl,
     assemble list 파일은 source_file.lst, object program 파일은 source_file.obj 로 출력





13   [컴퓨터 전공] [소스] 이진 트리(Binary Tree)  김영대 2004/06/18 9784 1823
12   [컴퓨터 전공] [소스] MASM 간단한 계산기 어셈블리 프로그램 소스  김영대 2003/07/11 9635 1505
11   [컴퓨터 전공] [소스] Top-down parsing by Recursive-Descent 을 이용한 계산기 MASM 어셈블리 생성기  김영대 2003/07/11 7482 1603
10   [컴퓨터 전공] [소스] Huffman Code Encoder  김영대 2003/03/18 7818 1503
9   [컴퓨터 전공] [소스] Windows RLE(BMP) Encoder  김영대 2003/03/18 7511 1326
8   [컴퓨터 전공] [소스] CompuServe RLE Encoder  김영대 2003/03/18 6172 1438
7   [컴퓨터 전공] [소스] 계산기를 위한 Lex & Yacc  김영대 2003/03/15 9806 1599
6   [컴퓨터 전공] [소스] ANSI-C 파서를 위한 Lex & Yacc  김영대 2003/03/13 8644 1931
5   [컴퓨터 전공] [소스] PL/0 Compiler 구현  김영대 2003/03/13 7436 1693
4   [컴퓨터 전공] [소스] Recursive-Descent 파싱을 이용한 계산기 구현  김영대 2003/03/13 10277 1613
3   [컴퓨터 전공] [소스] POSIX thread를 사용한 행렬계산  김영대 2003/03/13 7356 1510
2   [컴퓨터 전공] [소스] 0/1 배낭 문제(Knapsack Problem)  김영대 2003/03/13 9028 1601
  [컴퓨터 전공] [소스] SIC/XE 어셈블러 구현  김영대 2003/03/13 18545 1858

1
 

Copyright 1999-2017 Zeroboard / skin by zero