TL;DR: On exams, your code must use only those instructions and psuedoinstructions listed on the MIPS reference card, in addition to la
for full credit.
To be explicit, altogether this means that only the following psuedoinstructions are allowed:
blt
(Branch Less Than)bgt
(Branch Greater Than)ble
(Branch Less Than or Equal)bge
(Branch Greater Than or Equal)li
(Load Immediate)la
(Load Address)move
(Move)There are a number of instructions and pseudoinstructions located in the MIPS reference card, which is available both at the link and in the front of the course textbook. This set of instructions should be more than sufficient for all the tasks you will be asked to do in this class, and there are no restrictions on which ones you can use, unless otherwise stated.
That said, there are even more instructions, and particularly pseudoinstructions, available.
Scattered documentation exists online which goes through these instructions, though usually in an incomplete manner (for example, this PDF covers the seq
pseudoinstruction, which is not on the aforementioned reference card, but nonetheless exists).
Such pseudoinstructions are nice to have on a day-to-day basis.
However, there are some problems associated with these, particularly from an educational perspective:
For the above reasons, we require that on exams, your code must use only those instructions and psuedoinstructions listed on the MIPS reference card for full credit.
The only exception to this is the la
psuedoinstruction, which may also be used with no restrictions.
While you may use whatever instructions you want for lab assignments, it is still recommended that you stick to the reference card, just to better prepare you for the exams.