this에 대한 후속 질문입니다. 나는 GNU C 버전 3.4.5 (와 Mingw-비스타 특별 R3)에 의해 컴파일lpm rd, Z는 항상 gpm-avr의 인라인 어셈블리에서 lpm rd, Z +로 변환됩니다.
- GNU C (WinAVR 환경 20100110) 버전 4.3.3 (AVR)을/사용
__AVR_HAVE_LPMX__
프로세서 (avr25)에 대한 코드를 쓰고 있어요 , GMP 버전 4.2.3, MPFR 버전 2.4.1.
내가 인라인 어셈블리에서 lpm rd, Z
를 사용, 컴파일러는 항상 (LSS-파일에서 발췌) lpm rd,Z+
이 번역 : 그것이 look-에 연속 액세스에 사용되는 경우, 나쁜
asm volatile("lpm r24,Z");
248: 84 91 lpm r24, Z+
테이블. 조회 값은 0xff
일 수 있으므로이 값이 ZH
(r31
)이 불필요하게 증가하므로 solution이 손상됩니다.
이 문제를 회피하기위한 제안이 있으십니까?
맞습니다. 시뮬레이터 디스어셈블러에서는 '+ 0000011B : 9184 LPM R24, Z'를 보여줍니다. 트러스트 할 도구를 배워야합니다. 감사! – Thomas