首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在计算字符串长度时,美元符号($)在x86程序集中意味着什么?

在计算字符串长度时,美元符号($)在x86程序集中意味着什么?
EN

Stack Overflow用户
提问于 2012-04-28 06:32:49
回答 3查看 63.5K关注 0票数 51

例如,如果我们编写一个简单的hello world类型程序,.data部分可能包含如下内容:

代码语言:javascript
复制
section .data

msg     db      'Enter something: '
len     equ     $ - msg

这个例子中的$代表什么,为什么$ - msg等于字符串的长度?

EN

Stack Overflow用户

发布于 2015-10-04 18:23:20

NASM文档

http://www.nasm.us/doc/nasmdoc3.html#section-3.5

NASM支持表达式中的两个特殊标记,允许计算涉及当前组装位置:$和$$标记。$计算到包含表达式的行开头的组装位置;因此您可以使用JMP $编写无限循环代码。

http://www.nasm.us/doc/nasmdoc3.html#section-3.2.4

EQU将符号定义为给定的常量值:当使用EQU时,源行必须包含一个标签。EQU的作用是将给定的标签名定义为其(仅)操作数的值。此定义是绝对的,以后不能更改。所以,比如说, 消息db 'hello,world‘msglen $-message 将msglen定义为常量12

票数 8
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10361231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档