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

 
 
 
Reply to this topicStart new topic
> как засунуть значение переменной в регистр, на asm SAM4L
sifadin
сообщение Jan 15 2014, 07:46
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 443
Регистрация: 11-02-09
Пользователь №: 44 698



Здравствуйте!
Пишу ассемблерные вставки в С код
Нужно напр значение переменной pdata
загрузить в r3
Что то вроде asm(" ldr r0,pdata");
не проходит
из описаний следует что сначала надо загрузить
младшие 16бит потом старшие
Но я то не знаю адреса pdata ее знает компилятор
Сам компилятор подставляет уже конкрентные численные значения адреса (см рис)
Но при написании подставлять конкретные адреса я не могу
тк не знаю куда компилятор их определит
Как быть?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
1113
сообщение Jan 15 2014, 08:33
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 604
Регистрация: 24-02-06
Из: Москва
Пользователь №: 14 658



вот пример - Task0Stack_v это имя какой-то переменной:
Код
__asm volatile ("movw r0, :lower16:Task0Stack_v \n\t");
__asm volatile ("movt r0, :upper16:Task0Stack_v \n\t");
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Jan 15 2014, 08:35
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(sifadin @ Jan 15 2014, 08:46) *
Пишу ассемблерные вставки в С код
Нужно напр значение переменной pdata
загрузить в r3

Есть псевдоинструкция mov32 rn, src, которая расширяется компилятором в нужные две инструкции. Может прокатит и во вставке. Т.к. нет загрузки в регистр по косвенному адресу, чтобы загрузить именно переменную, надо, видимо, две инструкции, например,

mov32 r3, pdata
ldr r3, [r3]


Сообщение отредактировал KnightIgor - Jan 15 2014, 08:43
Go to the top of the page
 
+Quote Post
sifadin
сообщение Jan 15 2014, 08:52
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 443
Регистрация: 11-02-09
Пользователь №: 44 698



ок мерси
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 11th July 2025 - 15:10
Рейтинг@Mail.ru


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