汇编ldi指令

时间:2014-02-26 07:41:41

标签: assembly avr cpu-registers

我正在开发一个项目,该项目包括将程序集项目迁移到C代码中。我已经做了很多,但我遇到了一个我无法完全理解的指令。 就是这个:

ldi ZH, high(V_avgbuf)

其中V_avgbuf是一个容纳8 x 24位V样本的缓冲区。它定义如下:

V_avgbuf:   .byte   24  ; 8 x 24-bit V samples

我的问题是,在执行指令后,这是ZH寄存器的内容? (ZH是8位寄存器)。

提前致谢,

亚历

1 个答案:

答案 0 :(得分:1)

因为V_avgbuf的大小比ZH大,所以它必须分成两部分。高位取代地址的“上部”。

高是一个宏。

请参阅This以供参考。