DOCERR: MASM 5.1 Instructions Operand Size Documented Wrong (67439)



The information in this article applies to:

  • Microsoft Macro Assembler (MASM) 5.0
  • Microsoft Macro Assembler (MASM) 5.1
  • Microsoft Macro Assembler (MASM) 5.1a

This article was previously published under Q67439

SUMMARY

In the "Microsoft Macro Assembler 5.1 Reference" manual, a number of instructions indicate that their operand size is a mem64 when they should indicate an operand size of mem48. The instructions are documented incorrectly as LGDT, LIDT, LLDT, SGDT, SIDT, and SLDT. These instructions require the FWORD PTR operator and not the QWORD PTR operator. If the QWORD PTR operator is used, the Microsoft Macro Assembler (MASM) will generate the following warning:
warning A4057: illegal size for operand
These instructions are privileged 286 and 386 instructions that are used to load and save the protected mode descriptor table registers. These registers are only 6 bytes long, even though descriptor table entries are normally 8 bytes.

Modification Type:MajorLast Reviewed:10/16/2003
Keywords:KB67439