The compiler generates 8086 object code (/G0) unless you take special steps. Because the newer processors (the 80186, 80188, 80286, 80386, and 80486) are backward-compatible with the 8086 instruction set, using this instruction set ensures compatibility with all 80x86-based computers. While you gain compatibility across the entire family of 80x86 processors, you lose the advantage of some of the more powerful instructions in the newer processors.
If you know your program will only be running on an 80186, 80188, 80286, 80386, or 80486 processor, you can cause the compiler to generate instructions specific to these processors. These instructions increase the speed of your program, but you lose compatibility with machines that use older processors in the 80x86 family. Table 1.1 lists the options for processor-specific code generation:
Table 1.1 Processor Compatibility
Command-Line Option | Compatible Processors |
/G0 | 8088, 8086, 80188, 80186, 80286, 80386, 80486 |
/G1 | 80188, 80186, 80286, 80386, 80486 |
/G2 | 80286, 80386, 80486 |
/G3 | 80386, 80486 |
/G4 | 80486 |
The /G3 and /G4 options are only available when compiling a 32-bit program.