Page 1 sur 2

Assembleur

Publié : lun. 10/mai/2004 16:55
par Heis Spiter
Bon j'ai prévu de revoir mon algo pour PGCD en assembleur pour des questions de performance, mais les blèmes commencent déjà !

Code : Tout sélectionner

Procedure PGCD(number1.l, number2.l)
  
  MOV eax, number1
  MOV ebx, number2
  CMP eax, ebx
  JAE _L1
  MOV ecx, eax
  MOV eax, ebx 
  MOV ebx, ecx
  _L1:
    result = 2
    i=0
  ; ZONE DEBUG
  MOV number1, eax
  MOV number2, ebx
  Debug number1
  Debug number2
  ; **********
  
EndProcedure
PGCD(1, 2)
Quelqu'un peut-il m'expliquer pourquoi cela ne fonctionne pas ?

Publié : lun. 10/mai/2004 17:51
par Patrick88
beuh, j'y connait queud'chique mais il me semble qu'il ny'a rien pour faire un "return" à la fin du sous programme _LI...

patrick

Publié : lun. 10/mai/2004 17:55
par Dr. Dri
...

Publié : lun. 10/mai/2004 17:57
par Heis Spiter
Je me suis mal exprimé, le problème n'est pas là. Pour l'instant le blème est que le compilateur ne veut pas de se bout de code a cause du saut/label.

Publié : lun. 10/mai/2004 18:00
par Dr. Dri
...

Re: Assembleur

Publié : lun. 10/mai/2004 18:03
par Anonyme2
Heis Spiter a écrit :Bon j'ai prévu de revoir mon algo pour PGCD en assembleur pour des questions de performance, mais les blèmes commencent déjà !

Code : Tout sélectionner

Procedure PGCD(number1.l, number2.l)
  
  MOV eax, number1
  MOV ebx, number2
  CMP eax, ebx
  JAE _L1
  MOV ecx, eax
  MOV eax, ebx 
  MOV ebx, ecx
  _L1:
    result = 2
    i=0
  ; ZONE DEBUG
  MOV number1, eax
  MOV number2, ebx
  Debug number1
  Debug number2
  ; **********
  
EndProcedure
PGCD(1, 2)
Quelqu'un peut-il m'expliquer pourquoi cela ne fonctionne pas ?

Tu pourrais être plus précis.

C'est quoi le problème ?

T'as une erreur asm ? Tu dois retourner une valeur ?


Ton étiquette (label) _L1 doit être déclarée avec ! devant
!_L1

essaye ça

Code : Tout sélectionner

Procedure PGCD(number1.l, number2.l) 
  MOV eax, number1 
  MOV ebx, number2 
  CMP eax, ebx 
  JAE _L1 
  MOV ecx, eax 
  MOV eax, ebx 
  MOV ebx, ecx 
  ! _L1: 
    result = 2 
    i=0 
  ; ZONE DEBUG 
  MOV number1, eax 
  MOV number2, ebx 
  Debug number1 
  Debug number2 
  ; ********** 
  
EndProcedure 
PGCD(1, 2)

Publié : lun. 10/mai/2004 18:04
par Heis Spiter
Merci Denis, c'est tout ce qu'il me fallait ;)

Publié : lun. 10/mai/2004 19:10
par Dr. Dri
...

Publié : lun. 10/mai/2004 21:12
par Backup
he les gars si vous vous mettez a ecrire en assembleur , on va tous jeter
le purebasic !! :D :D

Publié : lun. 10/mai/2004 21:19
par Flype
moi je trouve çà utile que si on en fait une userlib comme çà après c simple d'emploi comme purebasic

allez y les gars, allez y :roll:

Publié : lun. 10/mai/2004 21:54
par Heis Spiter
Mon bur n'est pas de quitter PureBasic pour l'assembleur, mais d'utiliser Pure afin d'apprendre l'assembleur pour mes futures études.
Car mettre que l'on sait "bien" programmer en Pure sur un CV ca fait joli
Dire que l'on sait programmer en assembleur c'est tout de suite différents
Et d'un point de vue pratique cela me permet d'optimiser des bouts de code !

Publié : mar. 11/mai/2004 7:56
par Dr. Dri
...

Publié : mar. 11/mai/2004 9:16
par Backup
he ! qu'on soit clair !! c'etait une point d'humour !! :D

je pense que vous avez tout a fait raison !!

pis a relire vos oeuvres , ont apprend !! :D

Publié : mar. 11/mai/2004 9:55
par Dr. Dri
...

Publié : mar. 11/mai/2004 10:02
par Dr. Dri
...