Giter Club home page Giter Club logo

assembler's Introduction

SIC ASSEMBLER - Proof of Concept :

Basic Introduction of the SIC Assembler :

  • SIC refers to Simplified Instruction Computer.
  • The Assembler is based on a Hypothetical Machine predefined in the book System Software by Leland L.Beck.
  • The Assembler is a Two Pass Assembler.
  • Seperate External input for Op Table is provided for customizing the Assembler to suit the user needs.

Program Details :

  • The Assembler is written in Python.
  • The File symtable.dat is a dynamically created file which represents the symbol table for the input Program.
  • The File optable.dat is a static file which should always be present with the Assembler code, it contains the machine code for the respective system and the corresponding Op code.
  • The File optable.dat is open for customization and can be changed based on the Machine requirements, but should follow the same format of storage of data.
  • The File ObjectFile is Created after both passes are completed Successfully.

OpCode Table [ optable.dat ] :

  • Storage Format : Mnemonic Machine-Code Format Length-of-Code
  • Mnemonic entered in optable is matched with the source code for performing specified operation.
  • Machine-Code matches the Mnemonic to the Instruction Set for the respective system
  • Length-of-Code the respective Mnemonic Instruction Length is recorded here.
  • Format [Unnecessary for SIC Assembler] Stores Instruction Format.

Symbol Table [ symtable.dat ] :

  • Storage Format : Label-Name Linear-Address-Generated[HexaDecimal]
  • Label-Name: Instruction having Labels
  • Linear Address Generated.

Object Code [ ObjectFile ] :

  • Head Record : H^Program-Name[2-7]^Start-Address^Length-Of-Object-Program
  • Text Record : T^MachineInstruction^MachineInstruction^.....
  • End Record : E^Address-of-First-Executable

Usage Instruction in Command Line :

Execution :

  >> python2 Assembler.py [source-file]

To Do :

  • Pass 2 Functionality needs to be validated.
  • Support for SIC/XE [Extended] needs to be incorporated.

assembler's People

Contributors

kshitijkarthick avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.