예를 들어서 이런 어셈 코드가 있는데요..
start: lgdt xxx ljmp $0x10, $label_1 label_1: movl .. .. ..
이런 경우에 그냥 jmp label_1하지 않고 ljmp를 쓰는 이유가 뭔지 알고 싶습니다.
일단 label_1이 바로 아래 라인이기 때문에, 목적이 label_1으로 점프하는 것은 아닐 듯합니다. 예전 16bit코드에서 롱점프는 CS레지스터 값도 변경했던 걸로 기억하는데, 아마 이 경우에도 CS레지스터 값 변경을 목적으로 ljmp를 쓴 걸로 보입니다.
답변 감사합니다. 제가 궁금했던 부분이 그 부분인데요. 지금 관계된 소스 안에는 label_1이라는 라벨이 아무데도 없어요..
제 생각에도 ljmp써서 CS값까지 변경 했으면.. label_1로 가는 건 아닌 것 같은데 말이죠
그래서 혹시 다른 기능이 있는가 하고 질문 했습니다. ㅋ
일단 label_1이 바로 아래 라인이기 때문에,
일단 label_1이 바로 아래 라인이기 때문에, 목적이 label_1으로 점프하는 것은 아닐 듯합니다.
예전 16bit코드에서 롱점프는 CS레지스터 값도 변경했던 걸로 기억하는데, 아마 이 경우에도 CS레지스터 값 변경을 목적으로 ljmp를 쓴 걸로 보입니다.
감사합니다.
답변 감사합니다. 제가 궁금했던 부분이 그 부분인데요.
지금 관계된 소스 안에는 label_1이라는 라벨이 아무데도 없어요..
제 생각에도 ljmp써서 CS값까지 변경 했으면.. label_1로 가는 건 아닌 것 같은데 말이죠
그래서 혹시 다른 기능이 있는가 하고 질문 했습니다. ㅋ