At school we have been programming in MIPS assembly language for some time. I'm interested into delving into x86 assembly and I have heard that is somewhat harder (even my MIPS textbook says this).
What core information should I know as a MIPS programmer before making the dive into the x86 world?
x86 have more complex instructions than MIPS. So there is probably a single instruction for common sequences in MIPS (most notably memory addressing).
What is the difference between MIPS and ARM? MIPS and ARM are two different instruction set architectures in the family of RISC instruction set. Although both the instruction sets have a fixed and same instruction size, ARM has only 16 registers while MIPS has 32 registers.
MIPS is a company that makes processors and the name of the ISA and the name of the Assembly Language and the processors will all bear the name MIPS. Just like Intel processors, Assembly Language and instruction set can be properly called Intel (although we also see x86 and other variations).
The biggest things to keep in mind are:
Other than that, x86 is pretty straight forward. When you learn to abuse instructions like 'lea' and 'test', you learn to love it. Also, protip: Intel will send you copies of the instruction set manuals for free, don't even have to pay for shipping. Look around their site for the fulfillment email and request the books by SKU.
x86 has a very limited set of available registers compared to most other architectures. This doesn't really make the assembly language any harder to learn, but sometimes makes it harder to implement code in practice.
Also, because of the x86 history of strong backward compatibility, the instruction set is not terribly symmetric (definitely pre-RISC) and there can be lots of exceptions to the rule and corner cases to pay attention to.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With