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
CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT)CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT) par FREMYCOMPANY
Bonjour à tous, Je viens de publier une proposition comprenant 5 pseudo-classes pour le CSS Working Group ayant trait à l'état de chargement d'un élément (ex: IMG,VIDEO,AUDIO,OBJECT pour l'HTML.). Si le c½ur vous en dit, vous pouvez retrouver cette p...
Cliquez pour lire la suite de l'article par FREMYCOMPANY MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks [HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL[HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL par Pierrick CATRO-BROUILLET
Avec la sortie prochaine de la Beta Consumer Preview de Windows 8, j'avais envie de revenir sur une des fonctionnalités que j'attends le plus et que, en bon geek que je suis, j'utilise déjà : Hyper-V 3 ainsi son module PowerShell.
Il y a déjà pléthor...
Cliquez pour lire la suite de l'article par Pierrick CATRO-BROUILLET IIS7 - COMPRESSION GZIPIIS7 - COMPRESSION GZIP par cyril
La compression GZIP permet d'améliorer les performances de navigation en compressant ce qu'envoie le serveur à un client. Pour comprendre comment cela fonctionne, regardons ce qu'il se passe au niveau HTTP lorsqu'un client tente d'accéder à une ress...
Cliquez pour lire la suite de l'article par cyril
Logiciels
Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning Academy System (17.1.3.0)ACADEMY SYSTEM (17.1.3.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|