MIPS Assembly

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

0 Mentors

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

242 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

binary_convert:
        li      $v0, 0                  # Reset accumulator to 0.

loop:
        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.

end:
        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.

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.

Binary
easy
math
Scrabble Score
medium
misc
Triangle
easy
misc
Trinary
easy
math
Hexadecimal
easy
math
Hamming
easy
misc
Passionate. Knowledgeable. Creative.

Meet the MIPS Assembly Track maintainers

The MIPS Assembly Maintainers are the brains behind the MIPS Assembly Track. They spend their spare time creating interesting and challenging exercises that we can all learn from. We are incredibly grateful for their hard work. Here are the bios of a few of the maintainers of this track.

Avatar of Ozan Onay

Ozan Onay Bradfield School of Computer Science

Ozan teaches MIPS assembly as part of the Computer Architecture course at Bradfield, and finds that it's a great excuse to think about how computers actually work!

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

Join the MIPS Assembly Track