Это дополнительный вопрос к этому. Я пишу код для процессора __AVR_HAVE_LPMX__
(avr25), используя
- GNU C (WinAVR 20100110) версия 4.3.3 (avr) / скомпилирован GNU C версии 3.4.5 (mingw-vista special r3), GMP версии 4.2.3, MPFR версии 2.4.1.
когда я использую lpm rd, Z
во встроенной сборке, компилятор всегда переводит это в lpm rd,Z+
(отрывок из lss-файла):
asm volatile("lpm r24,Z");
248: 84 91 lpm r24, Z+
что плохо, если оно используется при последовательном доступе к справочной таблице. Искомое значение может быть 0xff
, поэтому это без необходимости увеличивает ZH
(r31
), тем самым искажая это решение.
Любые предложения, чтобы обойти это поведение?