vic481 0 11 октября, 2008 Опубликовано 11 октября, 2008 · Жалоба Добрый день всем! Профи, подскажите, пожалуйста, можно ли из IAR С работать с регистрами напрямую? Конкретней- при действиях с переменной компилер все рано ее сует в R9-R15 и все действия производятся в регистром, а потом новое значение переменной вытаскивается обратно. Можно ли сразу писать в конкретный регистр и оперировать с ним без ассемблерых вставок? Вопрос может показаться странным, но мне дествительно хотелось бы этого. Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
diper 0 11 октября, 2008 Опубликовано 11 октября, 2008 · Жалоба Не понятоно что вы хотите. Пример в студию. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vic481 0 11 октября, 2008 Опубликовано 11 октября, 2008 · Жалоба ну, например 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
diper 0 11 октября, 2008 Опубликовано 11 октября, 2008 · Жалоба __no_init int __regvar x @ __R4; Темнеменее вы не ответили на вопрос: зачем это нужно? Хотите посорвноваться с компилятором в оптимизации? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vic481 0 11 октября, 2008 Опубликовано 11 октября, 2008 · Жалоба Нет, где уж мне... :) . просто есть дизасссемблированная прошивка, я пытаюсь восстановить по ней исходник на си, в принципе, все получается, но чтобы не было головной боли с отслеживанием переменных, было бы здорово, если сабж получился, тем более, что странная закономерность- в дизассемблированной прошиве используются только r10-r15, нигде нет меньших регистров. по ряду признаков, уверен исходник был на иар си, осталось только разобраться с регистрами. А так как Вы написали, можно только с R4 и R5! ? я пробовал с остальными- компилер ругается! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
diper 0 11 октября, 2008 Опубликовано 11 октября, 2008 · Жалоба Часть ответов можно получить прочитав MSP430 IAR C/C++ Compiler Reference Guide. У иара было несколько версий, они могут что то делать по разному, у каждого свой Guide. Если цель получить исходник соответствующий функционалу прошивки, то имхо выбранный способ неверный. Я бы разбирался в ассме что делает программы и писал прогу с нуля по аналогии. Если цель получить исходник который после компиляции будет совпадать с прошивкой, то геройству храбрых поем мы песню :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VAI 0 12 октября, 2008 Опубликовано 12 октября, 2008 · Жалоба Если цель получить исходник который после компиляции будет совпадать с прошивкой то, наверное, дешевле будет у автора купить исходник. :-D Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vic481 0 12 октября, 2008 Опубликовано 12 октября, 2008 · Жалоба to diper: на асме у меня есть свой вариант, который по функционалу аналогичен. Что ж, попробую поэксперименитировать :) to VAI: я это делаю пока для самоудовлетворения и по времени не ограничен! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
diper 0 12 октября, 2008 Опубликовано 12 октября, 2008 · Жалоба vic481, вы решили изучить С после асма? Тогда просто забудьте об асме и напишите программу на С. В ней будет много глупостей, т.к. будете мыслить в стиле асма, но потом это пройдет. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться