我正在为 AVR MCU 编写一些 C/asm 程序。我仍在学习,所以我希望我在代码中犯了某种错误。
volatile unsigned char suart_0_rx_buffer[SUART_0_BUF_SIZE+1];
我在我的 asm 代码中访问的 C 代码中有一个缓冲区,如下所示。我要做的就是在缓冲区中存储一个字节并每次s0_Rxbyte
递增指针。s0_index
's0_Rxbyte` 始终是一个非零值。
suart_0_wr_buf_2: ldi s0_z_low, lo8(suart_0_rx_buffer)
ldi s0_temp1, hi8(suart_0_rx_buffer)
add s0_z_low, s0_index
adc s0_z_high,s0_temp1
suart_0_wr_buf_3: st Z+, s0_Rxbyte
inc s0_index
clr s0_temp1
st Z, s0_temp1
如果我尝试在我的 C 代码中循环打印内容,我将一无所获。
我不想在这里附上所有东西,因为它会很混乱。
那么有人看到上面的 asm 代码有什么问题吗?