Assembly 伪寄存器Z是否加载到单个寄存器?

Assembly 伪寄存器Z是否加载到单个寄存器?,assembly,avr,Assembly,Avr,我很难理解下面的代码 ;assume code for start of cseg ;and stack setup .equ MAXNUM = 4 ldi ZL, 0 ldi ZH, 0 ldi r20, MAXNUM loop_generate: lpm r0, Z+ eor r0, ZL ... 首先,它的确切含义是什么?我在谷歌上搜索发现“加载Z,然后将Z增加1” 第二,如果上述是真的,Z是一个伪寄存器,这意味着Z代表两个寄存器。如何将Z加载到

我很难理解下面的代码

;assume code for start of cseg
;and stack setup
.equ MAXNUM = 4
    ldi ZL, 0
    ldi ZH, 0 
    ldi r20, MAXNUM
loop_generate:
    lpm r0, Z+
    eor r0, ZL
...
首先,它的确切含义是什么?我在谷歌上搜索发现“加载Z,然后将Z增加1”


第二,如果上述是真的,Z是一个伪寄存器,这意味着Z代表两个寄存器。如何将Z加载到r0中?

加载程序内存中由Z伪寄存器指向的字节,然后将1添加到Z中。

eor r0,ZL
工作,因为
ZL
Z
的较低部分,正好是1字节。@DavidGrayson它的程序内存/闪存。来自RAM的负载通过常规的
ld
,例如
ld r1,Z+