1

j'ai cherché, mais j'arrive pas a utiliser un code ASM directement dans un prgm C...

Donc si kelkun aurai nu exmple tout kon pour faire par exemple :
on a A et B en entrée
on recupere A+B dans A en sortie

c-a-d :
{
  int a;
  int b;
  a=10;
  b=20;

  /**routine ASM qui fait a=a+b**/

  clrscr;
  sprint("%i",a); // doit afficher 30
  ngetchx();
}


voila...
Ancien pseudo : lolo

2

c'est facile...je sais pas le faire mais c'est hyper facilegrin
avatar
納 豆パワー!
I becamed a natto!!!1!one!

3

idem, c pour ca ke je demande...
Ancien pseudo : lolo

4

-

5

c'est un exemple !!
avatar
納 豆パワー!
I becamed a natto!!!1!one!

6

c pour un exmple, comem ca je saurai comment acceder a uen var C en ASM et comment sauver une var ASM ds une var C... ca resume tout...
Ancien pseudo : lolo

7

c'est assez simple: tu declares ta fonction:

short addi(short a,short b);





puis apres :
asm("addi:.....etc ...demerde toi grin")
avatar
納 豆パワー!
I becamed a natto!!!1!one!

8

justement , la est le pb ... je ne veux pas passer par une fonction, car ca je sais le faire.... et acceder a une fonction est bcp pluis long ke de mettre le code directement a la suite, surtout si je ne l'utilise k'une seule fois....
Ancien pseudo : lolo

9

-

10

j'en sais rien moi !

exemple :
asm("attend: movem.l %d0-%d3,-(%sp)
move.w (20,%sp),%d2
move.l #31,%d1
move.l #31,%d3
_wl2_: move.w #1551,%d0
_wl1_: rol.l %d3,%d1
dbra %d0,_wl1_
dbra %d2,_wl2_
movem.l (%sp)+,%d0-%d3
rts" );

et tu declares void attend(unsigned short)

faut pas mettre a et bgrin
avatar
納 豆パワー!
I becamed a natto!!!1!one!

11

Tout depend ce que l'on veut faire...
Xlib est open source.. faut en profitersmile
#define XGPlanc(y) ({ asm volatile ("move.l %0,%%a0;bsr GPlan":: "a" (y): "a0");})
#define XBWPlanc(y) ({ asm volatile ("move.l %0,%%d0;bsr BWPlan":: "d" (y): "d0");})
#define XClrGPlan() asm volatile ("pea (%a0);bsr ClrGPlan;move.l	(%a7)+,%a0")
#define XClrLPlan() asm volatile ("pea (%a0);bsr ClrLPlan;move.l	(%a7)+,%a0")
#define XClrDPlan() asm volatile ("pea (%a0);bsr ClrDPlan;move.l	(%a7)+,%a0")
#define XCpyGPlanToLCD() asm volatile ("pea (%a0);bsr CpyGPlan;move.l	(%a7)+,%a0")
#define XCpyDPlanToLCD() asm volatile ("pea (%a0);bsr CpyLPlan;move.l	(%a7)+,%a0")
#define XCpyLPlanToLCD() asm volatile ("pea (%a0);bsr CpyDPlan;move.l	(%a7)+,%a0")


ou alors:
void XGPlanc(register void *GPlan asm("a0")); 
void XBWPlanc(register int x asm("d0")); 
void XClrGPlan();
void XClrLPlan();
void XClrDPlan();
void XCpyGPlanToLCD();
void XCpyGPlanToInvLCD();
void XCpyDPlanToLCD();
void XCpyDPlanToLLCD();
void XCpyLPlanToLCD();
void XCpyLPlanToDLCD();

/////////////////////////////////////////////////////////////////////////////////

asm("
virtual_pc:
	dc.l	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

XGPlanc:
	move.l	%a0,CGplan
	rts

XBWPlanc:
	tst.w		%d0
	beq			XLPlan
	move.w	#3840,CBWplan
	rts	
XLPlan:
	move.w	#0,CBWplan
	rts

XClrGPlan:
	move.l	CGplan,%a0
	lea			7680(%a0),%a0
	bsr.s		XClrPlan
	bsr.s		XClrPlan 
	rts
...
")


XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

12

SSSSSTTTTTTTTTTTTOOOOOOOOOPPPPPPPPPPPP

ne derivons pas merci...

je demane juste une solution a mon petit exemple , c tout, rien d'autre... donc ?
Ancien pseudo : lolo

13

open source rulez !
avatar
納 豆パワー!
I becamed a natto!!!1!one!

14

asm("add.l %1,%0":"+g"(a):"0"(a),"g"(b));
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

15

-

16

bon, en gros, voila ma source :
#define USE_TI92PLUS
#define OPTIMIZE_ROM_CALLS
#define SAVE_SCREEN
#include <tigcclib.h>

void _main(void)
{
  int a;
  int b;
  a=10;
  b=20;
  asm("add.l %1,%0":"+g"(a):"0"(a),"g"(b)); 
  clrscr();
  FontSetSys(F_6x8);
  printf("%i",a);
  ngetchx();
}


ben... kan je compile il me sort une error... confus
a oui, petit precision, je n'y connais (plus) rien en ASM ... tsss
[edit]Edité par lolo le 14-04-2002 à 18:16:04[/edit]
Ancien pseudo : lolo

17

-

18

ba il voulait mettre pre, il s'est trompé c tout roll

19

exact, et c corrigé....smile

donc pour ma petit erreur ?
Ancien pseudo : lolo

20

bon, je relance : >post 16 > c koi l'erreur ???

confusmadconfus
Ancien pseudo : lolo

21

Voilà le asm() corrigé:
asm("add.l %2,%0":"=g"(a):"0"(a),"g"(b));
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

22

impecable, ca marche, mais en fait,
asm("add.l %2,%0":"=g"(a):"0"(a),"g"(b));  
 
, ca veux dire koi ? c koi la syntaxe ?
Ancien pseudo : lolo

23

avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

24

heu, comment dire .... y a pa un resumé en francais kelkepart ? confus
Ancien pseudo : lolo

25

en fait voila, mon vrai pb, est le suivant :
je cherche un algo d'effacement de memoire (en fait, un ecran virtuel) dont l'adresse de depart est ECR_TEMP et dont la taille à effacer est TAILLE. c'est a dire :

TAILLE : nb de pixel de la TI92+ ou de la TI89
ECR_TEMP a été obtenu par un malloc de la taille TAILLE

cette ecran virtuel n'est pas blanc...

ben je veux un truc du style

asm("....
...")

et k'en sortie, l'ecran virtuel ECR_TEMP soit vide (rempli de 0 koi...)

mais mon gros pb, c ke je n'y connais rien en ASM voila....

donc si kelkun a un algo ASM et k'il pouvais l'adapter pour qu'il fonctionne avec ECR_TEMP et TAILLE, ce serait vachement sympa.... merci love
Ancien pseudo : lolo

26

Tu connais memset ? Ca reste relativment efficace. Et en general suffisant.

27

-

28

vi, je connais tres bien memset vue ke c justement ce ke j'utilise pour l'instant, et il est trop long !!!!! rien que de faire un appel a cette procedure me fait perdre trop de temps ( g essayé avec un meme set d'un seul octet)...

c pour ca que je veux directement remplacer par un code ASM....
Ancien pseudo : lolo

29

Attends, si tu dis que meset est trop long, c'est que tu dois plutot repenser ton code, a mon avis.

30

Clair attention
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.