我刚开始走下大会之路,并且是第一个“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#section-3.5
这个表达式($ - msg)可以用气体表达,还是这个鼻子独有的语法糖?
答案 0 :(得分:2)
对于x86,您可以以相同的方式使用“.
”。 e.g。
.data
msg:
.ascii "Hello, World!"
.byte 0xa
.equ len, . - msg
(注意:其他平台不一定如此。gas
支持许多平台,语法的各个方面因它们而异!)