LPM — Load Program Memory
LPM
LPM Rd,Z
LPM Rd,Z+
První parametr funkce je jeden z 30 registrů procesoru. (0≤Rd≤29). Pro registry R30 a R31, není chování instrukce definováno.
LPM je jediná instrukce, která nám umožňuje číst obsah paměti programu. Funguje tak, že do registru R0 nebo Rd načte jeden bajt z Flash paměti programu, bajt na který ukazuje registr Z.
Je nutné připomenout, že paměť programu je organizována po 16-ti bitových slovech. Instrukce LPM ji však čte po bajtech. Registr Z tedy dokáže adresovat prvních 64kB paměti programu, což je prvních 32kW. Pokud procesor obsahuje registr RAMPZ, jsou jeho bity součástí adresy před bity registru Z. Dokážeme tak adresovat 224 bajtů tedy 223 slov paměti programu.
Varianta instrukce LPM Rd,Z+ při přetečení Z nezvyšuje RAMPZ.
Bajty ve slově jsou adresovány od nižšího, jak je vidět v následující tabulce.
Z | PC |
---|---|
0 | 0 LO Byte |
1 | 0 HI Byte |
2 | 1 LO Byte |
3 | 1 HI Byte |