Kaip mes galime paskambinti C funkciją asamblėjos (8051)

S

sacrpio

Guest
Mielieji Draugai,
Norėčiau žinoti, kaip mes galime paskambinti C funkciją Asemblerio kalba, naudojant 8051 mikrokontrolerów.
Thnks ...

 
I dont think thats įmanoma.Jis priklauso nuo surinkėjo Kompiliavimo (turiu pasakyti, kad aš niekada nemačiau, kad galimybė surinkėjui, tačiau labai dažnai atvirkščiai skambinti surinkėjui funkcijas C Compiler).

Mr.Cube

 
Ya i Molestować nuomone, yra įmanoma, gali skambinti C funkciją surinkimo .... hehe ...

Bet aš žinau, mes galime skambinti asamblėjos kodą iš C. ..pvz.asm ( "t \ nop");

 
Labas,

Žr čia:

h ** p: / / www.ke_il.com/support/docs/697.htm

pakeisti * t ir pašalinti _

 
Ši parinktis negalima:
A A
bet Manny C kompiliatorius ir kitos aukšto lygio kalbos galima įgyvendinti A Subroutines ...

 
you know the compiler's calling convention.

Galite paskambinti C funkcijų surinkėjui jei
žinote Kompiliavimo's raginama konvencijos.Be to, gali prireikti paskelbti C funkcija, kai kurių konkrečių būdu.Tikimės jūsų Kompiliavimo nuoroda vadove aprašoma visų daiktų, nes atspėti kviečia keistas problemas.Jei jie neturi dokumento tai,
mes rekomenduojame ne bandant jį.

Kuris Kompiliavimo naudojate?Gal kas nors čia gali suteikti jums daugiau konkrečių patarimų.

 
Taip pat galite pabandyti sukurti surinkėjui failą C funkcija ir atrasti savo pačių kompiliatorių's raginama konvencijos.Paprastai tai yra greičiausias būdas, norint suprasti, kaip jums reikia siųsti parametrus.

Ace-X.

 
Net šiek tiek neįprastas skambinti C routines iš assambler aš sutinku p. echo47 nuomonę, taip tai galima, bet skiriasi nuo Kompiliavimo į kompiliatorių.

/ / a

PS: ... bet mano nuomone, tai labai neįprasta (nenaudingas), kaip tai padaryti!

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />
 
Norėdami sąsaja ASM / C yra įmanoma, jei Linker ir kompiliatorių Specifikacijos žinoma particuliar jei bandyti perduoti parametrus, kad funkcija ..ragina konvencijų reikia žinoti.Manau, kad jūs paminėti Keil ..su Keil galima ..Manau, kad pavadinimą, c myCfunction turi būti pridėtas iš undescore _myCfunction. Na pamatyti Keil assambler doc ..

 
Na, tu turi naudoti kintamosios srovės Kompiliavimo kitaip negali kaupti savo c funkciją.
Taigi, kuriam norite skambinti, ac funkcija nuo surinkimo kodą, lengva, jei c funkcijos yra:
"int myFunction (void);"
surinkimo yra:
"skambinti myFunction"
nuo kompiliatoriuose požiūriu "myFunction ()" yra tik etikete nurodžiusių adresą!

 
btbass rašė:

Na, tu turi naudoti kintamosios srovės Kompiliavimo kitaip negali kaupti savo c funkciją.

Taigi, kuriam norite skambinti, ac funkcija nuo surinkimo kodą, lengva, jei c funkcijos yra:

"int myFunction (void);"

surinkimo yra:

"skambinti myFunction"

nuo kompiliatoriuose požiūriu "myFunction ()" yra tik etikete nurodžiusių adresą!
 
Labas,

C skambinti veikia taip.
1) Slaptažodis kintamasis arba kamino arba "Kompiliavimo" registrus.
2) Peršokti į kai kurios vietos, kur programa yra saugoma (PC)

Kartais yra skirtumas pareiškimą apie c-norima funkcija ir surinkti norima funkcija.Tai Kompiliavimo konkretus.Jums reikia kreiptis į vadovą.Taip pat rūpintis adresą diapazoną.
BR
M

 
Kitas būdas tai padaryti yra atlikti bibliotekos C funkcija, tada Linker gali apimti lib ir galite skambinti iš surinkėjui.

 

Welcome to EDABoard.com

Sponsor

Back
Top