Previous: , Up: AVR Syntax   [Contents][Index]


9.5.2.3 Relocatable Expression Modifiers

The assembler supports several modifiers when using relocatable addresses in AVR instruction operands. The general syntax is the following:

modifier(relocatable-expression)
lo8

This modifier allows you to use bits 0 through 7 of an address expression as an 8 bit relocatable expression.

hi8

This modifier allows you to use bits 7 through 15 of an address expression as an 8 bit relocatable expression. This is useful with, for example, the AVR ldi instruction and lo8 modifier.

For example

ldi r26, lo8(sym+10)
ldi r27, hi8(sym+10)
hh8

This modifier allows you to use bits 16 through 23 of an address expression as an 8 bit relocatable expression. Also, can be useful for loading 32 bit constants.

hlo8

Synonym of hh8.

hhi8

This modifier allows you to use bits 24 through 31 of an expression as an 8 bit expression. This is useful with, for example, the AVR ldi instruction and lo8, hi8, hlo8, hhi8, modifier.

For example

ldi r26, lo8(285774925)
ldi r27, hi8(285774925)
ldi r28, hlo8(285774925)
ldi r29, hhi8(285774925)
; r29,r28,r27,r26 = 285774925
pm_lo8

This modifier allows you to use bits 0 through 7 of an address expression as an 8 bit relocatable expression. This modifier is useful for addressing data or code from Flash/Program memory by two-byte words. The use of pm_lo8 is similar to lo8.

pm_hi8

This modifier allows you to use bits 8 through 15 of an address expression as an 8 bit relocatable expression. This modifier is useful for addressing data or code from Flash/Program memory by two-byte words.

For example, when setting the AVR Z register with the ldi instruction for subsequent use by the ijmp instruction:

ldi r30, pm_lo8(sym)
ldi r31, pm_hi8(sym)
ijmp
pm_hh8

This modifier allows you to use bits 15 through 23 of an address expression as an 8 bit relocatable expression. This modifier is useful for addressing data or code from Flash/Program memory by two-byte words.


Previous: , Up: AVR Syntax   [Contents][Index]