PureBasic

Forums PureBasic
Nous sommes le Mar 25/Juin/2019 19:45

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 6 messages ] 
Auteur Message
 Sujet du message: Débutant
MessagePosté: Lun 25/Nov/2013 18:53 
Hors ligne

Inscription: Mer 14/Sep/2011 16:59
Messages: 898
Il y a longtemps que je n'ai pas programmé en assembleur et "jamais" sous PB et puis il manquait une rubrique pour le deboguage...

Quelqu'un peut-il me faire fonctionner ce code (et me dire ce qui cloche si possible :) )

Code:
DataSection
  monthlen:
  Data.b 31,  28,  31,  30,  31,  30,  31,  31,  30,  31,  30,  31, 31,  29,  31,  30,  31,  30,  31,  31,  30,  31,  30,  31
EndDataSection

Global debugexx=0

Procedure MDToDayNum(M, D, LeapYearFlag)
 
  ;Static monthlength;pas réussi à faire fonctionner avec le MOVZX même avec so_nomprocedure.v_nominfo

  Protected.i monthlength  ;integer est-il le bon choix pour 32b et 64b ?
  monthlength=?monthlen
  ;Debug monthlength
 
  EnableASM
  MOV   ebx, LeapYearFlag            ; ebx := LeapYearFlag
  MOV   edx, M
  ;Je veux : eax := MonthLen[M - 1 + LeapYearFlag]
  ;MOVZX   eax, [p.v_monthlength + edx -1 +ebx] ; pourquoi ça ne fonctionne pas ?
  MOVZX   eax, byte[p.v_monthlength] ; essai de deboggage
 
  ;------------------------
  MOV   debugexx, eax   
  ; Debug debugexx   ;attention debug change le eax
  ;------------------------   
  DisableASM
  ProcedureReturn
EndProcedure

Debug MDToDayNum(1, 2, 1) ; mauvais
Debug PeekB(?monthlen)    ; bon
Debug debugexx            ; mauvais



Mesa.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Débutant
MessagePosté: Lun 25/Nov/2013 22:53 
Hors ligne

Inscription: Sam 23/Fév/2008 17:58
Messages: 555
bonjour Mesa

Peut-être comme cela si j'ai bien compris
je n'ai gardé la section data que pour le debug.
Mais à quoi sert le paramètre D ? le jour du mois ? La formule complète serait opportune.

Code:
DataSection
   monthlen:
   Data.b 31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,30,31
EndDataSection
Global debugexx=0
Procedure MDToDayNum(M,D,LeapYearFlag)
   ;Static monthlength;pas réussi à faire fonctionner avec le MOVZX même avec so_nomprocedure.v_nominfo
;    Protected.i monthlength  ;integer est-il le bon choix pour 32b et 64b ?
;    monthlength=?monthlen
;    Debug mp_h(monthlength,32,222)
   ;Debug monthlength
      EnableASM
  LEA ebx,[monthlen]
  MOV edx,0
  XOR eax,eax
   MOV eax,LeapYearFlag            ; ebx := LeapYearFlag
   MOV edx,M
   SUB edx,2
   ADD eax,edx
   XLATB
   ;Je veux : eax := MonthLen[M - 1 + LeapYearFlag]
   ;MOVZX   eax, [p.v_monthlength + edx -1 +ebx] ; pourquoi ça ne fonctionne pas ?
   
   ;------------------------
   MOV debugexx,eax
   ; Debug debugexx   ;attention debug change le eax
   ;------------------------
   DisableASM
   ProcedureReturn
   !monthlen:
   !DB 31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,30,31
EndProcedure

Debug MDToDayNum(1,2,1) ; bon
Debug PeekB(?monthlen)    ; bon
Debug debugexx            ;bon

Debug MDToDayNum(2,2,1) ; bon
Debug PeekB((?monthlen)+1)    ; bon
Debug debugexx            ; bon

Debug MDToDayNum(4,2,1) ; bon
Debug PeekB((?monthlen)+3)    ; bon
Debug debugexx            ; bon


_________________
Il est fort peu probable que les mêmes causes ne produisent pas les mêmes effets.(Einstein)
Et en logique positive cela donne.
Il est très fortement probable que les mêmes causes produisent les mêmes effets.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Débutant
MessagePosté: Mar 26/Nov/2013 11:31 
Hors ligne

Inscription: Mer 14/Sep/2011 16:59
Messages: 898
Merci bien :D

En fait j'essaie de traduire ce code http://mikhajduk.houa.org/EN/index.php?f=Links rubrique projects calendar trouvé par kernadec ici viewtopic.php?f=3&t=14026

La traduction de la fonction isleapyear c'est bien passé, maintenant j'essaie de traduire MDToDayNum(M, D, LeapYearFlag)

[Edition] J'ai réussi, je poste un fil nommé rang du jour

Mesa.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Débutant
MessagePosté: Ven 13/Déc/2013 12:20 
Hors ligne

Inscription: Mer 14/Sep/2011 16:59
Messages: 898
Je dois être miro aujourd'hui mais je ne trouve pas e fichier PureBasic.asm.

Il est où ?

Merci.

M.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Débutant
MessagePosté: Ven 13/Déc/2013 13:47 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 25/Avr/2008 11:14
Messages: 1305
bonjour Mesa
pour purebasic.asm
je l'ai a la racine du répertoire Purebasic
et dans Purebasic\Examples\Sources

Cordialement


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Débutant
MessagePosté: Sam 14/Déc/2013 10:32 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 25/Avr/2008 11:14
Messages: 1305
bonjour Mesa
j'ai contacté Mikołaj Hajduk pour lui demander une version de sa bibliothèque dans un autre langage
il m'as répondu qu'il allait mettre sur son site une version en langage C dans quelques temps.

Vraiment sympa Mikołaj

Cordialement


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 6 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye