Bonjour,
JE voudrais savoir comment on fait pour utiliser les fonctions d'une librairie écrite en assembleur dans mes programmes en C.
calculator (./3) :
Pour le header les fonctions doivent bien etre déclarées ainsi: malib::ma_fonction equ malib@xxxx ?
genlib::init_screen EQU genlib@0049 genlib::init_dscreen EQU genlib@0002
#undef gl_init_screen
#define gl_init_screen(scr,hd) \
asm("jsr genlib__0049; move.l %%a0,(%0); move.w %%d0,(%1)" :: "a" (scr), "a" (hd) : "d0", "d1", "d2", "a0", "a1")
#undef gl_init_dscreen
#define gl_init_dscreen(dscr,hd) \
asm(" jsr genlib__0002; move.l %%a0,(%0); move.w %%d0,(%1)" :: "a" (dscr), "a" (hd) : "d0", "d1", "d2", "a0", "a1")genlib::init_plane EQU genlib@0006
#define gl_init_plane genlib__0006 PLANE *gl_init_plane(unsigned char map[] A3, SPRITE_16 tile[] A4, short sizeX D3);
#define D0 asm("d0")
#define D1 asm("d1")
#define D2 asm("d2")
#define D3 asm("d3")
#define D4 asm("d4")
#define D5 asm("d5")
#define D6 asm("d6")
#define D7 asm("d7")
#define A0 asm("a0")
#define A1 asm("a1")
#define A2 asm("a2")
#define A3 asm("a3")
#define A4 asm("a4")section ".data" xdef _nostub include "OS.H" xdef i2clib@0000 xdef i2clib@0001 xdef i2clib@0002 xdef i2clib@0003 xdef i2clib@0004 xdef i2clib@0005
Fichier joint : I2CLib.asm
Fichier joint : i2clib.h
Fichier joint : main.c#define start() asm("jsr i2clib__0000")
#define stop() asm("jsr i2clib__0001")
calculator (./11) :
Mais ce que je comprends c'est que si j'utilise une librairie statique je ne devrai pas avoir besoin d'un Kernel??
PpHd (./15) :
Bug du linkeur qui voit une exportation externe là où elle est résolue. Faut passer en kernel donc. (Projet mode KERNEL).