Boot et heure

Signaler
Messages postés
114
Date d'inscription
mercredi 25 février 2004
Statut
Membre
Dernière intervention
9 avril 2007
-
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
-
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

Messages postés
114
Date d'inscription
mercredi 25 février 2004
Statut
Membre
Dernière intervention
9 avril 2007

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
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1
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.

@++
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1
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

@++