Microsoft KB Archive/39439

From BetaArchive Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Knowledge Base


DOCERR: SMSW, SGDT, SIDT, SLDT, VERR, VERW Don't Assemble

Article ID: 39439

Article Last Modified on 10/17/2003



APPLIES TO

  • Microsoft Macro Assembler 5.0
  • Microsoft Macro Assembler 5.1 Standard Edition
  • Microsoft Macro Assembler 5.1a



This article was previously published under Q39439

SUMMARY

The ".286" and ".386" operands do not allow the following to assemble:

   SMSW, SGDT, SIDT, SLDT, VERR, and VERW
                

One or two error messages are generated for each occurrence of these instructions.

MORE INFORMATION

Page 412 (section 20.3) of the "Microsoft Macro Assembler Programmer's Guide" is incorrect in saying that these instructions require "privileged mode." Also, SMSW is spelled incorrectly (as "SMCW"). These instructions are allowed in all modes; however, behavior may differ between real and protected modes.

The reference guide is also incorrect on several addressing points. See the Intel "80286 and 80287 Programmer's Reference Manual" for more information.

The following is a sample program:

........................................................................
; The following program demonstrates :
dosseg
.286
.model large
.data
table   dw 64 dup (?)
.code
start:
        SMSW ax
        SGDT table
        SIDT table
        SLDT ax
        VERR ax
        VERW ax

        end start

......................................................................

C> masm test,,,;
Microsoft (R) Macro Assembler Version 5.10
Copyright (C) Microsoft Corp 1981, 1988.  All rights reserved.

test.ASM(6): error A2105: Expected: instruction, directive, or label
test.ASM(7): error A2105: Expected: instruction, directive, or label
test.ASM(8): error A2105: Expected: instruction, directive, or label
test.ASM(9): error A2105: Expected: instruction, directive, or label
test.ASM(10): error A2105: Expected: instruction, directive, or label
test.ASM(11): error A2105: Expected: instruction, directive, or label

  24002 Bytes symbol space free

      0 Warning Errors
      6 Severe  Errors
.......................................................................
                


Additional query words: 5.00 5.10 5.10a

Keywords: KB39439