Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Цифровые сигнальные процессоры (DSP) и их применение»

Ответ:

Отправлено 1108 11 декабря 2007 г. 11:01
В ответ на: Проблема при вызове C-функции из ассемблера (все тот же 2407A) (+) отправлено <font color=gray>kamil</font> 11 декабря 2007 г. 07:52

В ноутах были примеры
построения ассемблерных функций
для С.
Там короче перед выполнением тела
функций были всякие манипуляции с регистами.

Вот пример не полный.
Почитай подобнее их рекомендации.


_q15toq0:
POPD *+ ; Keep return address
SAR AR0,*+ ; Keep old frame pointer (FP)
SAR AR1,* ; Keep old stack pointer (SP)
LARK AR0,__q15toq0_framesize ; Load AR0 with frame size
LAR AR0,*0+,AR0 ; AR0->FP0 (new FP), ARP=AR0
;================================================================================
SBRK #3 ; ARP=AR0, AR0->FR0-3 (1st argument)
SETC SXM ; Turn sign extension mode on

; ACC = q15*scaler (Q16)
; ARP=AR0, AR0->FR0

_q15toq0_exit:
;MAR *,AR1 ; can be removed if this condition is met on
; ; every path to this code. (i.e., ARP=AR1 here)

CLRC OVM
CLRC SXM

SBRK #(__q15toq0_framesize+1)
LAR AR0,*-
PSHD *
RET



Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
сложите три и три:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru