Bit
DIM One as Bit
One = 1
LDS r23,D_$0060
ORI r23,$80
STS D_$0060,r23
Byte
DIM One as Byte
One = 15
Der generierte Code
LDI r24 , $0F
STS $0060 , r24
Byte.Bit
DIM One as Byte
One.1 = 1
SET set T-Bit
LDI XL,$60
LDI XH,$00
LD r24,X
BLD r24,1 T -->reg.1
ST X,r24 store
Word /Integer
(signed / unsigned spielt hier keine Rolle)
DIM One as Word
One = 15
LDI r24,$0F Literal Value
LDI r25,$00
LDI XL,$60 address Target
LDI XH,$00
ST X++,r24 Store
ST X,r25
Long
DIM One as Long
One = 15
LDI r16,$0F Literal Value
LDI r17,$00
LDI r18,$00
LDI r19,$00
LDI XL,$60 address Target
LDI XH,$00
ST X++,r16 store
ST X++,r17
ST X++,r18
ST X,r19
Single
DIM One as Single
One = 1.0
LDI XL,$60 ; adresse von „One“
LDI XH,$00
LDI ZL,$A2 ; Das Single-Literal für "1.0" wurde vom Compiler
LDI ZH,$02 ; an der Adresse $02A3 im Flash-Speicher erzeugt
CALL FlashToSram4 ; es wird eine Call-Function verwendet
---
$02A2 00 00 .. ; single literal (=1.0)
;---------------------------------------------------------------------------
FlashToSram4:
LDI r24,$04 ; Counter : 4 Byte to move
FlashToSram:
LPM ; Read flash (Z) to R0
ADIW ZL,$0001 ; increment pointer (Z)
ST X++,r0 ; R0 to (X)
DEC r24 ; byte counter
BRNE FlashToSram ; repeat
RET ; ready
Es werden 5 + (1 + 5*4 + 1) = 27 Instructions durchgeführt.