2017-12-18 7 views
-2

의 샘플 코드에서 나는 다음과 같은 코드를 보았다 : data_segment_size 25과 동일 왜

section .data 
    db 'hello' 
    db 'h', 'e', 'l','l','o' 
    data_segment_size equ $-$$ 

를? 나는 $와 $$가 무엇을 가리키는 지 알지만이 책이 내 책에 따르면 왜 25인지를 알 수는 없습니다. 어쩌면 그것은 그 책의 실수입니다.

+0

이러한 질문은 내 질문과 직접적인 관련이 없습니다. 저는 $와 $$를 상징화해야합니다. – Alireza

+1

물론 두 개의 서로 다른 구문을 읽고 나서 다른 구문과 어떻게 사용되는지 추측 할 수 있습니다. –

+0

재현 가능한 예제 (NASM에 의해 컴파일 된 작업 소스이고 '25'값을 생성)가 있다면, 목록 옵션 ('-l ')을 사용하여'.data '섹션은 기계 코드 바이트로 변환되며, 그 중 25 개가 무엇을 생성 했는가? – Ped7g

답변

1

짧은 대답은 :

$는 "여기의 주소"를 의미한다.

$$은 "현재 섹션의 시작 주소"를 의미합니다.

따라서 $-$$은 "현재 섹션 크기"를 의미합니다.

예를 들어, 10 바이트의 데이터가 있으므로 10이됩니다.

+0

어떻게 25와 동일합니까? – Alireza

+1

아마도 당신은 당신이 보여주지 않은'.data' 섹션에 다른 것들을 가지고있을 것입니다. 당신이 [mcve]를 올린 건가요? –

+0

이것은 책의 한 예입니다. 그것은이 변수가 25라고 말하면서 어떻게 발견 할 수 있겠는가. – Alireza