Kaip rengti C ir asamblėjos kodas kartu?

A

agnivesh

Guest
Turiu šias užklausas dėl (įterptųjų sistemų) programavimas C & Asamblėja.Prašome pabandyti atsakyti, kiek galite ir pateikti su tuo internetu nuorodas, kur galima savo atsakymą.

1.Pagrindai derinant C & asamblėjos išeities kodus arba
(A) inline surinkimo kodas C šaltinio failo, arba
(B) susieti atskiras C ir montavimas objekto failus ir tt

Atsakymas į šią užklausą turėtų paaiškinti kai kurių, ty sąvokos, tokios kaip informacija apie kompiliatorių instrukcijas naudojamos, kaip juos surinkti ir susieti togather, kaip parametrus perduoti tarp skirtingų modulių ir kaip parametrai yra saugomi, atvertas ir kartą ant klojinio, kokie yra įvairių būdų perduoti parametrai, taikymo sričių kintamųjų skirtingi moduliai ir tt?

2.Kaip C arba asamblėjos kodas bibliotekos yra atliekami (. Lib. H ir tt), ty jeigu turiu šiek tiek asmeninio kodo C (. C) ir montavimas (. ASM), kurių sudėtyje yra tam tikras funkcijas, kaip aš galiu biblioteką iš tos ir naudoti jį savo išeities kodus?Ar galiu pateikti vieną biblioteką iš C ir surinkimo kodą ar man reikia padaryti du skirtingi bibliotekos C ir asamblėjos kodas?

Thanks in advance
agnivesh.

 
Ar u pastebėtas pasirinkimo B TCC (jei gimęs naudojant Turbo c) jo sudarymo Asemblerio kalba su C.
yra vienas preprocess kuris pasakys, kad kompiliatorius asmbly lang yra incluede kad yra
# Pragma inline
Čia įvairių kompiliatorius ...

Jei turite surinkimo funkciją, kurią norite skambinti iš C:

_myasmfun:

Reikia pridėti, kad į susirinkimo kodas

pasaulio _myasmfun

ir pridėti prie C kodas:

Išorinis int myasmfun (int, int, int);

vadiname tai, kaip

int retval;
retval = myasmfun (1, 2, 3);Surinkimas C ir surinkimo kodą kartu:

Tarkime, jūs turite mycfile.c ir myafile.asm.(Tai naudinga, jei jie neturi to paties pavadinimo.)

1.Surinkite surinkimo failą:
nasm-f COFF myafile.asm
Tai sukuria objekto failų, myafile.o.
2.Kompiliavimo C:
gcc-c mycfile.c
Tai sukuria kitą objektą failą, mycfile.o.(Dabar jūs turėtumėte suprasti, kodėl nenorite du šaltinio failų tą patį pavadinimą.)
3.Susiekite savo objektą failus kartu:
gcc-o myfile.exe myafile.o mycfile.o

 
agnivesh, kai kompiliatoriai leidžia derinti C ir assembler.Kai kurie ne.Kiekvienas sudarytojas veikia skirtingai.Nėra bendro metodo.Jūs turite kreiptis į savo kompiliatorių vartotojo vadove.

sathishkrishna buvo maloniai pateikiami nurodymai, kaip vieno konkretaus kompiliatoriaus.

 
Aš C ir surinkimo kombinuotas programavimo kalba Visual C .Jei naudojate VC galiu išknisti failus Išsamiau mano ir po jų.

 
Aš naudoju Borland C Builder
šis programda naudojama, kai ASM kodas prasideda rašyti asm (
ir pabaiga)

ir complie ji

 
agnivesh,

Rašymas inline assembler priklausys nuo jūsų Kompiliavimo.Yra daug įvairių būdų tai padaryti.

Rašymo funkcijos montuotojo yra geresnis kelias.Jūs turite parašyti funkciją surinkėjas, atsižvelgiant į runtime modelis savo kompiliatorių, jei norite pereiti parametrų ar sugrįžimo vertę.Kai jūs jį turite surinkti funkcija.užtikrinti assmebler naudoti galima sukurti objekto failas jūsų Linker galima susieti.
Tada nustatykite ją kaip extern funkcijos. Val failą aplanke C kodą.

Kurti bibliotekos taip pat gana kompiliatorių priklausomas, bet jei jūsų kompiliatorių leidžia jums maišyti c ir assembaly galite turėti galimybę tai padaryti lib taip pat.

Maui

 

Welcome to EDABoard.com

Sponsor

Back
Top