Assembly 为什么不是';在使用DC.W(定义常数)的数字之前需要t#,仅说明?

Assembly 为什么不是';在使用DC.W(定义常数)的数字之前需要t#,仅说明?,assembly,motorola,68000,immediate-operand,Assembly,Motorola,68000,Immediate Operand,我有一行代码: X DC.W 5 这意味着基本上X=5,但不应该是xdc.W#5 使用MOVE时,我需要始终# #1表示立即值,即值1。如果没有#,则表示内存位置1的内容 使用DC.可以将值(我想您可以称之为“立即”值)放入X指定的内存位置。它不是处理器指令,而是汇编程序保留内存并用指定值填充的指令。通常是DC。(b/w/l)用于将硬编码数据放入ROM中的表中。例如,如果您想创建一个包含四个字节的表,则如下所示: 任何一个都可以: dc.b 4、2、$10、$1A 或 d

我有一行代码:

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

使用MOVE时,我需要始终
#

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

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

通常是DC。(b/w/l)用于将硬编码数据放入ROM中的表中。例如,如果您想创建一个包含四个字节的表,则如下所示:

任何一个都可以:

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

  • dc.b.4
  • dc.b.2
  • dc.b$10
  • dc.b$1A
它们的意思是一样的,因为它们声明了4字节的数据。现在,使用MOVE有点不同,因为它将数据移动到数据寄存器或RAM中的某个位置。这些数据可以来自。。。比如,我们在上面创建的表,从数据寄存器,或者从这个“#”开始的简单数值,如下所示:

  • move.b#$11,($fffff e00).w
这将值$11移动到我指定的RAM地址。希望这能澄清这一点

MOVE.B  #1,VAR