SHASM Error Messages 400-453

The following table shows the SHASM error messages 400-453.

Message # and Severity Message Text Explanation
400 ERROR Character constant longer than 4 characters: "%s" A character constant may be no longer than four characters. This message might also be issued if a string (or a string-valued symbol or expression) is supplied in a context where a number is expected.
402 ERROR %d (0x%x) is out of range; must be >= %d and <= %u An operand value is outside of the legal range. The message tells you what the valid range is. This message may also be issued when an attempt is made to use a PC-relative operation (such as a branch, or a MOV @(disp, PC),Rn) to refer a location that is too far away, or that is a backward reference for an instruction that can only support forward references.
403 ERROR Cannot %s when one or more operands are relocated Only certain arithmetic operations are supported on relative values.
404 ERROR Relocated value not valid here; must be absolute A relative value or relative-valued symbol or expression was used in a context where only absolute values are allowed.
405 ERROR Cannot %s import symbols or between sections Only certain arithmetic operations are supported on relative values and external symbols.
406 ERROR Cannot %s expr w/%d reloc%s and expr w/%d reloc%s Only certain arithmetic operations are supported on relative values and external symbols.
408 ERROR Cannot divide by zero It is mathematically impossible to divide by zero.
413 ERROR Unknown relational operator: "%s" The only supported relational operators besides the regular C operators are EQ, NE, GT, LT, GE, and LE, regardless of case.
420 ERROR Syntax error in operand The assembler cannot recognize an operand of an instruction.
421 ERROR Syntax error in expression The assembler cannot recognize an expression or a component thereof.
422 ERROR Cannot use a %s symbol here An attempt was made to use a register in an expression. This is permitted only in a few specific situations.
423 ERROR Expression must be relative (or use #immediate) An instruction was written like MOV symbol,Rn or MOVA symbol,Rn where symbol is an absolute symbol (such as a .EQU symbol might be). To move the value of the symbol into the register, use MOV #symbol,Rn.
424 ERROR The "%s" operator (%s) is not supported An operator was used that is recognized but not supported, such as ++ or --.
425 ERROR Expression result overflow: %s %d (0x%x) An arithmetic operation resulted in overflow (loss of important bits).
426 ERROR Expression result overflow: %d (0x%x) %s %d (0x%x) An arithmetic operation resulted in overflow (loss of important bits).
427 ERROR Expression result overflow: %s %u (0x%x) An arithmetic operation resulted in overflow (loss of important bits).
453 ERROR %s needs a literal pool before here The source line noted in the text of the message (where the %s is above) contains a literal pool reference that cannot reach as far as the address of the source line noted at the beginning of the error message line. Insert a .POOL directive or an unconditional branch somewhere between the two source lines.

 Last updated on Thursday, April 08, 2004

© 1992-2003 Microsoft Corporation. All rights reserved.