2013-04-05 2 views
3

Я немного новичок в материале asm. Просматривая ассемблере генерируется из C для C28x процессора TI и имеют ИнструкциейКосвенная адресация с + и []

MOVL *+XAR4[0],ACC 

Я знаю его команду двигаться длинный операнд, который принимает значение в аккумуляторе и помещает его в месте, на который указывает .... что ?

XAR4 является вспомогательным регистром 4, но что делают «+» и «[0]»? Будут ли они принимать дополнительные циклы?

ответ

1

Из раздела 5.6 «косвенную адресацию режимы» из «TMS320C28x DSP процессора и набором команд Справочное руководство» :

*+XARn[3bit] 
32bitDataAddr(31:0) = XARn + 3bit 
Note: The immediate value is treated as an unsigned 3-bit value. 

Так будет хранить ACC в ячейке памяти, на которую указывает XAR4 (XAR4+0).

Когда 3-разрядное смещение 0, что можно оставить его:

The assembler also accepts ”*XARn” as an addressing mode. 
This is the same encoding as the ”*+XARn[0]” mode 
+0

Спасибо, но я все еще не уверен, как это отличается от MOVL * XAR4, ACC ?? – Toby

+1

@Toby: Это также описано в том же документе. См. Мое редактирование. – Michael

+0

Спасибо за это. Теперь мне остается задаться вопросом, почему будет генерироваться код, который делает это в * + XARn [0], а не в * XARn, в первую очередь;) – Toby

Смежные вопросы