GAS是否有任何类似于NASM的$ token的评估?



我刚开始走Assembly之路,我发现了第一个"Hello,World!"教程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#第3.5节

这个表达式($-msg)可以用gas来表达吗?或者这是nasm独有的句法糖吗?

对于x86,您可以以相同的方式使用"."。例如

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

(注意:其他平台不一定如此。gas支持许多平台,不同平台的语法各不相同!)

相关内容

最新更新