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

 
 
> ASM_Modules, Микширование Си и Ассемблера
addi
сообщение Aug 9 2006, 07:50
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 679
Регистрация: 9-08-06
Пользователь №: 19 422



Подскате пожалуйста как обойти в Иаре строковую ассемблерную всавку(т.е вместо строковой использовать вставку блока или файла).?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zltigo
сообщение Aug 9 2006, 08:00
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(addi @ Aug 9 2006, 10:50) *
Подскате

Постарайтесь более четко сформулировать вопрос.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
addi
сообщение Aug 9 2006, 08:16
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 679
Регистрация: 9-08-06
Пользователь №: 19 422



Цитата(zltigo @ Aug 9 2006, 12:00) *
Цитата(addi @ Aug 9 2006, 10:50) *

Подскате

Постарайтесь более четко сформулировать вопрос.

Я знаю только один способ вставки ассемблерного кода - вставка строки, т.е:
asm(" ; \n "
" ;EXTRN EEPROMWriteV \n "
" ;EXTRN EEPROMReadV \n ");

Но у меня очнь много ассемблерного кода, который надо с микшировать с Си.
Не знаю как.
????
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 9 2006, 08:21
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(addi @ Aug 9 2006, 11:16) *
микшировать с Си.

Если "много", то, естественно, отдельный ASM файл -> Assembler -> Linker


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
addi
сообщение Aug 9 2006, 09:42
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 679
Регистрация: 9-08-06
Пользователь №: 19 422



Цитата(zltigo @ Aug 9 2006, 12:21) *
Цитата(addi @ Aug 9 2006, 11:16) *

микшировать с Си.

Если "много", то, естественно, отдельный ASM файл -> Assembler -> Linker

Пробовал подключать отдельным asm файлом через include(#include <asms.s>), компилятор ругаеться.
Также пробовал без include: Project->AddFiles->asms.s, - ни какой реакции, что без него что с ним.
???
Go to the top of the page
 
+Quote Post
_Bill
сообщение Aug 9 2006, 10:13
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219



Цитата(addi @ Aug 9 2006, 12:42) *
Цитата(zltigo @ Aug 9 2006, 12:21) *

Цитата(addi @ Aug 9 2006, 11:16) *

микшировать с Си.

Если "много", то, естественно, отдельный ASM файл -> Assembler -> Linker

Пробовал подключать отдельным asm файлом через include(#include <asms.s>), компилятор ругаеться.
Также пробовал без include: Project->AddFiles->asms.s, - ни какой реакции, что без него что с ним.
???

Ну, так тут все очень просто. Прежде всего, нужно определить ассемблерные функции как глобальные, типа:
Код
        public   fname
fname:          ; Точка входа в функцию fname
         .......

Во-вторых, в заголовочном файле *.h написать прототип:
Код
void   fname(void);

И наконец, если Ваши ассемблерные функции имеют параметры и/или возвращают данные определенного типа, Вы должны написать их на ассемблере в соответствии с правилами, описанными в разделе руководству по компилятору, посвященному использованию ассемблерных функций. Там написано каким образом предаются параметры в функцию, в каких регистрах возвращается результат, какие регистры используются компилятором и не должны изменяться функциями и т.д. и т.п.
Следуйте этим правилам, и у Вас все получится. Успеха!
Go to the top of the page
 
+Quote Post



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

 


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


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