Перейти к содержанию
    

iar c и регистры

Добрый день всем! Профи, подскажите, пожалуйста, можно ли из IAR С работать с регистрами напрямую? Конкретней- при действиях с переменной компилер все рано ее сует в R9-R15 и все действия производятся в регистром, а потом новое значение переменной вытаскивается обратно. Можно ли сразу писать в конкретный регистр и оперировать с ним без ассемблерых вставок? Вопрос может показаться странным, но мне дествительно хотелось бы этого. Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну, например

 

static unsigned int b;

b=0x001E;b&=0x7f;b|=0x40;

 

получается

mov.w R14,&0x202

and.w #0x7F,R14

bis.w #0x40,R14

mov.w R14,&0x202

 

хотя последняя строка не совсем понятна... Я бы хотел напрямую из си писать в R14 и делать действия непосредственно с ним, что-то вроде R14=0x1e,R14&=0x7f,R14=0x40; т.е сделать свои переменные R9-R15 жестко привязанные в одноименным регистрам процессора, подобно @ и pragma location

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

__no_init int __regvar x @ __R4;

Темнеменее вы не ответили на вопрос: зачем это нужно? Хотите посорвноваться с компилятором в оптимизации?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет, где уж мне... :) . просто есть дизасссемблированная прошивка, я пытаюсь восстановить по ней исходник на си, в принципе, все получается, но чтобы не было головной боли с отслеживанием переменных, было бы здорово, если сабж получился, тем более, что странная закономерность- в дизассемблированной прошиве используются только r10-r15, нигде нет меньших регистров. по ряду признаков, уверен исходник был на иар си, осталось только разобраться с регистрами.

А так как Вы написали, можно только с R4 и R5! ? я пробовал с остальными- компилер ругается!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Часть ответов можно получить прочитав MSP430 IAR C/C++ Compiler

Reference Guide. У иара было несколько версий, они могут что то делать по разному, у каждого свой Guide. Если цель получить исходник соответствующий функционалу прошивки, то имхо выбранный способ неверный. Я бы разбирался в ассме что делает программы и писал прогу с нуля по аналогии. Если цель получить исходник который после компиляции будет совпадать с прошивкой, то геройству храбрых поем мы песню :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если цель получить исходник который после компиляции будет совпадать с прошивкой

то, наверное, дешевле будет у автора купить исходник. :-D

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

to diper: на асме у меня есть свой вариант, который по функционалу аналогичен. Что ж, попробую поэксперименитировать :)

 

to VAI: я это делаю пока для самоудовлетворения и по времени не ограничен!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

vic481, вы решили изучить С после асма? Тогда просто забудьте об асме и напишите программу на С. В ней будет много глупостей, т.к. будете мыслить в стиле асма, но потом это пройдет.

 

:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...