Search code examples
assemblyprocessors

How different are assembly language for different kinds of processers?


How different are assembly language for each type of processor?

If someone learns x86 intel assembly, will he have to start completely from the beginning if he would use assembly with another processor type (fx x86-64)?


Solution

  • Well, some of the concepts are similar. For example, all processor architectures have registers for quick temporary storage, all of them have an instruction pointer, and nearly all of them have a stack. In my experience, if you can handle x86 (and certainly amd64, which is more complex than just adding 32 bits), you you will be able handle simpler architectures like ARM, z80, or MIPS pretty quickly.

    If you want to pick it up quickly, grab the free version of IDA or if you are in Windows there is also Ollydbg. Write a little program in C, and disassemble what you wrote. You will learn a ton that way (that is pretty much how I taught myself).

    Also to note, as far as x86 there is two major assembly syntax flavors - Intel and AT&T. It seems the linux crowd tends to use AT&T syntax, but I prefer Intel personally.