gpt4 book ai didi

汇编编程 - "variables"使用(看起来像)标签或变量名定义?

转载 作者:行者123 更新时间:2023-12-03 03:11:31 25 4
gpt4 key购买 nike

我在程序集中使用两种语法“定义”看到了“变量”,第一个看起来像标签,第二个看起来像变量名。两者可以互换使用吗?或者两者的使用都有特定的原因吗?

例如:

msg db "Hello World",0x0a

看起来有点像 C/C++ 中的变量名,而

msg: db "Hello World",0x0a

看起来有点像 asm 或 C/C++ 中的标签。

  1. 是否有使用其中一种语法的理由?

  2. 它们有什么区别?

  3. 如果我msg: db "Text",0x0a,我可以mov rax, [msg]还是需要mov rax ,[消息:]

最佳答案

来自NASM documentation :标签后面的冒号也是可选的。我想这意味着这两段代码都创建了一个名为msg的标签。

  1. 代码风格、可读性和一致性是使用其中一种的原因。但鉴于语义是相同的,我想这是唯一的原因。

  2. 鉴于 x: db 0x db 0,似乎两者都创建了一个名为 x 的标签。

  3. 我想说你会做mov rax, [msg]。这是因为在 NASM 中,当您创建标签时,末尾的分号不包含在名称中,而是向汇编器提示已到达标签名称的末尾。

关于汇编编程 - "variables"使用(看起来像)标签或变量名定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17913264/

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