You are right but in assembly for the same command there are, sometimes, many solutions:
NOP => XOR RAX,RAX or ADD [RBX+RSI],00 or ...
MUL => MUL Or IMUL or LEA or SHL
MOV REG,0 => SUB REG,REG, XOR REG,REG or DEC REG or MUL by Magic Number or ADC... or SBB
DIV => IDIV or MUL or SHR
CMP => CMOcc
CALL => JMP
Even if the result is the same the flags set can be different and it is function what you want to do, and this the more difficult thing.
Example :
MOV RAX,-1
MOV RBX,2
SHR RAX,1
ADC RBX,RBX => will give 5 rather than 4
On other reaason is for getting parallelisation.
Move certain instructions before other to have the two instructions executed at the same time
...
Read INTEL, AMD manuals.
And a last and most important advice that PELLE gave me is first of all "HAVE A GOOD ALGORITHM"
This post is the kind of discussion we would have in the forum, not between us.
I change of subject, what is your pronostic for ITALIA vs ENGLAND
I expect, I hope ITALIA 2 / ENGLAND 1.
I hope they will not make the same thing tat in 1966!
Thank You for the comments, I appreciate.