ARM Technical Support Knowledge Articles

USING 'AT' RELOCATION TYPE WITH SEGMENT DIRECTIVE

Applies to: A51 Macro Assembler

Answer


Information in this article applies to:


SYMPTOMS

I am trying to use the 'AT' relocation type with the SEGMENT directive. I have followed the example on page 53 of the A51 Assembler/A251 Assembler User's Guide (07.98) which shows:

MYSEG   SEGMENT   CODE AT 0FF2000H

When assembling my code I get a syntax error on the word 'AT'. Why do I get an error?

CAUSE

The AT relocation type is only supported in the A251 assembler, and this is indicated with the annotation on page 51 of the A51 Assembler/A251 Assembler User's Guide.

RESOLUTION

An absolute code segment is declared using something like:

CSEG AT 300H

The segment declaration should be changed to:

MYSEG   SEGMENT   CODE

When your code is assembled and linked the segment name will not appear in the .m51 file. This is because with the A51 assembler the segment names are only used for relocatable segments.

A similar method is employed for BIT, DATA, IDATA and XDATA absolute segments by using the BSEG, DSEG, ISEG and XSEG directives respectively.

MORE INFORMATION

Refer to page 54 in the A51 Assembler/A251 Assembler User's Guide (07.98) for information on the BSEG, CSEG, DSEG, ISEG and XSEG directives.

Article last edited on: 2005-07-19 10:06:52

Rate this article

[Bad]
|
|
[Good]
Disagree? Move your mouse over the bar and click

Did you find this article helpful? Yes No

How can we improve this article?

Link to this article
Copyright © 2011 ARM Limited. All rights reserved. External (Open), Non-Confidential