This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi Stephen,
I have some code that looks like this. The code assembles when
compiled with i686-pc-pe-as but chokes when compiled with
i686-pc-elf-as. The version of the assembler is the same:
How does the assembler choke ?
--------------------- example ------------
.equ numRawHandlers, NumEntries
table:
<some code goes here>
common:
.equ size, ((common - table/ numRawHandlers)
There are a couple of problem with this test case:
* The value of NumEntries is not defined.
* There is a missing closing brace after 'table' on the last line.
Anyway, if the problem is that the assembler is complaining about a missing closing parenthesis:
fred.s: Assembler messages: fred.s:5: Error: missing ')' (
then the reason is that the i386-pc-elf target defines the forward slash character ('/') as starting a comment, so the second .equ directive in the example above is interpreted as:
.equ size, ((common - table
The answer is to disable pre-processing at the start of the file by using the #NO_APP directive, like this:
#NO_APP .equ NumEntries, 5
.equ numRawHandlers, NumEntries
table:
nop
common:
.equ size, ((common - table) / numRawHandlers)
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |