Я пишу некоторую программу на C / asm для AVR MCU.Я все еще учусь, поэтому я надеюсь, что допустил какую-то ошибку в своем коде.
У меня есть буфер volatile unsigned char suart_0_rx_buffer[SUART_0_BUF_SIZE+1];
в моем C-коде, к которому я обращаюсь в своем ASM-коде, как показано ниже.Все, что я хочу сделать, это сохранить байт 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 выше?