next up previous contents
Next: Run time errors Up: Compiler error messages Previous: Compiler errors

Assembler reader errors.

This section lists the errors that are generated by the inline assembler reader. They are not the messages of the assembler itself.

General assembler errors

Divide by zero in asm evaluator
This fatal error is reported when a constant assembler expressions does a division by zero.

Evaluator stack overflow, Evaluator stack underflow
These fatal errors are reported when a constant assembler expression is too big to evaluate by the constant parser. Try reducing the number of terms.

Invalid numeric format in asm evaluator
This fatal error is reported when a non-numeric value is detected by the constant parser. Normally this error should never occur.

Invalid Operator in asm evaluator
This fatal error is reported when a mathematical operator is detected by the constant parser. Normally this error should never occur.

Unknown error in asm evaluator
This fatal error is reported when an internal error is detected by the constant parser. Normally this error should never occur.

Invalid numeric value
This warning is emitted when a conversion from octal,binary or hexadecimal to decimal is outside of the supported range.

Escape sequence ignored
This error is emitted when a non ANSI C escape sequence is detected in a C string.

Asm syntax error - Prefix not found
This occurs when trying to use a non-valid prefix instruction

Asm syntax error - Trying to add more than one prefix
This occurs when you try to add more than one prefix instruction

Asm syntax error - Opcode not found
You have tried to use an unsupported or unknown opcode

Constant value out of bounds
This error is reported when the constant parser determines that the value you are using is out of bounds, either with the opcode or with the constant declaration used.

Non-label pattern contains @
This only applied to the m68k and Intel styled assembler, this is reported when you try to use a non-label identifier with a '@' prefix.
Internal error in Findtype()
Internal Error in ConcatOpcode()
Internal Errror converting binary
Internal Errror converting hexadecimal
Internal Errror converting octal
Internal Error in BuildScaling()
Internal Error in BuildConstant()
internal error in BuildReference()
internal error in HandleExtend()
Internal error in ConcatLabeledInstr()
  These errors should never occur, if they do then you have found a new bug in the assembler parsers. Please contact one of the developers.
Opcode not in table, operands not checked
This warning only occurs when compiling the system unit, or related files. No checking is performed on the operands of the opcodes.

@CODE and @DATA not supported
This Turbo Pascal construct is not supported.
SEG and OFFSET not supported
This Turbo Pascal construct is not supported.
Modulo not supported
Modulo constant operation is not supported.
Floating point binary representation ignored
Floating point hexadecimal representation ignored
Floating point octal representation ignored
These warnings occur when a floating point constant are declared in a base other then decimal. No conversion can be done on these formats. You should use a decimal representation instead.
Identifier supposed external
This warning occurs when a symbol is not found in the symolb table, it is therefore considered external.
Functions with void return value can't return any value in asm code
Only routines with a return value can have a return value set.

Error in binary constant
Error in octal constant
Error in hexadecimal constant
Error in integer constant
  These errors are reported when you tried using an invalid constant expression, or that the value is out of range.

Invalid labeled opcode
Asm syntax error - error in reference
Invalid Opcode
Invalid combination of opcode and operands
Invalid size in reference
Invalid middle sized operand
Invalid three operand opcode
Assembler syntax error
Invalid operand type
You tried using an invalid combination of opcode and operands, check the syntax and if you are sure it is correct, please contact one of the developers.

Unknown identifier
The identifier you are trying to access does not exist, or is not within the current scope.

Trying to define an index register more than once
Trying to define a segment register twice
Trying to define a base register twice
You are trying to define an index/segment register more then once.

Invalid field specifier
The record or object field you are trying to access does not exist, or is incorrect.

Invalid scaling factor
Invalid scaling value
Scaling value only allowed with index
Allowed scaling values are 1,2,4 or 8.

Cannot use SELF outside a method
You are trying to access the SELF identifier for objects outside a method.

Invalid combination of prefix and opcode
This opcode cannot be prefixed by this instruction

Invalid combination of override and opcode
This opcode cannot be overriden by this combination

Too many operands on line
At most three operand instructions exist on the m68k, and i386, you are probably trying to use an invalid syntax for this opcode.

Duplicate local symbol
You are trying to redefine a local symbol, such as a local label.

Unknown label identifer
Undefined local symbol
local symbol not found inside asm statement
This label does not seem to have been defined in the current scope

Assemble node syntax error
Not a directive or local symbol
The assembler statement is invalid, or you are not using a recognized directive.

I386 specific errors

repeat prefix and a segment override on <= i386 ...
A problem with interrupts and a prefix instruction may occur and may cause false results on 386 and earlier computers.

Fwait can cause emulation problems with emu387
This warning is reported when using the FWAIT instruction, it can cause emulation problems on systems which use the em387.dxe emulator.

You need GNU as version >= 2.81 to compile this MMX code
MMX assembler code can only be compiled using GAS v2.8.1 or later.

NEAR ignored
FAR ignored
  NEAR and FAR are ignored in the intel assemblers, but are still accepted for compatiblity with the 16-bit code model.

Invalid size for MOVSX/MOVZX

16-bit base in 32-bit segment
16-bit index in 32-bit segment
16-bit addressing is not supported, you must use 32-bit addressing.

Constant reference not allowed
It is not allowed to try to address a constant memory address in protected mode.

Segment overrides not supported
Intel style (eg: rep ds stosb) segment overrides are not support by the assembler parser.

Expressions of the form [sreg:reg...] are currently not supported
To access a memory operand in a different segment, you should use the sreg:[reg...] snytax instead of [sreg:reg...]

Size suffix and destination register do not match
In intel AT&T syntax, you are using a register size which does not concord with the operand size specified.

Invalid assembler syntax. No ref with brackets
Trying to use a negative index register
Local symbols not allowed as references
Invalid operand in bracket expression
Invalid symbol name:
Invalid Reference syntax
Invalid string as opcode operand:
Null label references are not allowed
Using a defined name as a local label
Invalid constant symbol
Invalid constant expression
/ at beginning of line not allowed
NOR not supported
Invalid floating point register name
Invalid floating point constant:
Asm syntax error - Should start with bracket
Asm syntax error - register:
Asm syntax error - in opcode operand
Invalid String expression
Constant expression out of bounds
Invalid or missing opcode
Invalid real constant expression
Parenthesis are not allowed
Invalid Reference
Cannot use __SELF outside a method
Cannot use __OLDEBP outside a nested procedure
Invalid segment override expression
Strings not allowed as constants
Switching sections is not allowed in an assembler block
Invalid global definition
Line separator expected
Invalid local common definition
Invalid global common definition
assembler code not returned to text
invalid opcode size
Invalid character: <
Invalid character: >
Unsupported opcode
Invalid suffix for intel assembler
Extended not supported in this mode
Comp not supported in this mode
Invalid Operand:
Override operator not supported

m68k specific errors.

Increment and Decrement mode not allowed together
You are trying to use dec/inc mode together.

Invalid Register list in movem/fmovem
The register list is invalid, normally a range of registers should be separated by - and individual registers should be separated by a slash.
Invalid Register list for opcode
68020+ mode required to assemble


next up previous contents
Next: Run time errors Up: Compiler error messages Previous: Compiler errors

Michael Van Canneyt
Thu Sep 10 13:56:17 CEST 1998