Afficher l'heure avec la memoire video

Signaler
Messages postés
17
Date d'inscription
lundi 16 janvier 2006
Statut
Membre
Dernière intervention
4 avril 2006
-
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
-
Bonjour,

Je voudrais afficher l'heure grace à la mémoire vidéo car elle permet d'économiser une interuption.
Quand je le lance sous afd, j'ai bien dans CX l'heure en binaire (1136) et dans DX les seconde.
Mais je n'arrive pas à l'afficher à l'écran. Merci
Donc voila ce que je fait:

.MODEL SMALL
.STACK
.DATA
.CODE



MAIN:

MOV AX, @DATA
MOV DS, AX


MOV SI, 0

MOV AH, 02h
INT 1Ah
MOV AL, CH
MOV CH, 7
MOV CL, AL
Mov Ax, 0B800h ;Ax prend la valeur hexa B800
Mov Es, Ax ;Adresse de la mémoire vidéo
MOV ES:[SI], CX
INT 21h

MOV AX, 4C00h
INT 21h

END

4 réponses

Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1
salut,

1 - je ne sais pas si l'information est encore valable a notre époque, tu testera, une écriture dans la mémoire vidéo doit etre d'une taille d'un octet
mov es:[si],cl
mov es:[si+1],ch

2 - tu est sur que cette fonction te retourne de l'ascii et pas plutot du BCD ?

MOV AL, CH
MOV CH, 7
MOV CL, AL
Mov Ax, 0B800h ;Ax prend la valeur hexa B800
Mov Es, Ax ;Adresse de la mémoire vidéo

->
mov ax,0xB800
mov cl,7
mov es,ax
xchg cl,ch

@++
Messages postés
17
Date d'inscription
lundi 16 janvier 2006
Statut
Membre
Dernière intervention
4 avril 2006

Si tu as raison l'heure est en Binary Coded decimal. Comment faire pour l'afficher ?
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1
re,

concertion bcd -> ascii ( '0' + num decimal )
mov al,cl
mov ah,cl
and al,0Fh
shr ah,4
add ax,'00'
mov es:[si],al
mov es:[si+2],ah
mov es:[si+1],7
mov es:[si+3],7

t'aurais pu trouver tout seul...

@++
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1
oups, t'auras le n° a l'envers là