GAS 是否有与 NASM 的 $ 代币类似的东西?
我刚刚开始走上装配之路,也是第一批“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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
对于 x86,您可以以相同的方式使用“
.
”。例如(注意:对于其他平台来说不一定如此。
gas
支持许多平台,并且它们之间的语法的各个方面有所不同!)For x86, you can use "
.
" in the same way. e.g.(Note: this is not necessarily true for other platforms.
gas
supports many platforms, and various aspects of syntax vary between them!)