I am trying to learn up to date x86 assembly all from old 386 base instructions through all the sse additions up until now.
I read some things like SSE5 counts 170 new instructions - and I became urged to know how many of them there are presently in total.
Some may say that it's hard to count (because some of them are close, but work on different type arguments), but I think they can be counted with some reasonable assumptions on how to count multiples as one. So could anybody provide an answer to that?
The best answer would be the table of how many instructions in each processor extension it was.
and then make sure i saw it all
- I do not think that this is a reasonable approach when learning assembly. Pick a book like Assembly Language Step-by-Step: Programming with Linux, get started and over time you will learn the necessary instructions – Flatusvpaddd xmm0, xmm0, xmm0
andvpaddd ymm0, ymm0, ymm0
different instructions or not? They aren't even in the same instruction set (AVX vs AVX2), but they're the same mnemonic and the only difference in the encoding is the length bit. If you just want to work through all of them, that's easier than trying to count them.. – Atamanmovsd
is also a case of one mnemonic, but two different instructions (other 386+ instruction, other SSE2 instruction). And many instructions have multiple mnemonics. And arerep
/repe
/repz
andrepne
/repnz
instructions? Intel® 64 and IA-32 Architectures Developer's Manual also presentsmov
as 3 different instructions: 1. Move, 2. Move to/from Control Registers, 3. Move to/from Debug Registers. And why you expect others to count the instructions for you? – Ulisesadd r32, r32
vs.add r32, imm32
vs.add r32, imm8(sign-extended)
. Andmovzx r32, r8
vs.movzx r16, r8
. Actually, then you have to count different prefixes, since operand-size and REX modify things. – Samuelson