test.asm wrote: |0000:C3 | ret
|0001:9087C9 | align 4 ;Why "9087C9" instead of "909090"?
align
align
- vitsoft
- Site Admin
- Posts: 49
- Joined: 04 Nov 2017 20:08
- Location: Vítkov, The Czech Republic
- Contact:
Re: align
Since version 20180928 EuroAssembler uses HINT_NOP for alignment in code section when CPU level is 686 or X64.
This instruction is not available on older processors, €ASM emits combination of legacy do-nothing-instructions in this case, such as XCHG reg,reg or LEA reg,[reg].
For instance, when we need seven bytes of alignment in 32bit mode, €ASM emits a single instruction 8D842000000000 (disassembled as LEA EAX,[EAX+0*EAX+0]), which is performed faster than having to fetch and execute 90 (NOP) seven times.
For information what code is used as alignment stuff see the table No-operation encoding in the manual.
This instruction is not available on older processors, €ASM emits combination of legacy do-nothing-instructions in this case, such as XCHG reg,reg or LEA reg,[reg].
For instance, when we need seven bytes of alignment in 32bit mode, €ASM emits a single instruction 8D842000000000 (disassembled as LEA EAX,[EAX+0*EAX+0]), which is performed faster than having to fetch and execute 90 (NOP) seven times.
For information what code is used as alignment stuff see the table No-operation encoding in the manual.
Who is online
Users browsing this forum: No registered users and 2 guests