6

我有这行代码:

X   DC.W    5   

这基本上意味着X = 5但不应该X DC.W #5

使用 MOVE 时,我总是需要#

MOVE.B  #1,VAR
4

2 回答 2

8

#1表示立即值,即值 1。如果没有#,则表示内存位置 1 的内容。

随着DC.*您将值(我猜您可以将它们称为“立即”值)放入 X 指定的内存位置。它不是处理器指令,而是汇编器保留内存并用指定值填充它的指令。

于 2012-04-29T19:15:57.973 回答
1

通常 dc.(b/w/l) 用于将硬编码数据放入 ROM 中的表中。例如,如果你想创建一个四字节的表,它看起来像下面这样:

任何一个都可以:

  • dc.b 4, 2, $10, $1A

或者

  • 直流.b 4
  • 直流.b 2
  • 直流 10 美元
  • dc.b $1A

它们的含义相同,因为它们声明了 4 个字节的数据。现在,使用 MOVE 有点不同,因为它将数据移动到数据寄存器或 RAM 中的位置。这些数据可以来自......比如说,我们在上面创建的表格,来自数据寄存器,或者以这个“#”开头的简单数值,如下所示:

  • move.b #$11,($FFFFFE00).w

这将值 $11 移动到我指定的 RAM 地址。希望能解决这个问题。

于 2014-06-27T03:32:38.160 回答