질문의 주제가 맞지 않지만 답답해서염 arm9 어셈블러 명령어 중
글쓴이: warpaint / 작성시간: 목, 2004/11/25 - 10:48오전
ARM940T에 어셈블러 영문 가이드가 있는데욤
여러번 봤는데 도저히 무슨 말인지 몰라서 이렇게 죄송한 마음으로 게시판의 주제가 맞지 안다는걸 알면서 글을 올렸어염 죄송합니다.
-IMPORT
-EXPORT
-DCD
-AREA
-ENTRY
-ALIGN
-SPACE
그리고 뚤어져라 보아도 알수 없는 구문들좀 설명좀 해주세욤
1)
;INT INT_Loaded_Flag
EXPORT INT_Loaded_Flag
INT_Loaded_Flag
DCD 0
2)
INT_Resel_Addr
DCD INT_Initialize
3)
INT_IRQ_Vectors
DCD INT_IRQ_Shell ;vector 0
4)
INT_bss_start
DCD |Image$$bss$$Base|
이러한 구문들이 무지 많은데 이해가 안되염 죄송해요 설명좀해주셔요
Forums:
EXPORT는 해당 어셈 파일 이외에서도 해당 심볼을 참조하고 싶을 때
EXPORT는 해당 어셈 파일 이외에서도 해당 심볼을 참조하고 싶을 때 사용하는 것이죠. 즉 global이 된다고 보시면됩니다.
DCD는 메모리 에 값 선언 정도라고 보시면됩니다.
3)의 경우는 INT_IRQ_Vectors라는 심볼을 정의하는데 INT_IRQ_Shell의 주소를 할당해 놓는 것이죠. 인터럽트 벡터를 연속적으로 정의하는 부분인가보죠?
저도 위 질문에 매우 궁금합니다.
저도 이 부분에 대해 정확하게 알고 싶은데요.
답변주신분의 글중에 EXPORT라는 것이 일종의 "EXTERN"이 아닌가요? IMPORT는 그럼 무엇인지 정확하게 알려주세요.
그리고, 선언중에 |Image$$RO$$Limit| 이런 식으로 표현한 것은 무슨 의미를 갖게되는지도 추가로 설명주실 수 있는 고수분들... 답변좀 부탁드립니다.
Re: 저도 위 질문에 매우 궁금합니다.
Image$$RO$$Limit 이런 것은 linker 가 자동으로 만들어 주는심볼입니다.
ReadOnly 영역의 Limit 값은 link 단계에서만 알 수 있는데
컴파일될 코드상에서 이 값을 이용하고 싶은 경우 이런 식으로
미리 땡겨서 사용하게 됩니다.
Re: 저도 위 질문에 매우 궁금합니다.
EXPORT 는 외부로 심볼의 존재를 알릴때 사용하고
IMPORT 는 이렇게 알려진 심볼을 가져와서 사용하고자 할때 사용합니다.
또 |Image$$RO$$Limit| 와 같은 것은 표준이지만
|XXX$$RO$$XXXX| 와 같은 형태의 표준을 벗어나는 심볼은
scatter 파일이라고 하는 메모리맵파일(Linker에 옵션파라미터로 넘겨짐)에서 정의되는 것입니다.
A better tomorrow
댓글 달기