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

 
 
> uVision: Ассемблер в Си-программе?!, Как вставить Асм в СИ!
amoralex
сообщение May 12 2005, 07:57
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 21-04-05
Пользователь №: 4 363



Господа, а как вставить ассемблерный кусочек кода (обработка прерывания отпимизированная) в Си-программу?

Стандартный asm {} не срабатывает...

Документация по КейлСи в отношении ассемблера тоже путанная, я еще по крайней мере вразумительного ничего не нашел там...

Заранее спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Miron
сообщение May 12 2005, 10:35
Сообщение #2


Частый гость
**

Группа: Validating
Сообщений: 149
Регистрация: 11-02-05
Из: Рязань
Пользователь №: 2 574



можно сделать и так:

делаем асм модуль в отдельном файле и включаем его в проект

;*************************************************************
;** Процедура на АСМ
;*************************************************************
NAME PR_messaging_420

PUBLIC OUT_4_20

EXTRN DATA (Buf_ADSP) ;** Внешняя переменная

PROG SEGMENT CODE ì
RSEG PROG
;***************************************************************
;***************************************************************
OUT_4_20: mov a,Buf_ADSP
....
.....

ret


в си модуле


data unsigned short Buf_ADSP; //та самая переменная что доступна в асм

extern void OUT_4_20(); //обявляем прототип функции


void main(void)
{OUT_4_20(); //вызываем
}

можно также передать и принять даные в /из асм
тогда прототип
extern char OUT_4_20(char);
в этом случае параметры будут передаваться через
регистры рабочего банка в help подробно все описани
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 04:25
Рейтинг@Mail.ru


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