Skip to content

Latest commit

 

History

History
33 lines (25 loc) · 1.26 KB

README.md

File metadata and controls

33 lines (25 loc) · 1.26 KB

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