Skip to content

KARAN-D05/Assembler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

443 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚙️ Assembler

  • This is an extension to my Computing Machinery from Scratch project, after building an advanced arithmetic machine (called Repeated Arithmetic Machine aka r_a_m) and in version4 (r_a_mv4) we succesfully implemented Machine-Code Programming by storing machine code instructions in the program memory.
  • So next logical step was to go up the computing stack from machine code to language having instructions in an english like language, called Mnemonics, so after mapping all the machine codes to mnemonics we get -The Assembly Language.

🧾 Custom Assembly Language Instructions - asm-v0

Instruction set reflects the hardware primitives of the machine.


👉 Refer Sample Programs

⚙️ Implementation Stack

Python Custom Assembly

🧱 Versions Built

  • asmv0.1 -> Mapped Data control operations to assembly Language.
  • asmv0.2 -> Mapped arithmetic, system and temporal Control to assembly Language.
  • asmv0.3 -> Added Syntax Analysis, semantic analysis and an instruction execution report.

Machine Code Output v0.2
🧾 Machine Code Output - Assembler v0.2

asmv0.3 Syntax Analysis
🕵️ Syntax Analysis - Assembler v0.3

asmv0.3 Semantic Analysis
🕵️ Semantic Analysis - Assembler v0.3

🧩 Latest Development

  • Syntax Analysis of assembly program before being processed by assembler to save computational resources.
  • Basic Semantic analysis to detect logical flaws in assembly program before converting to machine code.

🚀 Future Development

  • Advanced Semantic Analysis for the assembly language, enabling validation and structured interpretation of programs before translation to machine code.
  • Mapping multiple sequences of low-level instructions into a single mnemonic, enabling higher-level abstractions and more complex machine functionality with fewer lines of assembly code - MACROS

🧰 Computing Machinery from Scratch

⬇️ Download This Repository

🪟 Windows

Download → download_repos.bat

Double-click it and pick the repo(s) you want.

🐧 Linux / macOS

Download → download_repos.sh

bash

chmod +x download_repos.sh
./download_repos.sh

Always downloads the latest version.

📜 License

  • Source code, HDL, and Logisim circuit files are licensed under the MIT License.
  • Documentation, diagrams, images, and PDFs are licensed under Creative Commons Attribution 4.0 (CC BY 4.0).

About

Built custom assembly language and Assembler for my custom-built Computing Machinery project as its software extension. Mapped machine-functionality to assembly capable of data-control, machine-control and temporal-control operations and Implemented an assembler with syntax and semantic analysis 💻.

Topics

Resources

License

Stars

Watchers

Forks

Contributors