Un ptit coup de main svp...c po difficile...

cs_anosan Messages postés 19 Date d'inscription samedi 8 février 2003 Statut Membre Dernière intervention 3 novembre 2004 - 26 juil. 2003 à 21:59
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 - 28 juil. 2003 à 20:45
Salut tout le monde,
J'aurais besoin d'un coup de main en prog asm:
J'ai besoin de traiter un caractère; Si sa valeur hexa >=22h, alors je lui enlève 22h, et ainsi de suite pour avoir la valeur hexa du caractère comprise entre 0 et 21h.
C'est pas difficile, mais je doit passer à travers qq chose...
Merci d'avance.
@+ .

7 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 juil. 2003 à 23:07
al contenant valeur:
LBL1:
cmp al, 22h
jb short LBL2
sub al, 22h
jmp short LBL1
LBL2:
suite ici

BruNews, ciao...
0
cs_Dean Messages postés 500 Date d'inscription mardi 16 avril 2002 Statut Membre Dernière intervention 2 août 2004
27 juil. 2003 à 14:02
0
cs_Dean Messages postés 500 Date d'inscription mardi 16 avril 2002 Statut Membre Dernière intervention 2 août 2004
27 juil. 2003 à 14:06
Je ne suis pas sûr que ça marche, mais bon je tente le coup :

movzx al, bChar
div 22h
mov bRemainder, ah

C'est peut-être un peu plus court en passant par le modulo.

Dean - http://charloweb.ipfixe.net
0
cs_anosan Messages postés 19 Date d'inscription samedi 8 février 2003 Statut Membre Dernière intervention 3 novembre 2004
27 juil. 2003 à 14:21
J'ai trouvé mon erreur: j'avais utilisé un saut jbe, au lieu de jb...et j'avais pas remarqué!!! J'ai de la Mxxxx ds les yeux...lol.
Je suis passé ensuite avec une version modulo, et ca marche bien.
Merci les gars.
++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
27 juil. 2003 à 20:59
movzx al, bChar

n'existe pas, c'est:
movzx ax, bChar

ou
movzx eax, bChar


mais
movzx ax, bChar

dans ce cas

Core Breaker :)
0
cs_Dean Messages postés 500 Date d'inscription mardi 16 avril 2002 Statut Membre Dernière intervention 2 août 2004
28 juil. 2003 à 16:59
Mouais OK, je savais que quelque chose n'allait pas dans mon code de toute manière.

Mais ce qui compte c'est l'idée non ? Je ne sais pas laquelle des deux solutions (boucle ou division) est la plus rapide.
Je pense que c'est ça qui serait intéressant à savoir.

Dean - http://charloweb.ipfixe.net
0
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
28 juil. 2003 à 20:45
Je t'affirme que c'est la division car les sauts sont très coûteux en cycle machine surtout s'ils sont near ou far. Les short jumps sont les moins coûteux mais au final plusieurs itération même 2 sont gourmands.

Core Breaker :)
0
Rejoignez-nous