[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