Forum Graph100

Forum Graph100

Vous n'êtes pas identifié.

Annonce

Bonjour et bienvenue sur le nouveau Forum Graph100 !
L'intégralité des données a été transférée sur un forum PunBB et tout les comptes sont fonctionnels avec le même nom d'utilisateur et mot de passe.
Un wiki est aussi disponible avec le même compte ! N'oubliez pas de remettre votre avatar, bon surf !
Pour plus d'informations, consultez ce post.

#1 11 Sep 2002 08:41:45

C@siomax
Programmeur Graph100
Lieu: Grenoble, au QG de fmw-product
Date d'inscription: 03 Feb 2002
Messages: 3042
Site web

commandes de saut

Je voulais savoir les différentes commandes de saut en asm dans le style jz et jne, à quels tests ils correspondent en fait (<=, !=, >, etc...)


:mrd: :mrd:
.·´¯`·.¸.-> Casiomax <-·´¯`·.¸.·

Statut: indéfini

Hors ligne

 

#2 11 Sep 2002 13:29:50

C@siomax
Programmeur Graph100
Lieu: Grenoble, au QG de fmw-product
Date d'inscription: 03 Feb 2002
Messages: 3042
Site web

Re: commandes de saut

c bon g trouvé les différentes commandes de saut, mais g tjrs un pb avec ma routine pour effacer l'écran:

Code:

void clear(void)
{
int i;
dboucle:
asm {
    mov si,i
    mov ax,0
    mov es:[si],ax
    add i,2
    cmp i,3072
    jbe dboucle
}
return;
}

cette routine ne marche pa trop trop, dans le jeu j'ai une ligne en bas à droite qui ne s'efface pas et dans les menus ça fait que dalle, help pliz?!

PS: cette routine est l'équivalent asm de:

Code:

void clear(void)
{
int i;
for(i=0;i<=3072;i+2)
    {
        _SI=i;
        _AX=0;
        asm mov es:[si],ax
    }
}

:mrd: :mrd:
.·´¯`·.¸.-> Casiomax <-·´¯`·.¸.·

Statut: indéfini

Hors ligne

 

#3 12 Sep 2002 13:08:16

2072
Programmeur Graph100
Lieu: Somewherebourg
Date d'inscription: 29 Jan 2002
Messages: 2056
Site web

Re: commandes de saut

es-tu certain que es est égale au segment vidéo ?

ET SURTOUT QUE i ==0 ??????????

elle n'est pas initialisée dans ton code (en asm), elle peut valoir n'importe quoi...


-~2072~-
Paid Emails
[URL=http://www.2072productions.com]2072productions.com[/URL]
[URL=http://www.casiocalc.org]casiocalc.org[/URL]

Hors ligne

 

#4 12 Sep 2002 14:16:06

C@siomax
Programmeur Graph100
Lieu: Grenoble, au QG de fmw-product
Date d'inscription: 03 Feb 2002
Messages: 3042
Site web

Re: commandes de saut

mais pourtant quand je fais int i, j'ai forcément i==0!! non? je me trombe? Sinon d'aprs ce que tu dis je devrais avoir:

Code:

void clear(void) 
{ 
int i=0; 
asm {
   mov ax,0x1A20
   mov es,ax
}
dboucle: 
asm {
   mov si,i 
   mov ax,0 
   mov es:[si],ax 
   add i,2 
   cmp i,3072 
   jbe dboucle 
} 
return; 
} 

mais je me demande comment cette routine change de segment video!!


:mrd: :mrd:
.·´¯`·.¸.-> Casiomax <-·´¯`·.¸.·

Statut: indéfini

Hors ligne

 

#5 12 Sep 2002 15:40:23

KTr
Haut fonctionnaire graph100.com
Lieu: Saint Etienne
Date d'inscription: 19 Mar 2002
Messages: 1909
Site web

Re: commandes de saut

i == 0 ?? ben non et cette erreur (non initialisation) m'a déja couté kk heures de débuggage... Ca fait des truc tro chelou...


(¯`·.¸¸.·´¯`·.¸¸.-> www.ktr.fr.fm  ktr@fr.fm <-.¸¸.·´¯`·.¸¸.·´¯)

Hors ligne

 

#6 13 Sep 2002 10:37:22

C@siomax
Programmeur Graph100
Lieu: Grenoble, au QG de fmw-product
Date d'inscription: 03 Feb 2002
Messages: 3042
Site web

Re: commandes de saut

mais quand tu mets int i, je pense que le compilo affecte un NULL à la variable! or NULL et 0 c'est pareil! Mais bon g pê tort, alors est ce que la routine de mon post précédent peut marcher à votre avis? (sachant qui'l y a deux segs à effacer (0x1A20 et 0x1AA0)


:mrd: :mrd:
.·´¯`·.¸.-> Casiomax <-·´¯`·.¸.·

Statut: indéfini

Hors ligne

 

#7 13 Sep 2002 15:34:23

2072
Programmeur Graph100
Lieu: Somewherebourg
Date d'inscription: 29 Jan 2002
Messages: 2056
Site web

Re: commandes de saut

En pricipe elle devrait marcher.

int i;

ne met en aucun cas i à 0: cela ne fait qu'affecter de la mémoire pour la variable i dans le stack c'est tout, à ce point i contient ce qui ce trouvait à son adresse avant, ça paut être n'importe quoi.

C'est pareil avec malloc() ça ne fait qu'affcter de la mémoire si tu fait :
{
char *buf;

buf = (char *)malloc(50000 * sizeof(char));
}

le programme ne va pas écrire 50000 fois 0 ce qui serait inutile si tu comptes remplir cette zone avec qqch.

si tu veux que buf ne contienne que des 0 il faut utiliser calloc() :

{
char *buf;

buf = (char *)calloc(50000, sizeof(char));
}

@+


-~2072~-
Paid Emails
[URL=http://www.2072productions.com]2072productions.com[/URL]
[URL=http://www.casiocalc.org]casiocalc.org[/URL]

Hors ligne

 

#8 14 Sep 2002 03:15:28

C@siomax
Programmeur Graph100
Lieu: Grenoble, au QG de fmw-product
Date d'inscription: 03 Feb 2002
Messages: 3042
Site web

Re: commandes de saut

ah bah justement je DOIS mettre la valeur de i à 0 sinon ça fera comme tu dis! bon ben je n'ai plus qu'à l'essayer, mais po mntnt, lundi o plus tot.


:mrd: :mrd:
.·´¯`·.¸.-> Casiomax <-·´¯`·.¸.·

Statut: indéfini

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr