我刚开始学习汇编语言.我想出了EQU的概念.起初,在我到达DC.B.之前,它已经非常有意义了.DC.B和EQU有什么区别?你不能只为每个常数使用EQU吗?感谢您的帮助.
Ira*_*ter 13
我不熟悉你的特定汇编语法,所以这个答案是一个有根据的猜测.
EQU指令用于告诉汇编器您希望有一个命名符号常量(通常根据其他汇编器值计算,包括其他EQU定义),您可以在汇编源文本的其他位置引用该常量.你必须经常写
symbolname EQU constantexpression
Run Code Online (Sandbox Code Playgroud)
这允许您在源文本的其他位置编写符号名称而不是constantexpression.但是这个名称本身对最终汇编的程序二进制数据没有直接影响.
"DB.B"(我假设"定义常量(字节)"用来告诉汇编,你与最终组装程序,必须在源文件中的相对位置嵌入了一个字节的数据."你写
optionalname DC.B constantexpression
Run Code Online (Sandbox Code Playgroud)
将常量表达式的计算值放入汇编的程序二进制数据中的数据字节中.
所以,你可能会写
AnEvenNumber EQU 2
MyEvenNumber DC.B AnEvenNumber
Run Code Online (Sandbox Code Playgroud)
第一行只生成一个命名常量,没有第二行,对二进制文件没有影响.第二行在二进制文件中生成一个字节,其中包含由命名符号常量指定的值.
请注意,DB.B指令还允许使用可选名称; 此符号也可用于代码中的其他位置.根据汇编程序的复杂程度,您可以定义
LocationOfEvenNumber EQU MyEvenNumber
Run Code Online (Sandbox Code Playgroud)
和
DC.W LocationOfEvenNumber
Run Code Online (Sandbox Code Playgroud)
现在在二进制文件中生成一个"指向"二进制数据字节的单词.
| 归档时间: |
|
| 查看次数: |
26867 次 |
| 最近记录: |