[DOS/MASM] 세그먼트 결합
글쓴이: gurumong / 작성시간: 수, 2010/08/11 - 9:44오후
세그먼트를 결합 해야하는 이유가 잘 이해가 되질 않습니다
다른 세그먼트에 코드가 있어도 실행 가능하지 않습니까?
또 세그먼트를 결합 하는 방법이 왜 두가지나 되는지 잘 모르겠습니다
여러 어셈블러 책을 구해서 살펴보았는데 도저히 궁금증이 해소되지 않습니다 ㅜ.ㅜ
이러한 부분들이 자세히 설명되고 있지 않더라구요 ㅜ.ㅜ
1. 세그먼트 이름(_TEXT, _DATA등)을 동일하게 하고 결합 옵션을 PUBLIC로 지정하는 방법
2. 세그먼트 클래스('CODE', 'DATA'등)를 동일하게 지정하는 방법
_TEXT SEGMENT PARA PUBLIC 'CODE'
_TEXT ENDS
_DATA SEGMENT WORD PUBLIC 'DATA'
_DATA ENDS
STACK SEGMENT PARA STACK 'STACK'
STACK ENDS
Forums:
결합은 컴파일러가
결합은 컴파일러가 아닌 링커 레벨에서 의미가 있으니 대규모 라이브러리화나 모듈화 하는데서 답을 찾으면 결론이 나올듯 싶네요.
프로그램 코드가
프로그램 코드가 하나의 세그먼트로 결합 해야 하는것은 아니지 않나요?
어떠한 경우에 세그먼트 결합을 해야할지 모르겠어요
예를 들면 Hello World! 프로그램을 어셈블리어로 작성하려는데
C언어의 표준라이브러리에 있는 printf 함수를 사용한다고 가정하면
해당 라이브러리를 꼭 어셈블리어로 작성한 프로그램과 하나의 세그먼트로 결합해야할 필요는 없는거 같은데요
두개의 세그먼트로 나누어져있어도 될꺼 같은데요
사실 둘 사이에 어떤 차이점이 있는지 잘 모르겠어요 ㅜ.ㅜ
어떠한 경우에 세그먼트 결합이 필요한지...
또 세그먼트 결합 방법에..
세그먼트 이름이 같아야 하는 경우와 클래스 이름이 같아야 하는 경우 두가지가 있던데
책마다 설명이 다르거나(어느 한쪽이 틀리거나 둘다 틀리거나) 아예 없거나 해서 궁금증을 풀수가 없더라구요 ㅜ.ㅜ
댓글 달기