C++ compilers
What is the actual difference of 8-bit, 16-bit and 32-bit compilers? And why the hell can''t MSVC++ compile a source (for windows console) that a 16-bit compiler like Digital Mars Compiler, for instance, can (for "original" dos)?
Thanks for answers...
MSVC++ compiles a 32 bit console program. It "emulates" DOS. You can''t do DOS specific things in it.
I know there are 16 bit and 32 bit compilers.
The 16 bit ones are for creating 16 bit applications for DOS because the compiler was designed to use the processor in "real mode" which uses 16 bit registers
The 32bit compilers are for "protected mode" this is where the processor can use 32bit registers which most modern operating systems use.
The 16 bit ones are for creating 16 bit applications for DOS because the compiler was designed to use the processor in "real mode" which uses 16 bit registers
The 32bit compilers are for "protected mode" this is where the processor can use 32bit registers which most modern operating systems use.
The nightmare travels across the cosmos with his burning mane. The trail of ash that is produced.
?Have a nice day!?
quote: Original post by Maega
MSVC++ compiles a 32 bit console program. It "emulates" DOS.
It doesn''t emulate anything - it is a Win32 console application. No DOS.
I''ve looked at the source, and there are pieces that are good and pieces that are not ... My experience and some of my friends'' experience is that Linux is quite unreliable. Microsoft is really unreliable but Linux is worse. -- Ken Thompson
--AnkhSVN - A Visual Studio .NET Addin for the Subversion version control system.[Project site] [IRC channel] [Blog]
January 08, 2003 11:58 PM
The differences in 16-bit and 32-bit code lie in the expected processor mode (real vs protected), word size, amount of addressable memory (real supports 24-bit or 1MB memory vs protected mode 32-bit or 4 GB memory), memory mapping (segmented address space in real mode as opposed to flat address space in 32-bit protected mode) and level of support expected from the OS environment (low-level basic support library in DOS and direct use of BIOS routines as opposed to high-level OS services provided in a typical 32-bit OS environment with more limited direct hardware access.
If you want to compile 16-bit code for DOS you should probably fish around for one of the old Borland compilers (like Turbo C++ 3.0 -- ah, the memories). Of course, the ISO standard goes out the window along with modern STL and you''ll have to figure out the old forgotten quirks and idiosyncracies of whatever compiler you use.
If you want to compile 16-bit code for DOS you should probably fish around for one of the old Borland compilers (like Turbo C++ 3.0 -- ah, the memories). Of course, the ISO standard goes out the window along with modern STL and you''ll have to figure out the old forgotten quirks and idiosyncracies of whatever compiler you use.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement