Boot et heure

cs_henri12 Messages postés 114 Date d'inscription mercredi 25 février 2004 Statut Membre Dernière intervention 9 avril 2007 - 6 avril 2007 à 09:07
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 - 7 avril 2007 à 01:14
je fais un essai de changement de l heure avec l interruption 21h sous le boot

l heure n est pas changer
pourquoi

.286C   ;Code de bootsecteur permettant de booter sur le dur, (c) Digit
Code            SEGMENT BYTE
  ASSUME  CS:Code,DS:Code


 drive   EQU     80h ;pour le lecteur C:
START:
 MOV  AH, 2Dh ;Set time:
 MOV  CH, 07h ;CH = heure
 MOV  CL, 04h ;CL = min
 MOV  DH, 03h ;DH = sec
 INT  21h
 XOR     AX,AX
 CLI
 MOV     SS,AX
 MOV     SP,7C00h ;On crée une pile
 STI
 MOV     SI,SP
 MOV     ES,AX
 MOV     DS,AX
 CLD
 MOV     DI,0600h
 MOV     CX,256  ;512 octets
 REP     MOVSW ;On copie 512 octets de 0000:7C00h vers 0000:0200h
 MOV     DI,5    ;5 essais pour lire le secteur
 MOV     AX,Offset boucle
 ADD     AX,63Eh ;adresse à laquelle on a copié (en 600+Offset du prog)
 JMP     AX ;On continue à exécuter dans notre copie
boucle: MOV     BX,7C00h ;Chargement du secteur de partition du dur
 PUSH    0000h
 POP     ES
 XOR     DH,DH
 MOV     DL,drive    ;tete numero 0 lecteur C (pour le D mettre 81h)
 MOV     CX,0001h    ;cylindre 0 et secteur 1
 MOV     AX,0201h ;Lecture d'un secteur en ES:BX
 INT     13h
 JNC     suite
 XOR     AX,AX
 INT     13h     ;On reinitialise en cas d'erreur
 DEC     DI
 JNZ     boucle
 INT     19h     ;On reboot après les essais (erreur)
suite:  JMP     BX      ;en 7C00h=secteur de partition chargé


Code            ENDS    ;Voilà, c'est fini...
  END     START

3 réponses

cs_henri12 Messages postés 114 Date d'inscription mercredi 25 février 2004 Statut Membre Dernière intervention 9 avril 2007
6 avril 2007 à 09:12
que doit on rajouter au code ci  dessus  pour creer un prog.exe qui peut lancer le boot

directement sous dos mais sans faire un reset

merci
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
7 avril 2007 à 01:00
salut,

au boot tu n'as pas acces a l'interruption DOS int 21h mais uniquement à celles du BIOS qui peut etre considéré comme le premier systeme d'exploitation du PC.

@++
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
7 avril 2007 à 01:14
re,

MOV     AX,Offset boucle
ADD     AX,63Eh ;adresse à laquelle on a copié (en 600+Offset du prog)
JMP     AX ;On continue à exécuter dans notre copie
boucle: MOV     BX,7C00h ;Chargement du secteur de partition du dur

c'est faux. dans ton cas, ça aurait plutot l'air d'etre ( pas d'ORG ):
mov ax,offset boucle
add ax,600h
jmp ax

@++
0
Rejoignez-nous