GAS 是否有与 NASM 的 $ 代币类似的东西?

发布于 2024-12-28 22:07:23 字数 606 浏览 2 评论 0原文

我刚刚开始走上装配之路,也是第一批“Hello, World!”之一。我找到的教程 http://asm.sourceforge.net/intro/hello.html,提供了一种伪动态获取要进入系统调用的字符串长度的好方法。

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)可以用gas来表示吗,或者这是 nasm 独有的语法糖?

I just started down the Assembly road, and one of the first "Hello, World!" tutorials I found http://asm.sourceforge.net/intro/hello.html, gives a nice way of psudo-dynamicly getting the length of the string to enter into the system call.

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

This works great in nasm, and everything assembles, links, and runs with out question.

The problem comes when I try to find a way to do the same thing in gas.

I understand that the $ in this case is a token that evaluates to the current assembly position http://www.csie.ntu.edu.tw/~comp03/nasm/nasmdoc3.html#section-3.5

Can this expression ($ - msg) be expressed in gas, or is this nasm exclusive syntactic sugar?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烧了回忆取暖 2025-01-04 22:07:23

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

    .data

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

(注意:对于其他平台来说不一定如此。gas支持许多平台,并且它们之间的语法的各个方面有所不同!)

For x86, you can use "." in the same way. e.g.

    .data

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

(Note: this is not necessarily true for other platforms. gas supports many platforms, and various aspects of syntax vary between them!)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文