MASM supports a set of directives for selecting processors and coprocessors. Once you select a processor, you must use only the instruction set available for that processor. The default is the 8086 processor. If you always want your code to run on this processor, you do not need to add any processor directives.
To enable a different processor mode and the additional instructions available on that processor, use the directives .186, .286, .386, and .486.
The .286P, .386P, and .486P directives enable the instructions available only at higher privilege levels in addition to the normal instruction set for the given processor. Privileged instructions are not necessary for writing applications, even for OS/2. Generally, you don't need privileged instructions unless you are writing operating-systems code or device drivers.
Summary: Processor directives affect availability of various MASM language features.
In addition to enabling different instruction sets, the processor directives also affect the behavior of extended language features. For example, the INVOKE directive pushes arguments onto the stack. If the .286 directive is in effect, INVOKE takes advantage of operations possible only on 80286 and later processors.
Use the directives .8087 (the default), .287, .387, and .NO87 to select a math coprocessor instruction set. The .NO87 directive turns off assembly of all coprocessor instructions. Note that .486 also enables assembly of all coprocessor instructions because the 80486 processor has a complete set of coprocessor registers and instructions built into the chip. The processor instructions imply the corresponding coprocessor directive. The coprocessor directives are provided to override the defaults.