assembly - %assign 和 %define 的区别

标签 assembly x86 nasm preprocessor

<分区>

NASM 程序集 x86 中的 %assign%define 有什么区别?因为对我来说,它们看起来像是同一件事,好吧,不是真的。 %assign 只是一个 %define,您可以稍后在代码中更改它吗?

最佳答案

它们不是 x86 汇编的一部分,它们特定于 nasm。它们相似但不完全相同:%assign 定义了一个数字常量并且可以重新定义。它不能带参数。%define 定义一个数值或字符串值宏,它可以带参数,也可以重新定义。

更多信息在 documentation

关于assembly - %assign 和 %define 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58737539/

相关文章:

linux - 在 Raspberry Pi 上进行组装时,每个命令都会出现错误 "command not found"

c - 使 gcc 在函数结束时不发出 'ret' 指令

macos - 使用 NASM 为 x86_64 环境编译 32 位程序集

linux - 如何打印单个 ASCII 字符?

assembly - 如何让 MSP430 在模式 4 下休眠?

gcc - ASM x86 相对 JMP

assembly - Sandybridge 微架构中的堆栈引擎是什么?

c++ - 如何在 C++ 中实现非静态、非虚方法?

linux - 对 X86_64 linux : Why should we write mov [digit], al 的程序集中标签的使用感到困惑,但不是 mov digit, al?

linux - GDB 提示没有可用的资源