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
TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOURTECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOUR par ROMELARD Fabrice
Après un retour sur l'histoire des TechDays de Paris et le fait que ce soit le plus gros event MS au monde (du fait de sa gratuité), le président de MS France (Eric Boustoullier) a fait une présentation de la vision Microsoft pour les années à venir...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : PIC 16F84RE : PIC 16F84 par pont
Cliquez pour lire la suite par pont RE : PIC 16F84RE : PIC 16F84 par belounis
Cliquez pour lire la suite par belounis RE : PIC 16F84RE : PIC 16F84 par pont
Cliquez pour lire la suite par pont
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|