안녕 난 아래 example에, 내가 몇 가지 질문이, AVR의 ASM 프로그램에 새로운 오전 : 긴 8 비트 또는 16 비트 :AVR의 ASM 라벨 * 2
1)는 라벨인가?
2) 왜 2로 곱셈 레이블이 필요합니까?
3) 명령 LPM은 레지스터 R0에 결과를 저장합니까? 그렇다면 Z와 어떤 관련이 있습니까?
이 주소가 두 곱하지 않고 레이블 바이트 주소를 0x60 (워드 주소는 0x30)에있는 경우", Z는 코드를 가리 킵니다 :
4) 당신은 제공된 링크에서 인용 텍스트를 explaine 수 이 저장됩니다. 나는 이것이 해결 문제를 명확히 바란다. 다른 버전은 "
ldi ZL, low(2*label)
ldi ZH, high(2*label)
label:
.db "Hello world", 0
lpm
감사합니다.
이것을'avr-gcc '라고 태그 했으므로, C에서'sizeof (label)'을 수행하고 찾아 낼 수 있다고 가정합니다 (포인터와 크기가 같을 수도 있습니다. 왜냐하면, 음, 그것은 ** 내가 몹시 착각하지 않는다면 ** 포인터이다), –