【问题标题】:Is there a difference between using or not a colon after symbol name definitions in NASM?在 NASM 中的符号名称定义后使用或不使用冒号有区别吗?
【发布时间】:2011-12-21 19:47:49
【问题描述】:

常量声明中的2种形式:

len equ 2
len: equ 2

它们是一样的吗?

如果不是,那么每种申报表的优点或缺点是什么?

【问题讨论】:

    标签: assembly x86 nasm


    【解决方案1】:

    这两者的功能区别:

    len  equ 2
    len: equ 2
    

    完全没有区别。如NASM doc page 所述:

    NASM 对行内的空格没有限制:标签前面可能有空格,或者指令前面可能没有空格,或其他任何内容。 标签后的冒号也是可选的。

    (请注意,这意味着如果您打算在一行上单独编写 lodsb 代码,并意外键入 lodab,那么这仍然是一个有效的源代码行,除了定义一个标签之外什么都不做。使用命令行选项运行 NASM - w+orphan-labels 如果您在没有尾随冒号的行上单独定义标签,它会发出警告。)

    【讨论】:

    • 我想知道“len equ 2”和“len: equ 2”的区别。对不起,如果我的问题不清楚,我改变了它。请原谅我的英语。
    • 对不起,@Linh,我误解了原来的问题是“equ 和 db 有什么区别?”。回去重读,问题显然是我的,而不是你的。
    • @Linh,而不是浪费一个完美的答案(尽管是错误的问题),我已经在stackoverflow.com/questions/8006711/… 发布了原始答案,对于 right 问题,如果你有兴趣:-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-10
    相关资源
    最近更新 更多