Bonsoir,
Je programme avec assembleur et j'ai un probleme avec l'extension 13h elle n'est pas reconnue ni par emu8086 ni tasm, comment faire ?
Cordialement.
Bonsoir,
Je programme avec assembleur et j'ai un probleme avec l'extension 13h elle n'est pas reconnue ni par emu8086 ni tasm, comment faire ?
Cordialement.
Qu'entends-tu par non reconnue ?
Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
Mon article sur le P2V, mon article sur le cloud
Consultez nos FAQ : Windows, Linux, Virtualisation
Bonjour,
Ne ne comprends pas ce que TASM n'accepte pas puisque l'int 13h est juste une interruption.
Par contre, que le BIOS d'un 8086 n'aie pas les extensions de l'int 13h c'est plutôt normal car
elles ne sont apparues qu'avec les disques de "grande" taille dans le milieu des années 90
Merci pour vos réponses.
Chrtophe, non reconnue : il me demande de modifier la table des interruptions.
est ce que c'est tasm qui te demande de modifier ta table des interruptions ou bien est ce emu8086?
si c'est tasm je me demande comment il fait pour savoir que la table des interruption est vide
si c'est emu8086 (ce qui me semble plus probable) je pense qu'il y a un paramètre a regler pour virtualiser un environnement de type pc, vu que le processeur 8086 ne se monte pas forcément sur un pc et peut alors démarrer avec une table de vecteur d'interruption vide
je ne suis pas un expert de emu8086, j'ai voulue essayer le logiciel mais il ne tourne pas sous linux
Bonjour,
J'ai essayé mon programme sur les 2.
euh... sur les deux quoi ?
Si ton programme tourne via un émulateur, normal que l'int 13h ne fonctionne que de façon très limitée.
Les accès disques sont réservés à l'OS, sinon il serait trop facile de planter une machine
Ok, donc tu n'as testé ton programme qu'une fois alors, car Emu8086 est un émulateur et TASM un compilateur... c'est pas trop la même chose
Question : tu sais ce que tu fais ? ou tu essayes des trucs au hasard ?
Et si tu veux qu'on puisse t'aider, il faudrait nous en dire un peu plus sur ce que tu veux faire, et pourquoi pas nous montrer un bout de code
Sur un émulateur digne de ce nom, l'int 13h fonctionne. L'int 13h était déjà utilisée avec les 8086, elle gère aussi les lecteurs de disquette. Même si le BIOS ne comportait pas la gestion des disques durs, la carte contrôleur les installaient. Au niveau émulateur, c'est directement intégré je pense Y a t'il un "disque dur" dans l'émulateur ?
Comme le dis Forthman, on ne sait pas ce que tu veux faire, ni ou tu en es.
Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
Mon article sur le P2V, mon article sur le cloud
Consultez nos FAQ : Windows, Linux, Virtualisation
Bonsoir,
Merci pour vous réponses.
En effet je parle l'extension de l'interruption 13h avec ah=42 afin d'effectuer une lecture logique (adressage LBA) d'un disque dur. sur mon programme il m'indique que cette extension n'est pas encore implémentée (extension non trouvée). Faut-il changer le vecteur d’interruption? ou écrire directement le code opération de cette extension (que je ne connais pas).
Si l'adressage LBA n'est pas implémenté dans ton émulateur, tu ne pourras pas l'utiliser. Change d'émulateur. Tu peux essayer bochs, en plus il y a un deboggeur intégré.
Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
Mon article sur le P2V, mon article sur le cloud
Consultez nos FAQ : Windows, Linux, Virtualisation
En faite emu8086 est un émulateur très limité pour ne pas dire pourrit:
Le mode pas à pas en mettant TF du registre de Flag à 1 ne fonctionne pas
Il supporte qu'un nombre très réduit d'interruptions et des fonctions du BIOS
EX: int 13h
-seul les fonctions: d'initialisation, de lecture et d'écriture ( de disquette) sont supportées
Remarque:
=======
tu peux émuler un disque dur en écrivant un périphérique que tu liera a un port d'ému8086
Avantage:
======
Tu vois les instructions exécuter l'une après l'autres
Sous emu8086, lorsque vous déclencher une interruption non définit (c'est à dire dans la table d'interruption, si le segment et l'offset du gestionnaire d'interruption sont égales à 0), il t'affiche un message du genre interruption non définit ou non supportées.
Mais même si il est pourrit il est quand même possible de détourner les interruptions.
J'ai utilisé emu8086 plus de 100 fois, je pense le connaître suffisamment pour pouvoir t'aidé, donc si t'as des questions n'hésite pas.
Ce qui est sûr, c'est que l'OS faisant tourner l'émulateur ne te laissera pas écrire sur un disque dur.
Bochs est bien foutu, et on peut écrire sur un disque virtuel dans un fichier image, idéal pour les tests.
Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
Mon article sur le P2V, mon article sur le cloud
Consultez nos FAQ : Windows, Linux, Virtualisation
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager