On peux donc faire un For Next en asm comme ceci :
Code : Tout sélectionner
sph.b=4
!MOV al,[v_sph]
!MOV cx,7
! asm:
!ADD al,1
!loop asm
!MOV [v_sph],al
Pourtant, la boucle est infinie quand j'essaye !!!!!
Mon livre est buggué ??????
Code : Tout sélectionner
sph.b=4
!MOV al,[v_sph]
!MOV cx,7
! asm:
!ADD al,1
!loop asm
!MOV [v_sph],al
Code : Tout sélectionner
sph.b=4
!MOV al,[v_sph]
!MOV ecx,7
! asm:
!ADD al,1
!loop asm
!MOV [v_sph],al
Debug sph
Ha ok (tant mieux d'ailleur, ca nous permet de faire un for next plus grand !!flaith a écrit :loop ne fonctionne qu'avec ECXresultat = 11Code : Tout sélectionner
sph.b=4 !MOV al,[v_sph] !MOV ecx,7 ! asm: !ADD al,1 !loop asm !MOV [v_sph],al Debug sph
Code : Tout sélectionner
sph.b=4
!MOV al,[v_sph]
!MOV cl,7
! asm:
!ADD al,1
!loop asm
!MOV [v_sph],al
Nonflaith a écrit :ca devrait mieux le faire maintenantCode : Tout sélectionner
sph.b=4 !MOV al,[v_sph] !MOV cl,7 ! asm: !ADD al,1 !loop asm !MOV [v_sph],al
Code : Tout sélectionner
sph.b=4
!MOV ecx,1222555444 ;ne touche pas cette ligne (simulation d'un ecx rempli)
!MOV al,[v_sph]
!MOV cl,7 ; a toi de corriger l'erreur quelque part ici (2 choix)
! asm:
!ADD al,1
!loop asm
!MOV [v_sph],al
Debug sph
n' oublier pas que vous metez le resustat dans un octect "al"flaith a écrit :ah ouais effectivement, va falloir comprendre ce phénomène !!!
Code : Tout sélectionner
sph.l=4
! MOV ecx,1222555444 ;ne touche pas cette ligne (simulation d'un ecx rempli)
! MOV eax,[v_sph]
! MOV cl,7 ; a toi de corriger l'erreur quelque part ici (2 choix)
!asm:
! ADD eax,1
! loop asm
! MOV [v_sph],eax
MessageRequester("sph",Str(sph))
Figure toi que j'ai pensé EXACTEMENT la meme chose et pourtant, avec d'autre ECX, le resultat reste 11 !!!tonton a écrit :n' oublier pas que vous metez le resustat dans un octect "al"flaith a écrit :ah ouais effectivement, va falloir comprendre ce phénomène !!!
le 11 dans "al" est une coinscidence
metez sur eax vous aurez le bon compte
En fait, on a 2 choix : Soit Xoré ECX, soit mettre 7 dans ECX !flaith a écrit :je viens de voir, en effet, dès que je teste ca :ca ne fait plus 11, donc c'est carrement logiqueCode : Tout sélectionner
sph.l=4 ! MOV ecx,1222555444 ;ne touche pas cette ligne (simulation d'un ecx rempli) ! MOV eax,[v_sph] ! MOV cl,7 ; a toi de corriger l'erreur quelque part ici (2 choix) !asm: ! ADD eax,1 ! loop asm ! MOV [v_sph],eax MessageRequester("sph",Str(sph))
Code : Tout sélectionner
sph.b=4
!MOV al,[v_sph]
!Xor ecx,ecx
!MOV cl,7
! asm:
!ADD al,1
!loop asm
!MOV [v_sph],al
Code : Tout sélectionner
sph.b=4
!MOV al,[v_sph]
!MOV Ecx,7
! asm:
!ADD al,1
!loop asm
!MOV [v_sph],al