Accueil > Forum > > > > modification d'interruption au boot
modification d'interruption au boot
jeudi 1 novembre 2007 à 18:25:05 |
modification d'interruption au boot

Yoha
|
Bonjour, je me suis remis à l'assembleur (sous debug pour éviter les compilations) et j'ai modifié l'interruption 80h. Cela fonctionne très bien sous DOS lorsque mon programme est chargée à une adresse en 100h mais, après avoir fait "w cs:100 0 0 1" pour faire une disquette de boot, mon programme ne fonctionne pas. Après un peu de débogage, j'ai vu que l'erreur se produisait bien lors de l'appel à l'interruption. J'ai essayé avec 144h et 44h mais rien n'y fait.
Exemple de programme (fait sous Windows XP):
0CCE:0100 8CC8 MOV AX,CS
0CCE:0102 BB0000 MOV BX,0000
0CCE:0105 8EDB MOV DS,BX
0CCE:0107 A30202 MOV [0202],AX
0CCE:010A BB1501 MOV BX,0115
0CCE:010D 891E0002 MOV [0200],BX
0CCE:0111 CD80 INT 80
0CCE:0113 CD20 INT 20
0CCE:0115 B84109 MOV AX,0941
0CCE:0118 BB0F00 MOV BX,000F
0CCE:011B B90100 MOV CX,0001
0CCE:011E CD10 INT 10
0CCE:0120 B400 MOV AH,00
0CCE:0122 CD16 INT 16
0CCE:0124 CF IRET
-->
A
Fin normale du programme
Donc, pourriez-vous m'aider à gérer les interruptions au boot. Merci d'avance pour votre aide.
Au bon artisan, l'outil importe peu,
Yoha,
|
|
vendredi 2 novembre 2007 à 16:20:25 |
Re : modification d'interruption au boot

Guilou34
|
Pour Debug le secteur 0 est le premier secteur du DOS et ne permet pas d'accéder au premier secteur physique d'un disque ou disquette Il faut utiliser l'int 13h pour ce faire. De plus le bios lit le secteur 0 (physique) de la disquette de boot en 0:7C00 et saute à cette adresse. Dans ton cas, l'int 80h va pointer sur 0:115 et c'est le contenu de cette adresse qui va être exécuter c'est à dire n'importe quoi. Il faudra donc au moins remplacer 115 par 7d15 pour que ton programme fonctionne tel quel. A ceci près que l'int 20h étant une interruption Msdos et celui-ci n'étant pas encore chargé c'est aussi n'importe quoi qui sera effectué après IRET.
Amicalement.
|
|
vendredi 2 novembre 2007 à 17:29:52 |
Re : modification d'interruption au boot

Yoha
|
Pour l'interruption 20h, effectivement, je l'ai laissé pour les tests sous debug. En principe, je la remplace par un saut sur lui-même.
Le fait de faire:
0CCE:0100 8CC8 MOV AX,CS
puis:
0CCE:0107 A30202 MOV [0202],AX
ne me permet-il pas justement de donner le segment du code (7C00h) ? J'essaierais tout de même en remplaçant cette méthode générale par 7C00h.
|
|
vendredi 2 novembre 2007 à 18:09:08 |
Re : modification d'interruption au boot

