2013-02-27 2 views
0

저는 현재 NASM을 배우고 있으며 교과서에서 설명 할 수없는 많은 것들이 있습니다. 교수님의 대답과 다른 질문에 대한 대답에 익숙해 져야하지만, 어떤 답을 얻는 것이 더 나은지 아는 데 더 익숙해졌습니다. 진짜 대답NASM 프로그램을 어떻게 분해 할 것인가 ...?

기술적 인 이유 NASM 프로그램은 세 섹션으로 나눌 수 있습니다 : .data, .bss.text? 배후에서 실제로 일어나고있는 것은 무엇입니까? 왜 상수가 있는지 미리 알 필요가있는 이유는 무엇입니까?

답변

0

data 섹션은 초기화 된 모든 데이터가 저장되는 섹션입니다. 문자열, DWORDS, WORDS, BYTES, QWORDS 등 프로그램이 시작될 때 값을 가져야하는 모든 것. 이 섹션은 읽기/쓰기입니다. 또한, 여기에있는 내용이 일 경우은 최종 exe 크기에 추가되므로 실제로 긴 문자열이있는 경우; 200 바이트라고하면이 문자열이없는 것보다 프로그램 크기가 200 바이트 커집니다.

bss 섹션은 초기화되지 않은 모든 데이터가 프로그램 시작시 값이 필요없는 항목으로 이동하는 섹션입니다. 여기에 추가 된 내용이 이 아니라면 최종 exe 크기에 추가하십시오. 여기에 넣은 것은 프로그램 실행 중에 메모리에 여유 공간이 필요한 변수를위한 메모리를 할당하도록 exe 로더에 지시합니다. 이 섹션은 읽기/쓰기입니다.

text 섹션에는 모든 프로그램 코드가 있습니다. 이 섹션은 읽기 전용입니다.

원하는 경우 각 섹션의 속성을 변경할 수 있으며 필요한 경우 섹션을 직접 만들 수도 있습니다.

이 모든 것은 연구 조사를 통해 찾을 수 있습니다.

관련 문제