MIPS vs Intel x86 vs LLVM as the first assembly language to learn?

What assembly language should I learn as my first assembler language? MIPS (easier and often used for educational purposes), Intel x86 (ubiquitous) or portable assembly language for the LLVM project ?

One of the advantages of building LLVM is that I can try to use it as a training exercise to write a simple compiler using LLVM as a backend in the future.

+5
source share
3 answers

None of the above. x86 is the last assembler language you want to learn. MIPS is quite educational for a number of reasons, but it is not a good set of first instructions, mainly because it is a little non-standard, does not use flags, has delayed branch intervals, you need to wean some things in order to switch to another processor. MIPS can be second or third.

LLVM - , -. , , lsasim, GitHub. , . . Thumb ( Thumb-2 ) , MSP430 , LatticeMico8 . AVR . ARM . -, MIPS DLX. x86 , . , 8088/86, .

, , , , , , . , , , , . , , , .

, , ( ). , , , ( ). LLVM , , / , . . , LLVM - backend (vbcc , LCC-, : Small-C). , - , LLVM, , , - .

+9

8085 , 8051 .

80386 80486 .

, , .

+3

8085 - . . 8085, - AVR ( , 8085 -, AVR . ).

LLVM .. I will not advise you to learn assembly language. First of all, the language runs on top of a hypothetical architecture that assumes infinite registers and expects the SSA format for assembly. Note: LLVM is great for writing compilers, but it is certainly a good idea to start exploring the assembly level.

The complete x86 instruction set is too complex to interest anyone. I am sure you will be bored to look at all the instructions in the kit.

Summary: Go for 8085

0
source

All Articles