assembly - 在计算 "$ - label"等字符串长度时,x86 汇编中的美元符号 ($) 意味着什么?

标签 assembly x86 intel-syntax

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

section .data

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

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

最佳答案

在这种情况下,$ 表示根据汇编器的当前地址。 $ - msg 是汇编器的当前地址减去 msg 的地址,这就是字符串的长度。

关于assembly - 在计算 "$ - label"等字符串长度时,x86 汇编中的美元符号 ($) 意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10361231/

相关文章:

assembly - 如何在 GDB 控制台中设置 "info registers"中的变量 rip?

assembly - 如何运行 linaro 汇编程序以获取 thumb2 (T32) 指令

.net - 系统.BadImageFormatException : Could not load file or assembly (from installutil. exe)

assembly - 清屏不间断

c++ - MSVC下的奇优化问题

gcc - 如何设置 gcc 以永久使用 intel 语法?

assembly - 需要 AT&T 汇编语法的良好来源

assembly - 检查 char 是否为大写字母

assembly - GNU 为 : Escape symbol names in intel_syntax