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