Exercism v3 launches on Sept 1st 2021. Learn more! 🚀🚀🚀

MIPS Assembly

Join the MIPS Assembly Track
TODO: The maintainers have not provided an introduction for this track.
Join the MIPS Assembly Track
Track mentors

1 Mentor

Our mentors are friendly, experienced MIPS Assembly developers who will help teach you new techniques and tricks.
Track students

1,365 Students

Join hundreds of students who have enjoyed learning and improving their skills by taking this track.
Track exercises

14 Exercises

Hundreds of hours have gone into making these exercises fun, useful, and challenging to help you enjoy learning.

About MIPS Assembly

# Convert ascii string of binary digits to integer
# $a0 - input, pointer to null-terminated string of 1's and 0's
# $v0 - output, integer form of binary string
# $t0 - ascii value of the char pointed to
# $t1 - integer value (0 or 1) of the char pointed to

.globl binary_convert

        li      $v0, 0                  # Reset accumulator to 0.

        lb      $t0, 0($a0)             # Load a character,
        beq     $t0, $zero, end         # if it is null then return.
        sll     $v0, $v0, 1             # Otherwise shift accumulator left,
        addi    $t1, $t0, -48           # calculate the value of the character,
        or      $v0, $v0, $t1           # and add that to the accumulator.
        addi    $a0, $a0, 1             # Finally, increment the pointer
        j       loop                    # and loop.

        jr $ra

MIPS is a reduced instruction set computer (RISC) instruction set architecture, currently used mostly in video game consoles and routers. It is also a popular architecture in introductory courses and textbooks on computer architecture, due to its simplicity relative to x86 and ARM. Here we use the 32-bit instruction set; a 64-bit instruction set also exists.

This track involves programming in MIPS assembly language, assembled and run on a cross-platform simulator.

Join the MIPS Assembly track

I'm having a ton of fun doing it.

I'm a newcomer to exercism.io. I've been working as a systems engineer for about a year and I've been putting off learning assembly properly (I don't have a degree). I've been doing the MIPS track and not only do I feel like I am really increasing my level of insight into the inner workings of the machine, I'm having a ton of fun doing it. Thank you so much to everyone who is putting work into this.

Relaxed. Encouraging. Supportive.

Meet the MIPS Assembly Track mentors

Once you join the MIPS Assembly language track, you will receive support and feedback from our team of mentors. Here are the bios of a few of the mentors of this track.

Avatar of Sudhanshu Gupta

Sudhanshu Gupta Personal page

I have experience in computer architecture and systems design in general. MIPS was one of the first ISAs I learnt. Looking forward to helping others learn it too :)
Fun. Challenging. Interesting

Community-sourced MIPS Assembly exercises

These are a few of the 14 exercises on the MIPS Assembly track. You can see all the exercises here.

Difference Of Squares
RNA Transcription
Nth Prime

Get started with the MIPS Assembly track. As with everything on Exercism, it's 100% free!

Join the MIPS Assembly Track