Guilou34
|
Réponse acceptée !
7C00h est une adresse pas un segment ! C'est à 0000:7C00 que ton module sera chargé et exécuté par le BIOS avec CS=0 Donc ton code sera:
0000:7C00 8CC8 MOV AX,CS 0000:7C02 BB0000 MOV BX,0000 0000:7C05 8EDB MOV DS,BX 0000:7C07 A30202 MOV [0202],AX 0000:7C0A BB1501 MOV BX,115 0000:7C0D 891E0002 MOV [0200],BX 0000:7C11 CD80 INT 80 0000:7C13 CD20 INT 20 0000:7C15 B84109 MOV AX,0941 0000:7C18 BB0F00 MOV BX,000F 0000:7C1B B90100 MOV CX,0001 0000:7C1E CD10 INT 10 0000:7C20 B400 MOV AH,00 0000:7C22 CD16 INT 16 0000:7C24 CF IRET
Le nouveau vecteur de l'int 80 sera 0:115 alors qu'il doit être 0000:7C15 (et pas 7D15 comme je l'ai écrit par erreur.
|
|
vendredi 2 novembre 2007 à 18:58:17 |
Re : modification d'interruption au boot

Yoha
|
Mince, c'est sans doute ce qui me manquait... Dire que je n'avais pas vu ça ^^. Bon, je le teste et je dirais si cela fonctionne bel et bien. Merci en tout cas !
|
|
samedi 3 novembre 2007 à 11:06:53 |
Re : modification d'interruption au boot

Yoha
|
Oui, c'était bien cela. Après quelques essais j'ai réussit à faire un programme qui affiche les lettres A, B puis C, B l'étant par une interruption. Merci beaucoup de m'avoir aidé ! Il faudra que je lise plus attentivement désormais ^^.
|
|
Cette discussion est classée dans : mov, interruption, bx, boot, 0cce
Répondre à ce message
Sujets en rapport avec ce message
probleme avec l interruption affichage de chaine [ par M0NTOYA ]
bon voila mon probleme ,qd j utilse cette procedure(presentation) pour afficher une chaine de caractere presentation PROC PUSHA MOV AH,09h INT 21h POP
probleme avec l interruption affichage de chaine [ par M0NTOYA ]
bon voila mon probleme ,qd j utilse cette procedure(presentation) pour afficher une chaine de caractere presentation PROC PUSHA MOV AH,09h INT 21h POP
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
pb d'affichage :s [ par rana ]
bjrje voudrais savoir, comment faire pour afficher une chaine de caractère en faisant une boucle (en utilisant repne scasb) jusqu a arrive a une lett
Ennoncés à corriger svp :-) [ par did2604 ]
Bonjour à tous,Mon professeur m'a demandé de convertir les énoncés (en langage C) suivants en assembleur, quelqu'un aurait-il la gentilesse de me les
Probleme de boot [ par 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
rs232 [ par TRAX44 ]
salut,tout premièrement je sais qu'il ya des exemples sur le site!mais mon problème est autre je tiens à comprendre pourquoi mon code ne fonctionne pa
Aide affighage chiffre asm 8086 [ par MayouMX ]
Bonjour a tous, je dois programmer un pong en assembleur et la je butte pour l'affichage des scores.J'ai créer un segment qui ressemble a ca :exemple
pb affichage ligne [ par mat74 ]
salut a ts voila j'ai fait une fonction pr faire des lignes , j'ai deciner un carre a 100,100 jusqu'a 200,200 et sa marche nickel mais ia un ptit pb q
afficher bitmap 256 couleurs [ par mat74 ]
salut,voila j'aimerai afficher un bitmap de 256 a l'ecran en mode 320*200*256 ( fonction 12h de l'interruption 10h )j'ai fais un prog qui d'abord ouvr
Livres en rapport
|
Derniers Blogs
PB LORS DE L'INSTALLATION SHAREPOINT 2010.PB LORS DE L'INSTALLATION SHAREPOINT 2010. par Patrick Guimonet
Lors de l'installation de SharePoint 2010, j'ai rencontré un problème de plantage à l'étape 5 du configuration Wizard. Ca se termine sur cet écran : Et en analysant le fichier de journalisation, on remarque vers la fin des 15000 et quelques lign...
Cliquez pour lire la suite de l'article par Patrick Guimonet [WF4] AJOUTER DES CONTRAINTES à UNE ACTIVITé (2/2)[WF4] AJOUTER DES CONTRAINTES à UNE ACTIVITé (2/2) par JeremyJeanson
Après mon précédent article qui attaque les contraintes par la fasse Nord de l'Everest. passons à la seconde possibilité offerte par WF4 pour valider une activité : la metadata . Je vous en ai déjà toucher un ou deux mots. La metadata dans WF4 est un élém...
Cliquez pour lire la suite de l'article par JeremyJeanson [WF4] AJOUTER DES CONTRAINTES à UNE ACTIVITé (1/2)[WF4] AJOUTER DES CONTRAINTES à UNE ACTIVITé (1/2) par JeremyJeanson
De WF3 à WF4 pas mal de choses on été changées pour faciliter la vie des développeurs, mais certain points peuvent sembler obscures. comme les contraintes. Pour vous guider, je me lance dans une série de deux articles. Ils présenterons deux approches poss...
Cliquez pour lire la suite de l'article par JeremyJeanson [ASP.NET] NE PAS SE FAIRE AVOIR PAR IHTTPMODULE ET SA MéTHODE INIT()[ASP.NET] NE PAS SE FAIRE AVOIR PAR IHTTPMODULE ET SA MéTHODE INIT() par tja
Beaucoup de développeurs pensent que lorsqu'on créé et enregistre un IHttpModule, il n'en existe qu'une seule instance et la méthode Init() sera appelée qu'une fois.
C'est faux
Cela peut vraiment créer des bugs subtils dont en ne se rend pas compte ...
Cliquez pour lire la suite de l'article par tja [MSTD10] SHAREPOINT 2010 ET TEAM FOUNDATION SERVER[MSTD10] SHAREPOINT 2010 ET TEAM FOUNDATION SERVER par phil
Un post rapide pour vous informer de la disponibilité de la vidéo de ma présentation sur SharePoint 2010 & Team Foundation Server. http://www.microsoft.com/france/vision/mstechdays10/Webcast.aspx?EID=20215d48-02e3-4d43-8c36-e53505c3b316 Dans la ...
Cliquez pour lire la suite de l'article par phil
Logiciels
Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor
|