реклама на сайте
подробности

 
 
> Загрузить константу в регистр
777777
сообщение Jul 9 2009, 11:51
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Решил изучить ARM, смотрю систему команд и не вижу загрузки любой константы в регистр. Как это сделать, неужели нужно извращаться через R15 с автоинкрементом?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Rst7
сообщение Jul 10 2009, 05:30
Сообщение #2


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
А если написать LDR Rn, [PC], #8 и в нужное место вставить константу - такое не практикуется? По аналогии с DEC: MOV Rn, (PC)+
Тогда и выборка не нарушится. Может в ассемблере есть соответствующие средства для такой записи?


Такой случай там описан в документации:

Цитата
Load and Store Word or Unsigned Byte - Immediate pre-indexed
....
Syntax
[<Rn>, #+/-<offset_12>]!
....
Use of R15 Specifying R15 as register Rn has UNPREDICTABLE results.


Так что нельзя.

Цитата
Значит адреса всех переменных должны храниться в памяти команд? Че-то не то...


Так и есть.

Цитата
Ну, это частный случай кэшированного процессора, если можно так выразиться.


Случай-то частный, но отсутствие загрузки любых непосредственных операндов не позволяет, например, простыми средствами (без внутренних кешей) выполнять код из внешней SDRAM без дикой потери производительности. А вот AVR32 даже в инкарнации AT32UC3A0512 - вполне. Дует себе в burst-режиме и все пучком.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jul 10 2009, 09:27
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Rst7 @ Jul 10 2009, 09:30) *
Случай-то частный, но отсутствие загрузки любых непосредственных операндов не позволяет, например, простыми средствами (без внутренних кешей) выполнять код из внешней SDRAM без дикой потери производительности. А вот AVR32 даже в инкарнации AT32UC3A0512 - вполне. Дует себе в burst-режиме и все пучком.

Дык я разве что другое писал? Тут даже и наличие кэшей не очень спасает - DCache будет забиваться кодом.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 777777   Загрузить константу в регистр   Jul 9 2009, 11:51
- - Rst7   Обычно некоторый набор констант можно загрузить, и...   Jul 9 2009, 12:08
|- - 777777   Цитата(Rst7 @ Jul 9 2009, 16:08) Обычно н...   Jul 10 2009, 04:21
- - Сергей Борщ   Цитата(777777 @ Jul 9 2009, 14:51) неужел...   Jul 9 2009, 12:12
- - Rst7   ЦитатаА как иначе встроить произвольное 32-битное ...   Jul 9 2009, 12:22
- - sergeeff   Команда LDR не такая "тупая", как многим...   Jul 9 2009, 16:11
- - Rst7   ЦитатаКоманда LDR не такая "тупая", как ...   Jul 9 2009, 16:19
|- - sergeeff   Цитата(Rst7 @ Jul 9 2009, 20:19) А никто ...   Jul 9 2009, 16:27
- - Rst7   ЦитатаARM называет LDR псевдокомандой. Не возража...   Jul 9 2009, 17:03
|- - sergeeff   Цитата(Rst7 @ Jul 9 2009, 21:03) Не возра...   Jul 9 2009, 19:32
|- - aaarrr   Цитата(sergeeff @ Jul 9 2009, 23:32) А вы...   Jul 9 2009, 19:53
|- - GetSmart   Цитата(aaarrr @ Jul 10 2009, 01:53) Оцени...   Jul 9 2009, 19:59
|- - aaarrr   Цитата(GetSmart @ Jul 9 2009, 23:59) В LP...   Jul 9 2009, 20:03
|- - 777777   Цитата(Rst7 @ Jul 10 2009, 09:30) Такой с...   Jul 10 2009, 07:08
- - Rst7   ЦитатаВ документации написано следующее: ... Тут ...   Jul 10 2009, 07:25
|- - 777777   Цитата(Rst7 @ Jul 10 2009, 11:25) Тут нап...   Jul 10 2009, 08:50
- - Rst7   ЦитатаНу, значит в принципе можно? Только считывае...   Jul 10 2009, 09:15
- - Rst7   ЦитатаДык я разве что другое писал? Дык я ж проти...   Jul 10 2009, 09:32


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th June 2025 - 14:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.01398 секунд с 7
ELECTRONIX ©2004-2016