Generally speaking, it means you're trying to access a value whose
address is supposed to be some multiple of a byte address, but using an
address that is NOT the required multiple.
For example, Patterson and Hennesy state that the MIPS lw and sw
instructions, which move a 4-byte word, must specify an address that's a
multiple of 4 (page 56). Presumably our MIPS emulator obeys this
restriction.
I believe the same is true of MIPS instruction addresses, though I don't
see a statement to that effect in Patterson and Hennesy, and I'm
reasonably certain that I've once or twice seen mips.twoints generate an
unaligned exception by branching to an address that's not a multiple of
4.