Assembly: why some x86 opcodes are invalid in x64? -


my question arises simple curiosity:

why in x64 of opcodes invalid (06, 07 example), whereas in x86 used basic instructions (06 , 07 being push , pop)? though simplest instructions nicely in both architectures.

why disabled of simple instructions in x64? why wouldn't work? why disabled opcodes, creating holes in opcode list, when instead assign them x64 versions of instructions?

reference:

http://ref.x86asm.net/coder32.html

http://ref.x86asm.net/coder64.html

the 06 , 07 opcodes in 32-bit mode instructions push es , pop es. in 64-bit mode, segment registers cs, ds, es, , ss no longer used determine memory addresses: processor assumes base address of 0 , no size limits. there no reason applications (other operating system itself) access these registers, opcodes changing , accessing them removed.

the fs , gs segment registers can still set base address in 64-bit mode, opcodes related them have not been removed.


Comments

Popular posts from this blog

powershell Start-Process exit code -1073741502 when used with Credential from a windows service environment -

twig - Using Twigbridge in a Laravel 5.1 Package -

c# - LINQ join Entities from HashSet's, Join vs Dictionary vs HashSet performance -