so recently, i had to learn how to read mips
granted, i had avoided it, because it's hard (ok not anymore but i really thought it was hard but i don't smell toast anymore so i think its ok)
heres a table that makes me feel a little better, where n is a number (has ARM energy)
mips register(s) | probably x86 equivalent | thoughts |
| literally the number zero |
|
|
|
| |
for the assembler, i'm not an assembler | |
|
|
| |
literally emits eax (and its babies) energy. used for return values and to feed syscall numbers apparently | |
|
|
| |
a is for argument unless it's 'a' and 't' | |
|
|
| |
used for temporary value storage | |
|
|
| |
k is for kernel and my name is not sanders | |
|
| i wouldn't be able to tell you |
|
|
|
| |
stack pointer (something normal) | |
|
|
| |
frame pointer (another normal thing) | |
|
| could be like eip, but when eip is telling u where to return to |
| literally tells u where to return to after a function |
|
great! now that we made it through that, lets talk briefly about instructions.
my favorite quote is: "my favorite thing about mips is not actually the delay slot but they have like fake instructions"
important things to remember:
- instruction + i = do it with an immediate value
- instruction + u = do it with an unsigned value
- instruction + iu = do it with both
therefore, here are some references instead!
ok i feel better now (not rly! enjoy brain dump)!