2017-12-18 339 views
-2

一個示例代碼,我看到類似下面代碼:

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

爲什麼data_segment_size等於25?我知道$和$$表示什麼,但根據我的書我無法弄清楚爲什麼這個變量是25。也許這是該書的錯誤。

+0

這些問題與我的問題沒有直接關係。我必須象徵,$和$。 – Alireza

+1

當然,你可以閱讀兩種不同的結構,然後推斷如何使用另一種結構。 –

+0

如果你有可複製的例子(工作源,由NASM編譯,並且產生值'25'),你可以使用列表選項('-l ')來查看'.data '部分被翻譯成機器碼字節,並且它們產生了25個字節。 – Ped7g

回答

1

簡短的回答:

$的意思是 「這裏的地址」。

$$表示「當前部分的開始地址」。

所以$-$$的意思是「當前節的大小」。

對於你給出的例子,這將是10,因爲有10個字節的數據給出。

+0

它是如何等於25? – Alireza

+1

也許你還沒有在'.data'部分看到其他的東西。你已經發布了[mcve]嗎? –

+0

這是書中的一個例子。它表示這個變量是25,我不知道如何。 – Alireza