작성
·
269
1
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
영상 14분 55 ~ 15분 5초 질문 드립니다. - .c파일이 .o파일로 만들어질때 코드는 텍스트 세그먼트에 만들어 진다고 하셨는데 "코드"의 의미가 이해가 잘 되지 않는데요.
다른 .data .bss 등 섹션에 만들어지는 것도 코드(변수??)인데, .text파일에 만들어지는 코드는 어떤 종류의 코드인가요? .map파일에 있는 것처럼 main함수나 기타 함수 주소 + 라이브러리 주소를 "코드"라고 설명한 것인가요??
영상 21분 33초
heap과 stack 섹션은 ALIGN(8)정렬 햇는데 이유가 궁금합니다.(다른 영역은 ALIGN(4))
감사합니다~
답변 1
0
안녕하세요. chltnckd7 님!
Q1. 영상 14분 55 ~ 15분 5초 질문 드립니다. - .c파일이 .o파일로 만들어질때 코드는 텍스트 세그먼트에 만들어 진다고 하셨는데 "코드"의 의미가 이해가 잘 되지 않는데요.
다른 .data .bss 등 섹션에 만들어지는 것도 코드(변수??)인데, .text파일에 만들어지는 코드는 어떤 종류의 코드인가요? .map파일에 있는 것처럼 main함수나 기타 함수 주소 + 라이브러리 주소를 "코드"라고 설명한 것인가요??
ANS .text 영역은 컴파일 이후 만들어지는 실 코드 블럭(기계어가 위치)을 말합니다.
나머지 섹션(.data / .bss / .heap / .stack) 들은 모두 변수 영역입니다.
Q2. 영상 21분 33초
heap과 stack 섹션은 ALIGN(8)정렬 햇는데 이유가 궁금합니다.(다른 영역은 ALIGN(4))
ANS 이것은 저도 모르는 부분이라서 구글 검색을 해보았습니다. 스택 메모리는 8바이트 정렬을 하는 것이 안전할 것 같네요. 자세한 것은 스택오버플로우 글을 참고하시면 좋겠습니다. 8/16/64 바이트 정렬 그 어떤 것도 무방합니다
아 그럼 명령어들의 실행순서대로 기계어 형태로 저장되어있다고 봐야하는건가요??
감사합니다.