Почему не требуется # перед числами с DC.W (Определить константу), только инструкции?

У меня есть такая строка кода:

X   DC.W    5   

В основном это означает X = 5 Но не должно быть X DC.W #5?

При использовании MOVE мне всегда нужно #

MOVE.B  #1,VAR

person dynamic    schedule 29.04.2012    source источник


Ответы (2)


#1 означает немедленное значение, то есть значение 1. Без # это означало бы содержимое ячейки памяти 1.

С помощью DC.* вы помещаете значения (я думаю, вы можете называть их "немедленными" значениями) в ячейки памяти, указанные X. Это не инструкция процессора, а инструкция для ассемблера, чтобы зарезервировать память и заполнить ее указанными значениями.

person Igor F.    schedule 29.04.2012

Обычно постоянный ток (ч / б / л) используется для жестко закодированных данных, помещаемых в таблицу в ПЗУ. Например. если вы хотите создать таблицу из четырех байтов, это будет выглядеть следующим образом:

ЛИБО ОДИН БУДЕТ РАБОТАТЬ:

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

OR

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

Оба они означают одно и то же, поскольку объявляют 4 байта данных. Теперь использование MOVE немного отличается, поскольку он перемещает данные в регистр данных или место в ОЗУ. Эти данные могут быть из ... скажем, таблицы, которую мы создали выше, из регистра данных или простого числового значения, начинающегося с этого '#', например:

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

Это переместило значение $ 11 на указанный мной адрес RAM. Надеюсь, это проясняет это.

person Sonic Retro's KingofHarts    schedule 27.06.2014