首先,针对您的问题,可以立即回答...
Equ
将数字固定。
=
在稍后更改之前设置数字。
注意!!!“稍后”一词的定义可能会让你非常困惑,特别是涉及多个源文件时。
以下是一个有用的技巧,可与这两个指令一起使用以定义一组数字,当...
- 您希望名称表示唯一值(即数学上“唯一”,保证它们都不相同)
- 您并不关心它们是什么
- 您可能想要随着开发的进行添加或删除这些值
您不知道(从开始时)您需要多少个这样的值
The_Counter = 0
The_Counter = The_Counter + 1
Fred = The_Counter
The_Counter = The_Counter + 1
Barney = The_Counter
The_Counter = The_Counter + 1
Dino = The_Counter
The_Counter = The_Counter + 1
Arnold = The_Counter
The_Counter = The_Counter + 1
Mr_Slate = The_Counter
The_Counter = The_Counter + 1
现在,正如你所看到的,Fred、Barney、Dino、Arnold、Mr_Slate
都可以使用这种方案改变它们的值,这可能是一个不好的事情;因此,如果您想确保在源文件的另一个部分中,其他人(或者您自己出错)不会更改 Fred
等人的值,那么您可以像这样结合上面方案中的 =
和 Equ
...
The_Counter = 0
The_Counter = The_Counter + 1
Fred Equ The_Counter
The_Counter = The_Counter + 1
Barney Equ The_Counter
The_Counter = The_Counter + 1
Dino Equ The_Counter
The_Counter = The_Counter + 1
Arnold Equ The_Counter
The_Counter = The_Counter + 1
Mr_Slate Equ The_Counter
The_Counter = The_Counter + 1
在这种情况下,它们仍然彼此不同,但它们的实际值不会成为更改的候选项。
虽然此示例使用 Flintstone 的角色名称,但可以轻松更改为更有用的内容,例如...
- 分配多个中断处理程序及其优先级。您可以移动源代码中的两行位置,并尝试使用允许您观察一个中断处理程序优先于另一个中断处理程序的差异的系统,然后进行切换。
- 更改查找表中选择的值。
- 为每个组开发人员都可以使用的常量命名(作为文本标签,希望其名称明显),而无需担心该特定整数值是什么等等其他约47个非常好的理由。
哦,只是一个建议;如果您想使用这种方案,我建议将这些“Equ”和“=”指令等放入它们自己的“include”文件中;通常命名为“SomeFile.Equ”或其他文件。我个人发现,将这些汇编指令和类似的东西与实际的机器语言指令隔离开来,你会发现你的代码更易读,更易维护;大幅度提高。 (只是我的建议。)
很好的问题,这个问题让我自己陷入了几周的困惑。
EQU
可以定义常量数字或可重新赋值的文本,而=
则用于可重新赋值的数字。 - Jester1
。数据类型取决于您在何处以及如何使用它们。 - Jester