|
Загрузить константу в регистр |
|
|
|
 |
Ответов
|
Jul 9 2009, 17:03
|

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

|
Цитата ARM называет LDR псевдокомандой. Не возражаю  Главное, что все-же не "командой", именно это я хотел подчеркнуть. Цитата По п.2 ARM ассемблер размещает "неудобную" константу по-близости (<4KB) от реальной команды загрузки константы, минимизируя тем самым время доступа к ней. Дальше 4х килобайт он банально не может разместить - не хватает разрядности смещения в коде команды. Но суть совсем не в дистанции, а в том, что выборка перестает быть последовательной.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Jul 9 2009, 19:32
|
Профессионал
    
Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007

|
Цитата(Rst7 @ Jul 9 2009, 21:03)  Не возражаю  Главное, что все-же не "командой", именно это я хотел подчеркнуть. Дальше 4х килобайт он банально не может разместить - не хватает разрядности смещения в коде команды. Но суть совсем не в дистанции, а в том, что выборка перестает быть последовательной. А вы возметесь оценить потери от такой непоследовательной выборки? Думается, что на практике - это плюнуть и забыть.
|
|
|
|
|
Jul 9 2009, 19:59
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(aaarrr @ Jul 10 2009, 01:53)  Оценить можно - на ARM7TDMI LDR выполняется за 3 такта, а команда типа MOV Rd, imm - за 1. Т.е. теряем такт по сравнению с загрузкой двумя "простыми" командами (ну, если бы они существовали, конечно). В LPC2ххх выполняя прогу из флэша команда LDR Rx,=imm будет выполняться дольше. в зависимости от настроек MAM, вполне возможно что и 5 и 6 тактов. Но если проц работает на частоте до 20 МГц, то 3 такта тоже может быть, но не меньше.
Сообщение отредактировал GetSmart - Jul 9 2009, 20:00
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
Сообщений в этой теме
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 ЦитатаА если написать LDR Rn, [PC], #8 и в нужное ... Jul 10 2009, 05:30 777777 Цитата(Rst7 @ Jul 10 2009, 09:30) Такой с... Jul 10 2009, 07:08 aaarrr Цитата(Rst7 @ Jul 10 2009, 09:30) Случай-... Jul 10 2009, 09:27 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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|