gpt4 book ai didi

assembly - NASM 特定 - 章节与 [章节]

转载 作者:行者123 更新时间:2023-12-02 19:37:15 26 4
gpt4 key购买 nike

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

[SECTION .text]

相当于

Section .text

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

谢谢

最佳答案

[SECTION .xyz] 是节指令的原始形式,它只是设置当前输出节,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?__

关于assembly - NASM 特定 - 章节与 [章节],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5925797/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com