Assembly EQU与DC.B。有什么区别?

Assembly EQU与DC.B。有什么区别?,assembly,Assembly,我刚开始学习汇编语言。我偶然发现了EQU的概念。起初,这很有道理,直到我到了华盛顿。DC.B和EQU的区别是什么?你不能对每个常量都使用eq吗?我不熟悉你的特定汇编程序语法,所以这个答案是一个有根据的猜测 EQU指令用于告诉汇编程序希望有一个命名符号常量(通常是从其他汇编程序值(包括其他EQU定义)可以在汇编源文本的其他位置引用。你必须经常写信 symbolname EQU constantexpression 这允许您在源文本的其他位置写入symbolname而不是constantexpr

我刚开始学习汇编语言。我偶然发现了EQU的概念。起初,这很有道理,直到我到了华盛顿。DC.B和EQU的区别是什么?你不能对每个常量都使用eq吗?

我不熟悉你的特定汇编程序语法,所以这个答案是一个有根据的猜测

EQU指令用于告诉汇编程序希望有一个命名符号常量(通常是从其他汇编程序值(包括其他EQU定义)可以在汇编源文本的其他位置引用。你必须经常写信

 symbolname EQU constantexpression
这允许您在源文本的其他位置写入symbolname而不是constantexpression。但这个名称本身对最终汇编的程序二进制数据没有直接影响

“DC.B”(我假设‘define constant(byte)’用于告诉汇编程序,您使用最终汇编的程序在源文件的相对位置嵌入一个数据字节)

optionalname DC.B  constantexpression
将常量表达式的计算值放入汇编程序二进制数据的数据字节中

所以,你可以写

 AnEvenNumber  EQU    2
 MyEvenNumber  DC.B   AnEvenNumber
第一行只生成一个命名常量,没有第二行,对二进制文件没有影响。第二行在二进制文件中生成一个字节,其中包含命名符号常量指定的值

请注意,DC.B指令还允许使用可选名称;此符号也可以用于代码中的其他位置。根据汇编程序的复杂程度,您可以定义

 LocationOfEvenNumber EQU  MyEvenNumber


现在,在二进制文件中生成一个“指向”二进制数据字节的字。

您使用的是哪个汇编程序,在哪个操作系统上?用于哪个处理器?HC12?EQU仅定义一个常量符号,DC为变量保留空间(.B使其成为一个字节)这是一个很有根据的猜测,事实上我甚至会说:这就是它+1我正在使用Codewarrior使用HCS12微控制器。谢谢你的解释。这非常有用
      DC.W    LocationOfEvenNumber