IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

x86 32-bits / 64-bits Assembleur Discussion :

Delay sous Windows XP


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #1
    Membre habitué Avatar de Nico*3-3
    Inscrit en
    Octobre 2004
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 164
    Points : 145
    Points
    145
    Par défaut Delay sous Windows XP
    Bonjour à tous !

    Voilà je voudrais simplement savoir comment on fait pour aquérir
    l'heure système.

    Je sais que l'Int 21h fonction 2Ah donne la date, mais pas l'heure.
    Voilà c'est tout...

    Merci d'avance.
    Tout a une fin, sauf l'infini...
    Projet SKAN : Développement commun d'OS

    Nico*3-3

  2. #2
    Invité
    Invité(e)
    Par défaut Réponse
    Bonsoir,

    C'est la fonction 2CH de l'intérruption 21H que tu dois utiliser.

    En entrée :
    AH = 2Ch

    En sortie :
    CH = Heures
    CL = Minutes
    DH = Secondes
    DL = Centièmes de seconde

    Bonne soirée

  3. #3
    Membre habitué Avatar de Nico*3-3
    Inscrit en
    Octobre 2004
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 164
    Points : 145
    Points
    145
    Par défaut
    Bonjour et merci et beaucoup !

    Une autre question en rapport : Je veux faire un test pour un delay.
    J'ai vu un thread là dessus et j'ai testé ce code dans un programme :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Delay:
     
                                  mov               ah, 86h
                                  mov               ecx, 0FFFFFFFFh
                                  mov               dx, cx
                                  sar               ecx, 16
     
                                  int               15h
    Ca ne fonctionne pas...
    Dans ce cas, sar ecx, 16 ne sert à rien mais c'est pour faire une future procédure.

    Quelqu'un veut bien me dire ce qui ne va pas ?

    Merci.
    Tout a une fin, sauf l'infini...
    Projet SKAN : Développement commun d'OS

    Nico*3-3

  4. #4
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 416
    Points
    59 416
    Billets dans le blog
    2
    Par défaut
    Bonjour !
    Citation Envoyé par Nico*3-3
    Ca ne fonctionne pas...
    Es-tu sûr ? Avec la fonction 86h de l'interruption 15h, la valeur du délai (en microsecondes) est stockée dans le couple CX:DX.
    Dans ton code, tu demandes un délai de FFFF:FFFFh microsecondes (car l'instruction SAR réinjecte le bit 15, ce qui ne change rien à la valeur de CX). Ca fait donc 4.294.467.295 microsecodes, soit 4.294 secondes !
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Désolé de remonter un vieux topic, mais en relisant ça une question m'est venu à l'esprit : L'INT 21h est celle du DOS nan ? Si je veux obtenir l'heure système ( CMOS ) à partir d'un autre OS (Linux, ou autre) je fait comment (Si c'est possible ! )?

    Mici ^^

    Psy³
    The problem is someplace between the chair and the keyboard

  6. #6
    Invité
    Invité(e)
    Par défaut Réponse
    Bonsoir,

    L'int 21h est bien une interruption DOS. Si tu le souhaites, tu peux également utiliser la fonction 02h de l'int 1Ah du BIOS.

    Entrée :
    AH = 02h
    Sortie :
    CH = Heures
    CL = Minutes
    DH = Secondes

    Le carry flag est modifié en conséquence : CF=0 : pas de problèmes ; CF=1 la batterie de l'horloge est déchargée.

    Cette fonction permet de lire l'heure de l'horloge temps réel alimentée par batterie. Comme ce type d'horloge n'existe que sur les AT, seul ce modèle de PC soutient cette fonction.
    J'espère que tout ceci répondra à ta question.
    Bonne nuit !

  7. #7
    Membre habitué Avatar de Nico*3-3
    Inscrit en
    Octobre 2004
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 164
    Points : 145
    Points
    145
    Par défaut
    Salut tout le monde ! Bonne Année et désolé, ah les vacances...

    Je vais donner quelques précisions de plus :

    Je fais (pour l'instant) un test .exe sous DOS pour faire une attente. Je veux faire une procédure "Delay" qui prend dans en paramètre dans ecx le nombre de millisecondes à attendre. C'est ecx pour que ce soit plus simple : au lieu de s'embêter avant chaque appel à faire le calcul pour mettre le paramètre dans cx:dx, on le met directement dans ecx et la procédure fera les calculs pour nous. La procédure doit mettre cx dans dx (le low word) et décaler ecx de 16 bits vers la droite pour avoir le high word dans cx. On retombe donc en cx:dx.

    Mais avant de faire cela, je veux faire un test.

    Voilà donc mon code complet avec FASM (car ça viens peut-être de l'extérieur):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
                                  Format            MZ
                                  entry             CODE_SEG:Start
     
    segment CODE_SEG
     
     
      Start:
     
        Initialise:
                                  mov               dx, DATA_SEG
                                  mov               ax, EXTRA
                                  mov               ds, dx
                                  mov               es, ax
     
        Delay:
     
                                  mov               ah, 86h
                                  mov               ecx, 0FFFFFFFFh
                                  mov               dx, cx
                                  sar               ecx, 16
     
                                  int               15h
     
      Fin:
                                  mov               ax, 4C00h
                                  int               21h
     
    segment DATA_SEG
     
     
    segment EXTRA
    Voilà, ça ne plante pas mais ça ne fait aucune attente.
    Et même en remplaçant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                                  mov               ecx, 0FFFFFFFFh
                                  mov               dx, cx
                                  sar               ecx, 16
    Par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                                  mov               cx, 0FFFFh
                                  mov               dx, 0FFFFh
    Ca fait la même chose.
    Alors je me suis dit : c'est peut-être ax car il est initialisé avec l'adresse d'un segment et ah est ensuite mis à 86h.Mais al ets initialisé avec une valeur quelconque. Alors j'ai remplacé :

    Par:

    Toujours pareil. Je ne sais pas ce qui ne vas pas.

    Merci d'avance pour vos réponses.
    Tout a une fin, sauf l'infini...
    Projet SKAN : Développement commun d'OS

    Nico*3-3

  8. #8
    Membre habitué Avatar de Nico*3-3
    Inscrit en
    Octobre 2004
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 164
    Points : 145
    Points
    145
    Par défaut
    Je suis allé faire un tour chez Ralph Brown (http://www.ctyme.com/intr/rb-1525.htm), et j'ai vu que la fonction 86h renvoie CF à 1 s'il y a erreur.

    J'ai donc rajouté un petit bout de code après l'appel de l'interruption :

    Et ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      Error:
     
                                  mov               dl, 7
                                  mov               ah, 02h
                                  int               21h
                                  jmp               Fin
    Pour déclencher un bip en cas d'erreur.
    Et ce bip... se déclenche à chaque fois .

    Qu'est-ce qui pourrait me sauver ?
    Je vous invite à regarder vous aussi chez Ralph Brown si vous voulez m'aider.

    Merci beaucoup.
    Tout a une fin, sauf l'infini...
    Projet SKAN : Développement commun d'OS

    Nico*3-3

  9. #9
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 416
    Points
    59 416
    Billets dans le blog
    2
    Par défaut
    Désolé de me répéter mais, si je ne me trompe pas, ton couple CXX vaut FFFF:FFFFh microsecondes, qui est une valeur énorme (et qui déclenche peut-être l'erreur).
    D'ailleurs, je ne comprends pas bien le but de ton instruction de décalage SAR sur le registre ECX.

    As-tu essayé une valeur plus faible (500.000 ou 1.000.000 microsecondes, par exemple) ?
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  10. #10
    Membre habitué Avatar de Nico*3-3
    Inscrit en
    Octobre 2004
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 164
    Points : 145
    Points
    145
    Par défaut
    Oui j'ai bien essayé plusieurs valeurs plus petites, même CX à 0, même tout à zéro, même des valeurs multiples de 977 et il me fait toujours le bip d'erreur...

    Je ne sais pas si j'appelle bien l'interruption, je ne sais vraiment pas ce qui n'est pas bon dans mon code.

    Aidez-moi s'il vous plaît

    Merci d'avance...
    Tout a une fin, sauf l'infini...
    Projet SKAN : Développement commun d'OS

    Nico*3-3

  11. #11
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 416
    Points
    59 416
    Billets dans le blog
    2
    Par défaut
    Quel est ton OS ?

    Si ça peut te rassurer, la fonction 86h de l'interruption 15h ne fonctionne pas sous Windows 2000 (et donc pas sous XP non plus).
    Ca ne plante pas mais ça ne fait aucune attente.

    Par contre, ça marche très bien sous DOS pur et sous Windows 3.1x. J'imagine que ça doit aussi fonctionner sous Win9x/Me.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  12. #12
    Membre habitué Avatar de Nico*3-3
    Inscrit en
    Octobre 2004
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 164
    Points : 145
    Points
    145
    Par défaut
    Euh... Oui j'ai XP.
    D'accord ça marche pas, mais je fais commen alors : : :

    Merci Alcatîz.
    Tout a une fin, sauf l'infini...
    Projet SKAN : Développement commun d'OS

    Nico*3-3

  13. #13
    Membre habitué Avatar de Nico*3-3
    Inscrit en
    Octobre 2004
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 164
    Points : 145
    Points
    145
    Par défaut
    J'ai aussi essayé en détournant l'interruption 70h mais ça ne fais aucune attente, pareil !

    Voilà mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
                            Format          MZ
                            entry           CODE_SEG:Start
     
    segment CODE_SEG
     
     
      IntClock70h:
     
                            cmp             byte [AddClock], 0
                            jz              $+1
     
                            inc             [Clock]
     
                            iret
     
      Start:
     
                            mov             ax, DATA_SEG
                            mov             ds, ax
     
        InitVector:
     
                            xor             dx, dx
                            mov             es, dx
     
                            mov             eax, [es:70h*4]
                            mov             [Vector], eax
     
                            mov             word [es:70h*4], IntClock70h
                            mov             [es:70h*4+2], cs
     
     
      Delay:
     
                            mov             [AddClock], 1
     
                            cmp             [Clock], 0FFFFFFh
                            jb              $-1
     
      Fin:
     
        RestoreVector:
     
                            xor             dx, dx
                            mov             es, dx
     
                            mov             eax, [Vector]
                            mov             [es:70h*4], eax
     
                            mov             ax, 4C00h
                            int             21h
     
     
     
    segment DATA_SEG
     
      Clock                 dd              0
      AddClock              db              0
      Vector                dd              ?
    Ca ne fais rien, comme d'habitude...
    Là aussi ça doit être à cause de Windows XP, mais comment faire ? Il dois bien y avoir un moyen.
    Tout a une fin, sauf l'infini...
    Projet SKAN : Développement commun d'OS

    Nico*3-3

  14. #14
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 416
    Points
    59 416
    Billets dans le blog
    2
    Par défaut
    Tout dépend de la précision dont tu as besoin : si tu peux te contenter de multiples de 1/18,2 secondes, tu peux détourner l'interruption 1Ch et utiliser l'horloge système comme compteur.
    Tu peux trouver notamment un exemple expliqué de détournement de cette interruption dans ce thread : http://www.developpez.net/forums/vie...&highlight=1ch.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  15. #15
    Membre habitué Avatar de Nico*3-3
    Inscrit en
    Octobre 2004
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 164
    Points : 145
    Points
    145
    Par défaut
    Merci Alcatîz,

    Mais j'ai essayé (pour ne pas perdre de temps) simplement en modifiant le programme ci-dessus, c'est-à-dire que j'ai remplacé 70h par 1Ch etc...
    Sans passer par le DOS pour changer le vecteur.

    Ca ne marche pas non plus...
    Suis-je obligé de passer par le DOS ? Je vais essayer et je dirais ce que ça me fais.
    Tout a une fin, sauf l'infini...
    Projet SKAN : Développement commun d'OS

    Nico*3-3

  16. #16
    Membre habitué Avatar de Nico*3-3
    Inscrit en
    Octobre 2004
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 164
    Points : 145
    Points
    145
    Par défaut
    J'ai essayé en modifiant les vecteur d'interruption du DOS et ça fait, comme toujours, aucune attente...

    Est-ce que quelque chose d'autre pourrait me permettre de faire un delay (à part changer d'OS ) ?
    Pourquoi est-ce que Windows XP bloque-t-il l'accès a ces fonctions ?

    Merci d'avance...
    Tout a une fin, sauf l'infini...
    Projet SKAN : Développement commun d'OS

    Nico*3-3

  17. #17
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 416
    Points
    59 416
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Nico*3-3
    J'ai essayé en modifiant les vecteur d'interruption du DOS et ça fait, comme toujours, aucune attente...
    Il me semble que, même sous XP, l'int 1Ch devrait être utilisable sur la machine virtuelle. Tu n'observes aucune incrémentation de compteur, rien du tout ?

    Au fait, est-ce XP Home ou XP Pro ? Je crois que XP Home est bridé au niveau de l'émulation du mode réel (si je me trompe, merci de me corriger !).

    Tu peux éventuellement essayer de passer en mode de compatibilité Win9x :
    http://www.microsoft.com/windowsxp/u...appcompat.mspx (ça ne coûte rien d'essayer )
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  18. #18
    Membre habitué Avatar de Nico*3-3
    Inscrit en
    Octobre 2004
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 164
    Points : 145
    Points
    145
    Par défaut
    Bonjour,

    J'ai XP Home Edition...
    J'ai essayé de passer en mode compatibilité mais rien n'y fais, ça ne fonctionne pas. J'ai testé avec 3 programmes : un qui passe par l'interruption 15h fonction 86, un qui détourne l'int 70h et un qui détourne l'int 1Ch, mais aucun des trois ne fonctionne.

    J'ai pas de chance .
    Tout a une fin, sauf l'infini...
    Projet SKAN : Développement commun d'OS

    Nico*3-3

  19. #19
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 416
    Points
    59 416
    Billets dans le blog
    2
    Par défaut
    Tu n'aurais pas, au fond d'un tiroir, un CD d'installation de Win 98 par exemple ? Sans aucun problème, tu peux créer un multiboot XP/98 (même si XP est déjà installé).
    Ca te permettrait au moins d'exécuter tes programmes DOS sans tous ces problèmes.

    Dans un autre registre (haha), il existe de bons émulateurs de machines 8086 et autres. C'est peut-être aussi une piste pour toi ?

    Désolé de penser à ce genre de solution mais je suis vraiment à court d'imagination . Google regorge d'allusions à la non-fonctionnalité des fonctions du BIOS de gestion de l'horloge système sur XP mais ne regorge pas de solutions miracles.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  20. #20
    Membre habitué Avatar de Nico*3-3
    Inscrit en
    Octobre 2004
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 164
    Points : 145
    Points
    145
    Par défaut J'ai trouvé 2 moyens détournés !
    T'es à cour d'imagination :
    Eh bien pas moi

    Je viens de trouver deux solutions, une avec le DOS et une avec le BIOS !

    DOS : En partant de la question de début de ce topic, la fonction 2Ch donne l'heure système, avec DH pour les secondes... En partant de là, si on veut faire une attente de 4 secondes par exemple, voilà comment on procède : On execute l'int une fois pour avoir les secondes, ensuite on les met dans un registre temporaire, on additionne ce registre du nombre de secondes qu'on veut attendre, ensuite on fait une boucle qui appelle encore l'int et on teste les valeurs de dh (secondes) et du registre temporaire. Jusqu'à ce que DH atteigne la valeur du registre temp !

    BIOS : La fonction 00h de l'int 1Ah du BIOS renvoie dans cx:dx le nombre de tops d'horloge depuis minuit, donc à partir de là on fait pareil que pour le DOS !


    Voilà une solution qui me permet de faire une attente.
    Je met le tag résolu mais je considère que ce n'est qu'à moitié résolu, car je ne peux toujours pas utiliser la fonction 86h de l'int 15h, donc si quelqu'un a d'autres propositions à faire, merci beaucoup !

    Nico*3-3
    Tout a une fin, sauf l'infini...
    Projet SKAN : Développement commun d'OS

    Nico*3-3

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. quel langage choisir pour faire de script sous windows
    Par pas05 dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 18/11/2002, 22h42
  2. Assembleur sous Windows et sous Linux
    Par Bibouda dans le forum x86 32-bits / 64-bits
    Réponses: 3
    Dernier message: 28/10/2002, 07h55
  3. Tester connexion Internet active sous Windows
    Par Altau dans le forum Développement
    Réponses: 3
    Dernier message: 12/08/2002, 12h43
  4. Pas de fork sous Windows?
    Par chezjm dans le forum POSIX
    Réponses: 8
    Dernier message: 11/06/2002, 12h15
  5. OmniORB : code sous Windows et Linux
    Par debug dans le forum CORBA
    Réponses: 2
    Dernier message: 30/04/2002, 17h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo