[BSD] gcc + external asm
Miklos Magyari
miklos.magyari at eth.ericsson.se
2002. Nov. 21., Cs, 17:10:13 CET
On Thu, 21 Nov 2002, Hajdú Zoltán wrote:
hello,
> Nem tud valaki valami _normális_ doksit arról, hogy lehet külső, asm
> -el készített kódrészleteket c programokhoz illeszteni/linkelni?
Jol ertem: irsz assembly es C kodot, elobbi nasm, utobbi gcc es ebbol
akarsz csinalni egy binarist, amiben akarsz hivni C-bol assembly-t es
forditva?
Ha igen, akkor nagyjabol igy nez ki:
pl. assembly-bol C hivas:
ilyen a C:
void function (void *ptr, int i);
akkor az assembly-ben:
1) push-al berakod sorban a verembe a parametereket, itt 2db 32 bites
erteket (most arra az egyre nem emlekszem hirtelen, hogy milyen
sorrendben)
2) call-al meghivod a C fuggvenyt
3) ha visszatert, akkor az sp erteket korrigalni kell, mert nem all vissza
magatol.
C-bol assembly ugyanez pepitaban.
A forditas is egyszeru, mert a nasm tudja exportalni a szimbolokat, a gcc
is, siman lehet egymasra hivatkozni a kettobol, a linker
konnyen osszelinkeli.
Ha kell, elokaparom, irtam ilyet par honapja.
Ha jol remlik, a nasm doksiban olvastam, hogy kell csinalni, miutan engem
is kiakasztott a gas ;)
udv,
mami
További információk a(z) BSD levelezőlistáról