0

私は達成しようとしています:

LABEL:
....
subi r18, LABEL

レジスタからラベルのアドレスを減算する必要があります。それ、どうやったら出来るの?

4

2 に答える 2

2
subi r16, pm_lo8(LABEL)
sbci r17, pm_hi8(LABEL)

avrfreaks での回答:
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&p=857982#857982

参照ドキュメント:
http://sourceware.org/binutils/docs-2.21/as/AVR_002dModifiers.html#AVR_002dModifiers

于 2011-08-09T17:52:28.657 に答える
1

注: 私は AVR アセンブラーに詳しくありません。これは、いくつかの Web ページを読んで判断できたものです。また、アドレスは 16 ビットであると想定しています。

; Address you wish to subtract the label from in R16 (low):R17 (high)

SUBI R16, LOW(LABEL)
SBCI R17, HIGH(LABEL) ; Omit this part if you have < 256 Bytes of ram
于 2011-08-09T09:53:46.390 に答える