Afficher l'heure du bios

Description

Cette source permet de lire la date du bios(écrite en BCD) et l'affiche en décimal.
Le fichier 'libshow.inc' (dans le zip) contient une macro qui affiche un nombre entier stocké dans AX.
Le fichier est compilé avec TASM.

Source / Exemple :


include libshow.inc
.386

data segment use16
msg1 db 'lecture de la date',10,13,'$'
msg2 db 'erreur de lecture !',10,13,'$'
barre db ':','$'
heu db 0
min db 0
sec db 0
data ends

pile segment stack
db 256 dup(?)
pile ends

code segment use16
assume cs:code,ds:data,ss:pile
MainProc:

;initialise segment
mov ax,data
mov ds,ax
mov es,ax

push cx dx

mov ah,02h
int 1Ah
jc erreur

fonctionne:
;enregistrement des resultats
mov sec,dh
mov min,cl
mov heu,ch

lea dx,msg1
mov ah,09h
int 21h

;affiche l'heure
xor ax,ax
mov al,heu
mov cl,4
shr al,cl
ecrit_ent
mov al,heu
and al,00001111b
ecrit_ent

lea dx,barre
call affiche_string

;affiche la minute
xor ax,ax
mov al,min
mov cl,4
shr al,cl
ecrit_ent
mov al,min
and al,00001111b
ecrit_ent

lea dx,barre
call affiche_string

;affiche la seconde
xor ax,ax
mov al,sec
mov cl,4
shr al,cl
ecrit_ent
mov al,sec
and al,00001111b
ecrit_ent

pop dx cx

jmp quitter

affiche_string proc near
mov ah,09h
int 21h
ret
affiche_string endp

erreur:
lea dx,msg2
mov ah,09h
int 21h

quitter:
mov ah,4ch
int 21h

code ends

end MainProc

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.