ID: Q65331
6.00 | 6.00 | 1.00 1.50 1.51 MS-DOS | OS/2 | WINDOWS kbtool
The information in this article applies to:
- Microsoft C for MS-DOS and OS/2, version 6.0
- Microsoft Visual C++ for Windows, versions 1.0, 1.5, and 1.51
When using the Microsoft C Compiler version 6.0 or Visual C++ version 1.0 to generate an assembly listing with the /Fa or /Fc option, .286 and .287 processor specifiers are incorrectly inserted when the /G1 option is specified. /G1 should produce .8087 processor code.
This can be seen be compiling the sample code below and viewing the .COD file generated by /Fc (which is also shown below). As a workaround, /G0 may be used instead of /G1.
Microsoft has confirmed this to be a bug in the products listed at the beginning of this article. This problem was corrected in C version 6.0a, but reappeared in Visual C++ version 1.0. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.
/* Compile options needed: /G1 /Fc
*/
void main (void)
{
int a;
a = 25;
}
; Static Name Aliases
;
TITLE test.c
.286p ; Should be blank line
.287 ; Should be .8087
INCLUDELIB SLIBCE
_TEXT SEGMENT WORD PUBLIC 'CODE'
_TEXT ENDS
_DATA SEGMENT WORD PUBLIC 'DATA'
_DATA ENDS
Additional reference words: 1.00 1.50 6.00 8.00 8.00c
KBCategory: kbtool kbbuglist
KBSubcategory: CLIss
Keywords : kb16bitonly
Last Reviewed: July 18, 1997