Précédent   Forum du club des développeurs et IT Pro > Autres langages > Assembleur > x86 16-bits
x86 16-bits Architecture x86 16 bits et ses outils (assembleurs, debuggers, émulateurs...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 16/10/2012, 16h35   #1
Forthman
Membre expérimenté
 
Avatar de Forthman
 
Homme François
conception mécanique
Inscription : janvier 2005
Messages : 330
Détails du profil
Informations personnelles :
Nom : Homme François
Âge : 37
Localisation : France, Tarn et Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : conception mécanique
Secteur : Industrie

Informations forums :
Inscription : janvier 2005
Messages : 330
Points : 532
Points : 532
Par défaut Fonctionnement INT 21h fonction 2Ch

Bonjour à tous,

J'utilise la fonction 2Ch de l'interruption DOS 21h pour calculer la durée d'exécution
d'un programme. Cette fonction renvoie l'heure au 100ème de seconde. Or, l'horloge système
n'est pas assez précise (valeur à la seconde).

Quelqu'un pourrait-il me dire comment s'y prend DOS pour avoir une telle précision ? Car j'ai bien pensé à utiliser le TIMER0 mais ce dernier ne 'bat' qu'à 18.2Hz

Ou alors il faut paramétrer le TIMER2 en compteur et aller le lire avec l'IRQ8 déclenchée
par le TIMER0 ? ...pfff... compliqué tout ça !
Forthman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2012, 23h30   #2
bifur
Membre habitué
 
passe le balais et l'aspirateur
Inscription : mars 2008
Messages : 111
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : passe le balais et l'aspirateur

Informations forums :
Inscription : mars 2008
Messages : 111
Points : 126
Points : 126
on peut aussi reprogrammer le timer0

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
cli                         ;programme le temporisateur
mov dx,43h                  
mov al,36h                  ;paramˆtres de comptage
out dx,al
jmp $+2
mov dx,40h                 ;diviseur de fr‚quence de l'irq 0 (LSB en premier)
mov ax,2983                ;1193200/f  ;11932: t=10ms  100Hz
out dx,al                               ;5966: t=5ms    200Hz
jmp $+2                                 ;2983: t=2.5ms  400Hz
mov al,ah                  ;puis le MSB
out dx,al
sti
bifur est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 17/10/2012, 10h37   #3
Forthman
Membre expérimenté
 
Avatar de Forthman
 
Homme François
conception mécanique
Inscription : janvier 2005
Messages : 330
Détails du profil
Informations personnelles :
Nom : Homme François
Âge : 37
Localisation : France, Tarn et Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : conception mécanique
Secteur : Industrie

Informations forums :
Inscription : janvier 2005
Messages : 330
Points : 532
Points : 532
Exact ! j'avais fait ça à une époque pour contrôler un jeu de limières

Mais il faut que la nouvelle interruption n'appelle l'ancienne que 18.2 fois par seconde
comme à l'origine... j'avais du oublier 2 ou 3 trucs car ça me modifiait l'heure du DOS
(mais pas la RTC)

merci en tout cas
Forthman est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 00h30.


 
 
 
 
Partenaires

Hébergement Web