CO Lab Manual
Course Page
  • Course Information
    • Welcome
    • Introduction
    • Your Contributions
    • Lab Sessions and Etiquette
    • Team Setup
    • Assumed Prior Knowledge
  • Setup Guides
    • GitHub Repository Setup
    • Technical Setup
      • Windows
      • Linux
      • macOS
    • GitHub SSH Setup
    • Framework Setup
  • Reference Documentation
    • Introduction to the Documentation
    • A Brief History Lesson
    • Syntax (Intel vs. AT&T)
      • Section Exercises
    • Memory
      • Memory Management
      • Section Exercises
    • Registers
      • Section Exercises
    • Instructions
    • Subroutines
      • Calling Subroutines
      • Writing Subroutines
      • Section Exercises
    • Input/Output
      • Printing to the Terminal
      • Reading from the Terminal
      • Section Exercises
    • Programming Constructs
    • Assembler Directives
    • C/C++ vs Assembly
    • Building and Running Programs
    • Address Sanitization
    • A0: A Running Example
  • Assignments
    • Introduction to the Assignments
    • Mandatory Assignments
      • A1: Subroutines and I/O
      • A2: Recursion
    • Extra Assignments
      • A3-a: Fibonacci Calculator
      • A3-b: Fibonacci REPL
      • A4: Diff
      • A5: Printf
      • A6: HPC
      • A7: Bitmap
      • A8: Game
  • Appendix
    • Acknowledgments
    • Rules and Regulations
    • Frequently Asked Questions
    • How to use a Debugger
Powered by GitBook
On this page
  1. Assignments

Extra Assignments

up to 4,150 points

Have the mandatory assignments left you with a burning desire for more Assembly? Do you just have abundant free time that you can't find a use for? Are you a perfectionist who simply needs to collect all the points there are?

Well look no further, you have arrived at the solution to all your problems: Extra Assignments.


These assignments are intended for those who have completed the mandatory assignments and feel like they want to continue on the journey to more complex programs and challenges. The extra assignments take the concepts introduced in the mandatory part of the Lab as their baseline and introduce more complexity but also more interesting and engaging tasks (who didn't yet wake up at night with the desire to write their own printf implementation... in Assembly..?).

You can arbitrarily pick and choose from the extra assignments (after you have completed all mandatory assignments). The order of the assignments roughly follows the perceived difficulty and complexity. It is advised, but not required, to follow the given order.


While this Lab Manual hopefully served you well until here, you are highly encouraged to extend your repertoire of resources for the extra assignments and make use of the many heated Stack Overflow discussions or dusty Assembly manuals you might find online.

A word of advice, however: You will find anything and everything on the Internet. There are usually at least 3 different opinions on how to solve some issue in Assembly but you may just need the 4th. Always think critically about what you're reading and whether you understand it.

Furthermore: Plagiarism is still a thing, so do not simply copy solutions from the internet and if you do get inspiration from somewhere make sure to mention the source in your code!


Note that you will need to create a new group on CodeGrade for each extra assignment if you are working with a partner. As you are allowed to work in a different group than before, the CodeGrade group set used for the mandatory assignments does not apply to the extra assignments.

PreviousA2: RecursionNextA3-a: Fibonacci Calculator

Last updated 4 months ago