=和:=之间的差异

时间:2019-05-03 08:41:05

标签: assembly 6502

我是6502汇编编程的新手,并且正在使用cc65套件(以C64为目标)。官方文档指出"The assembler accepts the standard 6502/65816 assembler syntax",但我很难找到权威参考。我不明白的是6502程序集"="":="中两个赋值(?)运算符之间的区别。

例如,在文件“ c64.inc”中我们找到了

BASIC_BUF       := $200         ; Location of command-line
BASIC_BUF_LEN   = 89            ; Maximum length of command-line

2 个答案:

答案 0 :(得分:3)

  

:=进行声明和分配,=仅进行分配

:=是声明和初始化的缩写。 =是赋值运算符,与另一种编程语言的使用方式相同。

x := 12
y := "value"

x声明为int并初始化为值12,其中y声明为string并初始化为值value < / p>

var x = 12
var y = "value"

答案 1 :(得分:2)

@JoachimPileborg指出cc65 documentation确实对此做了解释。第一个运算符=创建一个符号并为其分配一个给定的值。第二个运算符:=也使符号成为标签。标签的名称和值由编译器(带有-g选项)导出为debug information的一部分,而常规符号则不是这种情况。因此,使用:=来定义内存位置,使用=来实现其他目的是很有意义的。