date:
	pushad
	mov eax, chMois
	mov edi, indexChMois
	mov ecx, 12
	call chargeListe
	mov eax, chJours
	mov edi, indexChJours
	mov ecx, 7
	call chargeListe
	cli
	mov edi, Annee
	xor ah, ah
	mov ecx, 4
.boucleDate:
	mov al, cl	; Registres de date du RTC du CMOS
	add al, 5
	
	out 0x70, al
	in al, 0x71
	call DCBVersBinaire
	stosb
	loop .boucleDate
	mov al, 50	; Registre de siècle du RTC du CMOS (peut-être)
	out 0x70, al
	in al, 0x71
	call DCBVersBinaire
	stosb

	mov ecx, 3
.boucleHeure:
	mov al, cl	; Registres d'heure du RTC du CMOS
	dec al
	shl al, 1
	out 0x70, al
	in al, 0x71
	call DCBVersBinaire
	stosb
	loop .boucleHeure

	sti
	mov ch, 2
	mov edi, chDate
	mov esi, chDate
	xor eax, eax
	mov ebx, 10
	mov al, [Heure]
	call nombreVersChaine
	mov al, 45
	stosb
	mov al, [Minute]
	call nombreVersChaine
	mov al, 45
	stosb
	mov al, [Seconde]
	call nombreVersChaine
	mov ax, 51
	stosw
	call afficheChaine
	xor eax, eax
	mov al, [JourDeLaSemaine]
	dec al
	shl eax, 2
	add eax, indexChJours
	mov esi, [eax]
	call afficheChaine
	mov edi, chDate
	mov esi, chDate
	xor eax, eax
	mov al, [JourDuMois]
	mov ebx, 10
	call nombreVersChaine
	call afficheChaine
	xor eax, eax
	mov al, [Mois]
	dec al
	shl eax, 2
	add eax, indexChMois
	mov esi, [eax]
	call afficheChaine
	mov edi, chDate
	mov esi, chDate
	xor eax, eax
	mov al, [Siecle]
	mov ebx, 10
	xor ecx, ecx
	call nombreVersChaine
	mov al, [Annee]
	call nombreVersChaine
	mov ax, 112
	stosw
	call afficheChaine
	popad
	ret

.litOctet:
	out 0x70, al
	in al, 0x71
	call DCBVersBinaire
	stosb
	ret

DCBVersBinaire:
	push bx
	push ax			;On sauve le Décimal Codé Binaire
	and al, 0xF0	;On récupère les dizaines
	push ax			;On sauve les dizaines
	shr al, 1		;Qu'on divise par 2 (ie on multiplie le _chiffre_ des dizaines par 8)
	pop bx
	shr bl, 3		;Qu'on divise par 8 (ie on multiplie le _chiffre_ des dizaines par 2)
	add al, bl		;On a donc le nombre des dizaines (8+2)*chiffre des dizaines
	pop bx
	and bl, 0xF		;On récupère les unités
	add al, bl		;Et voici la somme des 2, ie notre nombre
	pop bx
	ret

_test:
db 99, 15, 24, 30, 19, 31, 23, 51, 92, 92, 112, 0, 0, 0; "Pentium II"
chMois:
db 51, 93, 11, 24, 32, 19, 15, 28, 51, 0; "Janvier"
db 51, 89,111, 32, 28, 19, 15, 28, 51, 0; "Février"
db 51, 96, 11, 28, 29, 51, 0; "Mars"
db 51, 84, 32, 28, 19, 22, 51, 0; "Avril"
db 51, 96, 11, 19, 51, 0; "Mai"
db 51, 93, 31, 19, 24, 51, 0; "Juin"
db 51, 93, 31, 19, 22, 22, 15, 30, 51, 0; "Juillet"
db 51, 84, 25, 31, 30, 51, 0; "Aout"
db 51,102, 15, 26, 30, 15, 23, 12, 28, 15, 51, 0; "Septembre"
db 51, 98, 13, 30, 25, 12, 28, 15, 51, 0; "Octobre"
db 51, 97, 25, 32, 15, 23, 12, 28, 15, 51, 0; "Novembre"
db 51, 87,111, 13, 15, 23, 12, 28, 15, 51, 0; "Décembre"
indexChMois:
dd 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
chJours:
db 95, 31, 24, 14, 19, 51, 0; "Lundi"
db 96, 11, 28, 14, 19, 51, 0; "Mardi"
db 96, 15, 28, 13, 28, 15, 14, 19, 51, 0; "Mercredi"
db 93, 15, 31, 14, 19, 51, 0; "Jeudi"
db 105, 15, 24, 14, 28, 15, 14, 19, 51, 0; "Vendredi"
db 102, 11, 23, 15, 14, 19, 51, 0; "Samedi"
db 87, 19, 23, 11, 24, 13, 18, 15, 51, 0; "Dimanche"
indexChJours:
dd 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
Annee: db 0
Mois: db 0
JourDuMois: db 0
JourDeLaSemaine: db 0
Siecle : db 0
Heure : db 0
Minute : db 0
Seconde : db 0
chDate: db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
