我有这行代码:
X DC.W 5
这基本上意味着X = 5
但不应该X DC.W #5
?
使用 MOVE 时,我总是需要#
MOVE.B #1,VAR
我有这行代码:
X DC.W 5
这基本上意味着X = 5
但不应该X DC.W #5
?
使用 MOVE 时,我总是需要#
MOVE.B #1,VAR
#1
表示立即值,即值 1。如果没有#
,则表示内存位置 1 的内容。
随着DC.*
您将值(我猜您可以将它们称为“立即”值)放入 X 指定的内存位置。它不是处理器指令,而是汇编器保留内存并用指定值填充它的指令。
通常 dc.(b/w/l) 用于将硬编码数据放入 ROM 中的表中。例如,如果你想创建一个四字节的表,它看起来像下面这样:
任何一个都可以:
或者
它们的含义相同,因为它们声明了 4 个字节的数据。现在,使用 MOVE 有点不同,因为它将数据移动到数据寄存器或 RAM 中的位置。这些数据可以来自......比如说,我们在上面创建的表格,来自数据寄存器,或者以这个“#”开头的简单数值,如下所示:
这将值 $11 移动到我指定的 RAM 地址。希望能解决这个问题。