【问题标题】:NASM Specific -- Section vs [SECTION ]NASM 特定 - 部分与 [部分]
【发布时间】:2011-05-08 05:31:37
【问题描述】:

我似乎无法在 NASM 的文档中找到关于在代码中使用 Section 或 [SECTION ](带括号)之间的区别的任何明确内容。我知道这些是宏,但我看到它们几乎可以互换使用。是这样吗?换句话说就是

[SECTION .text]

相当于

Section .text

?

括号是否暗示了一些神秘的副作用?

谢谢

【问题讨论】:

    标签: assembly nasm


    【解决方案1】:

    [SECTION .xyz] 是 section 指令的原始形式,它只是设置当前输出部分,SECTION .xyz 略有不同,因为它像宏一样工作:

    SECTION .text
    

    扩展到两行

    %define __SECT__ [SECTION .text] 
    [SECTION .text]
    

    它可以与宏结合使用来临时切换输出部分,并将其切换回其原始值。示例from the NASM manual

    %macro  writefile 2+
    
    [section .data]
    
    %%str:        db      %2
    %%endstr:
    
        __SECT__
    
        mov     dx,%%str
        mov     cx,%%endstr-%%str
        mov     bx,%1
        mov     ah,0x40
        int     0x21
    
    %endmacro
    

    当你使用这个宏时,输出部分被SECTION的原始形式临时设置为.data,并用__?SECT?__设置回原来的值

    【讨论】:

      猜你喜欢
      • 2022-01-27
      • 1970-01-01
      • 2016-05-01
      • 2020-05-13
      • 1970-01-01
      • 2021-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多