I feel extremely comfortable dealing with 32-bit PowerPC assembly code, but I am completely lost when trying to make sense of x86 code. Do any of the other common architectures like ARM, MIPS, Sparc etc have an easier than x86 instruction set?
Well, most RISCs are very much alike, so if you know the PPC well, then transitioning to ARM, MIPS, or SPARC will all be a snap. I actually learnt SPARC first and then was able to pick up a MIPS and the PPC in a couple of hours.
The thing that makes the x86 so confusing isn't really its assembly language, but the design of the processor. People tend to get hung up on:
push
ing and pop
ping all over the place. You end up counting the pushes and pops to figure out just where your stack pointer has gotten to, which always makes my head hurt.So, to get comfortable with the x86, divide and conquer: pick one of those points, learn how it works, then move on to the next. It may help to start by learning the calling conventions first, because that'll make all the other instructions that reference the stack pointer make more sense.
Without a definition of "easy" im pretty sure most people would agree that the x86 instruction set is easily the most horrible for a mainstream popular CPU.
If one were to write up a list of good or best practices one should follow when designing an instruction set, the x86 would be a good example of all the opposites.
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