Integracja Asemblera z C w mikrokontrolerach '51: Jak to zrobić z Keilem?

Re: c + asm '51





Poprzedni Następny
Wiadomość
spis treści
From: this_address_is_invalid_see_signature_at_nospam_adresniewazny.com (Jaroslaw Cichorski Jr.)
Subject: Re: c + asm '51
Date: Sat, 01 May 1999 00:34:06 GMT


"jachu" <tomekj_at_nospam_zt.jeleniag.tpsa.pl> wrote:

Witam !
Jak ruszyc z polaczeniem asemblera z C na '51. Mam kompilatory Archimedesa
i Franklina; jest nawet jakis przyklad (nie chulajacy), jak wywolac funkcje
asemblerowa z poziomu C. Podobno zmienne mozna przekazywac przez xdata albo
r0-r7. O co chodzi z tymi znakami zapytania w nazwach funkcji?? Czy ktos
moze pomoc, ew. jakis przyklad (to juz na tjasinski_at_nospam_eragsm.com.pl)

Uzywam Keila, wiec nie powiem Ci jak to zrobic w Archimedesie ani
Franklinie, ale sprawdz, czy te kompilatory 'C' nie maja funkcji
generacji kodu zrodlowego dla ASM.
W Keilu jest to #pragma SRC.
Nalezy napisac sobie krotka funkcje (o nazwie takiej, jak docelowa) w
modelu, w jakim masz program i z taka sama iloscia i typem parametrow
we/wy, a otrzymany w ten sposob shell uzupelnic swoim kodem funkcji w
ASM i skompilowac.
Zasady linkowania sa dosc dokladnie omowione w instrukcji do linkera.
Parametry mozna oczywiscie przekazywac przez wydzielone obszary
pamieci, ale najlepiej jest to robic w naturalny dla danego modelu i
wielkosci/ilosci zmiennych sposob, bo odpada zarzadzenie tym obszarem,
ladowanie go zawartoscia parametrow i odczytywanie wynikow, co wydluza
program i czesciowe niweluje zalety szybkiego wykonania sie funkcji w
ASM.

HTH
Pozdrawiam

--
Jaroslaw Cichorski Jr.
E-mail cichy_at_nospam_amart.JUNKMAILPROTECTION.com.pl
WWW http://www.amart.com.pl
UWAGA Adres email niewazny!
Prosze usunac JUNK MAIL PROTECTION. zeby otrzymac prawidlowy adres.
Kto to jest General Failure i dlaczego czyta z mojego dysku twardego ?

Poprzedni Następny
Wiadomość
spis treści
From: "jachu" <tomekj_at_nospam_zt.jeleniag.tpsa.pl>
Subject: Re: c + asm '51
Date: Sat, 01 May 1999 09:32:14 GMT


Jaroslaw Cichorski Jr.
<this_address_is_invalid_see_signature_at_nospam_adresniewazny.com> wrote in article
<372a47ad.52334982_at_nospam_news.tpsa.pl>...
"jachu" <tomekj_at_nospam_zt.jeleniag.tpsa.pl> wrote:

Witam !
Jak ruszyc z polaczeniem asemblera z C na '51. Mam kompilatory
Archimedesa
i Franklina; jest nawet jakis przyklad (nie chulajacy), jak wywolac
funkcje
asemblerowa z poziomu C. Podobno zmienne mozna przekazywac przez xdata
albo
r0-r7. O co chodzi z tymi znakami zapytania w nazwach funkcji?? Czy ktos
moze pomoc, ew. jakis przyklad (to juz na tjasinski_at_nospam_eragsm.com.pl)

Uzywam Keila, wiec nie powiem Ci jak to zrobic w Archimedesie ani
Franklinie, ale sprawdz, czy te kompilatory 'C' nie maja funkcji
generacji kodu zrodlowego dla ASM.
W Keilu jest to #pragma SRC.
Nalezy napisac sobie krotka funkcje (o nazwie takiej, jak docelowa) w
modelu, w jakim masz program i z taka sama iloscia i typem parametrow
we/wy, a otrzymany w ten sposob shell uzupelnic swoim kodem funkcji w
ASM i skompilowac.
Zasady linkowania sa dosc dokladnie omowione w instrukcji do linkera.
Parametry mozna oczywiscie przekazywac przez wydzielone obszary
pamieci, ale najlepiej jest to robic w naturalny dla danego modelu i
wielkosci/ilosci zmiennych sposob, bo odpada zarzadzenie tym obszarem,
ladowanie go zawartoscia parametrow i odczytywanie wynikow, co wydluza
program i czesciowe niweluje zalety szybkiego wykonania sie funkcji w
ASM.

HTH
Pozdrawiam

--
> Jaroslaw Cichorski Jr.
> E-mail cichy_at_nospam_amart.JUNKMAILPROTECTION.com.pl
> WWW http://www.amart.com.pl
> UWAGA Adres email niewazny!
> Prosze usunac JUNK MAIL PROTECTION. zeby otrzymac prawidlowy adres.
> Kto to jest General Failure i dlaczego czyta z mojego dysku twardego ?

Zeczywiscie jest #pragma SRC, tylko nie wiem czy dobrze zrozumialem; moj
problem polega na tym, ze mam kupe wlasnych funkcji w asemblerze i
chcialbym je wykorzystac w C.
wykorzystujac #pragma SRC zeczywiscie dostajemy "tlumaczenie" z C na Asm
ale jak wykorzystac juz to co mam gotowe ?

Tomek