3 ms·
Not exactly true. CPUs in long mode (aka 64 bit) do not have the virtual 8086 mode, so the cannot natively execute real mode code. However, the code segment se
by pmalynin 10y ago
Not exactly true.
CPUs in long mode (aka 64 bit) do not have the virtual 8086 mode, so the cannot natively execute real mode code. However, the code segment selector can be configured in such a way as to allow 16 bit protected mode code to be executed, the same way 32 bit code can be executed.
- bdonlan 10y agoThere's also the option to transition to 32-bit protected mode and then go to virtual 8086 mode from there. Or to simply emulate the entire CPU. It was probably just a cost-benefit trade-off in the end.
- raverbashing 10y agoYeah Wasting silicon to emulate some 30+ y.o. architecture makes no sense Intel/AMD could thing about doing a "pure" x64/x32 processor that starts in 32-bit mode mode and leaves everything else to an emulation layer (this could be present on the UEFI only for those customers that are interested in it)
- therein 10y agoSo why is 16bit execution supported on Windows 10 32bit but not on Windows 10 64bit or even Windows XP 64bit?
- wvenable 10y agoIt seems to be this: https://msdn.microsoft.com/en-us/library/aa384249.aspx https://msdn.microsoft.com/en-us/library/aa384249.aspx "The primary reason is that handles have 32 significant bits on 64-bit Windows. Therefore, handles cannot be truncated and passed to 16-bit applications without loss of data."