PRB: A2108 Error When Using Simplified Segment Directives (148509)



The information in this article applies to:

  • Microsoft Macro Assembler (MASM) 6.0
  • Microsoft Macro Assembler (MASM) 6.1
  • Microsoft Macro Assembler (MASM) 6.11

This article was previously published under Q148509

SYMPTOMS

When assembling code that uses simplified segment directives, the Macro Assembler displays an error message similar to this one:
error A2108: use of register assumed to ERROR

CAUSE

This error can occur because of incorrect order of the .DATA and .CODE directives in the assembly source code. The .DATA directive implies ASSUME CS:ERROR. Any code that appears after the .DATA directive and attempts to implicitly or explicitly use the CS register (such as JMP instructions or labels) will generate this error.

RESOLUTION

Make sure that a .CODE directive and not a .DATA directive precedes your procedure definitions and any other instructions.

STATUS

This behavior is by design.

MORE INFORMATION

Sample Code to Reproduce Error

; Assemble options needed: none

.MODEL small, c

.CODE

.DATA

my_label:

END
				

Modification Type:MajorLast Reviewed:10/29/2003
Keywords:KB148509