Skip to content

Implemented and Design a Cross Assembler for Virtual Machines

Notifications You must be signed in to change notification settings

NichHarris/crossAssembler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

242 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Assembler Project

Designed Architecture and Implemented a Cm Assembler for Virtual Machines in Java

  • Built to Be Cross Platform
    • Compatible with Windows, MacOs, and Linux
  • Focused on Software Processes
    • Scrum w/ Bi Weekly Sprints/Releases
    • TDD for Unit and Integration Testing
    • Refactoring to Improve Architecture Based on PO's Advice
    • CI/CD using Github

Architecture Design

Key Concept Model

key-concept

Use Case Diagram

use-case

Class Diagram

class-diagram

Sequence Diagram

sequence

Package Diagram

package

Code Structure

Assembly Unit -> LineStatement + EOF

LineStatement -> Label + Instruction + Comment + EOL

Label -> String

Instruction -> Mnemonic + Operand

Operand -> Label (String) or main.java.Offset (Binary)

Directive: .cstring (String)

Comment (;) If ; detected, ignore the rest of the line until you reach EOL character ("\n" | "\r" | "\r\n") Remove useless whitespace

Assembler ends when EOF is detected ()

Generate pgm.exe for target and complete listing file pgm.lst with label table

Testing Documentation

Running Tests:

  1. Compile Test File: javac TestX.java
  2. Run Test File and Redirect Output into .txt: java TestX > TestX.txt
  3. Run Unit Test Using AUnit: java aunit TestX.txt

Scrum Team:

Nicholas Kawwas
Nicholas Harris
Matthew Sklivas
Vincent Beaulieu
Philippe Lee
Karine Chatta
Georgia Bardaklis
Lina Tran
Malek Jerbi

About

Implemented and Design a Cross Assembler for Virtual Machines

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 8