deveshsangwan / Two-pass-assembler

A two pass assembler implementation in c++

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Two-Pass-Assembler

By Devesh Sangwan, Shikhar Panwar

This is a simple C++ implementation for a Two pass assembler.

Overview of the Code

pass1:

  • Extracts all symbols and sections.
  • A symbol and section table is generated and are stored in a csv file.

pass2:

  • Each instruction is converted to machine code.
  • The programs again reads the symbol table to get address and size associated with each symbol.

Other Functions:

  • dec_to_bin(int) : Converts the given decimal number to the Binary String
  • search_MOT(string) : It searchers the MOT for the Machine Operation Code and returns the index.
  • search_symbol_table(string) : It searches the symbol_table and returns the address of the symbol.
  • get_size(string) : It returns the size of the symbol/operation.
  • get_data(string) : It extracts data from string and converts it into its binary equivalent.
  • store_symbol_table() : Stores symbol table in csv format.
  • store_sec() : Store section table in csv.

Structures:

  • mnemonics : Machine Operation Table
  • symbol : Symbol Table
  • section: Section Table

Data Structures:

  • Vector
  • File Stream

About

A two pass assembler implementation in c++

License:GNU General Public License v3.0


Languages

Language:C++ 100.0%