[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[avr-gcc-list] ASM Label address problem
From: |
Steven Bromley |
Subject: |
[avr-gcc-list] ASM Label address problem |
Date: |
Sat, 18 Sep 2004 16:41:29 +1200 |
Hey all,
Here is a small piece of code I’m having trouble with:
subi ZL,pm_lo8(-.Last+6)
sbci ZH,pm_hi8(-.Last+6)
... more code here ...
.Last:
... more code here ...
My intention is to add (.Last-6) to Z (where .Last is a just a label in the
code). Since the AVR instruction set doesn’t provide us with "addi"/"adci"
I must use subi/sbci instead. No problems there.
The trouble arises when I attempt to subtract from .Last producing a
negative address, to which the compiler generates:
Error: can't resolve `0' {.text section} - `.Last' {.text section}
I realise I could expand the code so I don’t need the subtraction, but at
the cost of more cycles and ROM. Eg:
ldi YL,pm_lo8(.Last-6)
add ZL,YL
ldi YL,pm_hi8(.Last-6)
adc ZH,YL
I would much prefer just to use first block of code though. Does anyone
have a solution to this?
BTW, I’m using WinAVR-20040720.
Cheers
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.760 / Virus Database: 509 - Release Date: 10/09/2004
- [avr-gcc-list] ASM Label address problem,
Steven Bromley <=