2012-01-24 31 views
2

我剛從大會路上走下來,第一個「你好,世界!」我發現http://asm.sourceforge.net/intro/hello.html的教程給出了psudo的一個很好的方法 - 動態獲取字符串的長度以進入系統調用。

section .data 
msg db 'Hello, World!",0xa 
len equ $ - msg 

這在NASM的偉大工程,一切裝配,鏈接,並與出題運行。

問題出現在我試圖找到一種方法來做同樣的事情的時候。

我明白,在這種情況下,$是評估當前的裝配位置http://www.csie.ntu.edu.tw/~comp03/nasm/nasmdoc3.html#section-3.5

可以這樣表達($ - MSG)令牌氣體來表達,或者是這個NASM獨家語法糖?

回答

1

對於x86,您可以以相同的方式使用「.」。例如

.data 

msg: 
    .ascii "Hello, World!" 
    .byte 0xa 
    .equ len, . - msg 

(注:這並不一定適用於其他平臺真正gas支持多種平臺,和語法的各個方面,它們之間會發生變化!)

+0

這確實正是我需要的。 – Tezyn

相關問題