9.4.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 8 bit relocatable expression.
hi8
-
This modifier allows you to use bits 7 through 15 of an address expression
as 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 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 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 8 bit relocatable expression.
This modifier useful for addressing data or code from
Flash/Program memory. The using of `pm_lo8' similar
to `lo8'.
pm_hi8
-
This modifier allows you to use bits 8 through 15 of
an address expression as 8 bit relocatable expression.
This modifier useful for addressing data or code from
Flash/Program memory.
pm_hh8
-
This modifier allows you to use bits 15 through 23 of
an address expression as 8 bit relocatable expression.
This modifier useful for addressing data or code from
Flash/Program memory.