1. Project Overview
This repository contains a comprehensive collection of MIPS assembly language programs developed to demonstrate proficiency in low-level programming, computer architecture concepts, and algorithm implementation. Covering a range of applications—from basic arithmetic operations and calculators to educational grade calculators, graphics-based pattern generation, and mathematical utilities—this project showcases a commitment to writing clean, well-documented, and optimized assembly code. The work is designed as a core component of my coursework in Computer Organization & Assembly Language and serves as a portfolio piece that highlights my deep technical expertise and attention to detail.
2. Summary
The repository is meticulously organized into distinct categories, each representing different areas of application:
- Calculators: Programs that perform arithmetic operations, advanced calculations, and tax computations, complete with robust error handling and input validation.
- Education: An educational grade calculator that processes exam scores, converts numerical values into letter grades, and calculates overall CGPA.
- Graphics: A diamond pattern generator that creates customizable ASCII art through dynamic space and star placement.
- Math: Programs such as an average calculator and a Fibonacci sequence generator that showcase efficient algorithm implementation.
The README.md provides clear instructions on compiling and running each program using popular MIPS simulators, sample outputs to demonstrate functionality, and insights into performance considerations.
3. My Role & Contributions
As the Sole Developer & Architect, I was responsible for:
- Design & Development: Writing and optimizing all MIPS assembly programs to demonstrate a variety of computer architecture and algorithm concepts.
- Repository Organization: Structuring the code into well-defined categories (Calculators, Education, Graphics, Math) for clarity and ease of navigation.
- Documentation: Crafting detailed documentation and sample outputs to make the repository accessible to both beginners and advanced learners.
- Error Handling & Optimization: Implementing comprehensive error checking, efficient loop structures, and effective memory management techniques.
- Version Control: Maintaining the project on GitHub to ensure consistent updates and ease of collaboration.
4. Challenges & Learning Outcomes