begin process at 2012 02 09 04:37:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Assembleur

 > 

Archives

 > 

Autres asm

 > 

Probleme de boot


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme de boot

jeudi 4 mars 2004 à 18:26:33 | Probleme de boot

DbD

Bonjour,
Alors je fais mon OS et j'ai des problème de boot a partir d'un disquette, sur certain pc ou quand le noyau depasse 40 secteurs ca boot plus non plus ....

Voila un bout de mon code :


%define BASE 0x100
%define KSIZE 35

[BITS 16]
[ORG 0x0]

jmp start

start:
mov [bootdrv],dl ; recuparation de l'unite de boot

; initialisation des segments en 0x07C0
mov ax,0x07C0
mov ds,ax
mov es,ax
mov ax,0x8000 ; stack en 0xFFFF
mov ss,ax
mov sp, 0xf000

; charger le noyau
xor ax,ax
int 0x13

push es
mov ax,BASE
mov es,ax
mov bx,0

mov ah,2
mov al,KSIZE
mov ch,0
mov cl,2
mov dh,0
mov dl,[bootdrv]
int 0x13
pop es


et en gros après je jump sur le kernel ....
Si je met des boucles pour detecter l'erreur il boucle sur l'int 0x13

Merci d'avance ...
mercredi 10 mars 2004 à 15:45:55 | Re : Probleme de boot

patatalo

Membre Club Administrateur CodeS-SourceS

salut,

le premier petit pb que je constate c'est:

mov [bootdrv],dl ; ici, ds = 0

mov ax,0x07C0
mov ds,ax ; ici, ds=0x7C0

mov ah,2
mov al,KSIZE
mov ch,0
mov cl,2
mov dh,0
mov dl,[bootdrv] ; ici, ds=0x7C0
int 0x13

y'a déjà un petit pb.
La valeure récupérée dans dl est aléatoire puisque pas initialisée.

@++
mercredi 10 mars 2004 à 16:33:11 | Re : Probleme de boot

DbD

tout d'abord merci de ta réponce ...
bootdrv: db 0
j'ai oublier de recopier ca :)
cela suffit t'il a eviter le probleme ou si c'est non comme puis-je faire ?
DbD
jeudi 11 mars 2004 à 11:21:44 | Re : Probleme de boot

patatalo

Membre Club Administrateur CodeS-SourceS

salut,

ca peut resoudre effectivement le probleme de l'init [bootdrv]
mais, tu met quand meme une valeur dl a un emplacement inconnu, apparement, tes datas doivent se trouver apres ton jmp start.

donc, je pense que tu inscrit la valeur dl dans la table des vecteurs d'interruption.

pour peu que cette interruption se produise -> plantage.

le mieux, est d'initialiser tes segments avant toute modification des variables.

jmp start
; datas
start:
mov ax,0x07C0
mov ds,ax ; ici, ds=0x7C0

mov [bootdrv],dl
...

de plus, fait toujours un cli avant de modifier l'emplacement de ta pile car:

mov ax,0x8000 ; stack en 0xFFFF
mov ss,ax

< si une interruption se produit là, pas bon >

mov sp, 0xf000

autre chose:
ta kernel ne peut pas avoir une taille plus grande que 6C00h octets car ta base est a l'adresse FLAT 0x1000 et ton code boot a l'adresse FLAT 0x7C00 soit 54 secteurs

dernier point:
peut etre n'as tu pas mis le code complet, sinon, verifie toujours les erreurs possibles a la suite des appels BIOS

xor si,si
jmp .1
.0
inc si
cmp si,3
jb .1
outtxt 'erreur chargement kernel press key for reboot'
waitkey
int 0x19
.1
mov ah,2
mov al,KSIZE
mov ch,0
mov cl,2
mov dh,0
mov dl,[bootdrv] ; ici, ds=0x7C0
int 0x13
jc .0

@++

jeudi 11 mars 2004 à 21:29:46 | Re : Probleme de boot

DbD

Merci
Ok j'ai fais tout cela mais dès que le kernel >= à 37 secteurs il rebbot sans cesse sans m'afficher le message d'erreur ...

Voila la sources plus complete : http://touf.is-a-geek.net/~myos/boot.txt
DbD
vendredi 12 mars 2004 à 09:09:05 | Re : Probleme de boot

DbD

C'ets bon j'ai fait une boucle qui copie secteurs par secteurs il chage bien le noyau jump dessus mais un fois dans l'os si j'appuis sur une touche il reboot ....

voila la sources -> http://touf.is-a-geek.net/~myos/boot.txt

Je définie l'idt au lancement du noyau et je redéfini aussi la gdt ...

DbD
vendredi 12 mars 2004 à 13:48:16 | Re : Probleme de boot

patatalo

Membre Club Administrateur CodeS-SourceS

salut,

l'interruption timer fonctionne ?

si oui, pour moi, y'a un bins dans ton gestionnaire d'interruption clavier.

fait attention a l'alignement de ta pile aussi peut-etre.

PS:
n'oublie pas de désactiver la NMI lors des modif idt.

@++


Cette discussion est classée dans : int, mov, ax, boot, 0x13


Répondre à ce message

Sujets en rapport avec ce message

erreur compilation [ par greg4 ] je voudrai compiler--------------------------------------.model tiny.dataHelloMessage db 13,10,'Hello World !',13,10,'$'.codeorg 100hstart: mov ax,@d loader problème de code [ par TRAX44 ] salut tout le monde !!g essayer de faire un loader (petit prog qui charge un autre prog) mais c un desartre je comprend pas très bien ce qui ne marche petit probleme de debutant [ par freekc ] j'essaie de faire un ptit prog que lorsque l'on rentre son nom prenom etc . Il y est un recapitulatif qui se mette en dessous ms lorsque que le recapi Affichage [ par AMENO ] Cher amis aidez moi, c'est une partie de mon examen de noel. et je suis bloquerenfin il 'sagit d'un programme que l'on doit entrer jsuqu a 32 caracter erreur dans le boot + kernel [ par hudson ] Bonjour, voilà j'ai essayer de suivre le tut de inferno sur les OS et donc le boot sur la disquette est ok ! mais dès que je veux mettre un kernel il probleme avec un bootloader [ par anonyme_man_in_this_world ] salut !! je voudrais coder un bootloader , tous ce compile bien ,je copie / colle le fichier .BIN dans une disquette ,mais lors le redemmarrage d Bonjour [ par red4ever ] J'aurai aimer savoir comment permettre a l'utilisateur d'entrer une chaine de caractere,la ranger dans bx et ensuite l'afficher a l'ecran??J'ai beau e Afficher l'heure avec la memoire video [ par RootASM ] 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 Problème de restitution d'une chaîne. [ par Sawteeth ] Bonsoir. Je viens de débuter l'assembleur et j'ai tenté de faire un petit programme qui lit une chaîne au clavier et l'affiche à l'écran. Le problème nasm [ par henri12 ] salut je viens de compiler ce mbr boot avec nasmnasm -fbin aboot.asm -o binexe.exele programme c est bien compiler mais en lançant d une cle usb l ima


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,324 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales