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 コードに問題がある人はいますか?