The MIPS Instruction Set

Written by Walter Chang

Note: Correct pronunciation is critical to get the cadence and beat to line up; see the Pronunciation Guide at the end of this document for how you should pronounce the various assembler instructions.

To the tune of: The Major-General's Song, from Pirates of Penzance
Inspired by Tom Lehrer's The Elements

There's div and nor and mult and or and sllv sra
There's xor and swl and beq and sll and bgezal jumps today
And multu, srav, and j combined with lhu and lui
And also slt and bne and instruction mthi
There's sh and sb and lbu and blez and jal and then sltu
And of course there's and and add and srl and sub and things to do
With the MIPS instructions I am very nimble on my feet
And though I sing assembler but I am really not a geek

There's addu, ori, slti, swr, and bgez and jalr too
And loads of other fun instructions that were put in just for you
The MIPS instruction set is very simple to be memorized
Which will come in handy when you have your code to optimize!

There's addi, divu, lh, rfe, and syscall, jr, mfcz
And mfc1, nop, and break, and bltzal with bczt
And srlv, xori, bltz, and lb, lwl, and addiu
andi, subu, lwr, and lwcz, mtcz, sltiu
There's bczf, bgtz to branch if it's greater than
And mflo and sw, these instructions are not any also-rans
There's mtlo and swcz too, although I don't know what they're for
And lw - that's obviously load word from mem bytes there are four

And now my song is through and I know all of my words by the heart
Which will come in handy when we have our projects multi-part
I live and breathe the MIPS instruction set on every night and day
Because the MIPS assembler will always try and work my way!

Pronunciation Guide

note: assembler is 4 syllables: ass-em-bell-er

The pronounciations suitable for this song are as follows:

Back to the Cornell CS Songbook