sibi12
Messages postés337Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention15 avril 2006
-
25 mars 2003 à 21:38
sibi12
Messages postés337Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention15 avril 2006
-
2 avril 2003 à 01:13
salut voivi mon code :
mov ah, 09h
mov dx, offset buffer
int 21h
buffer a été déclaré comme ca:
buffer db 50 dup(0)
le compilateur me met une erreur pour la ligne mov dx, offset buffer: les operandes ne sont pas de meme taille.
si je mets mov edx, offset buffer le proramme se plante à int 21h
gblade
Messages postés85Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention19 mai 2003 25 mars 2003 à 22:59
Ca fait trop longtemps que je n'ai pas programmer sous MASM mais à mon avis, tu travailles en mode 32bits et non 16bits.
Désolé de ne pas pouvoir t'en dire plus :/.
@+
cs_Nemesis
Messages postés22Date d'inscriptiondimanche 6 octobre 2002StatutMembreDernière intervention18 avril 2003 26 mars 2003 à 17:18
je suis d'accord avec gblade... Tu dois utiliser le mode 32 bits et pas le mode 16 bits. Les adresses 32 bits ne tiennent pas dans le registre dx, mais elles tiennent dans edx. En mode 32 bits, tu n'a pas accès au interruptions dos.
A mon avis il faudrait te reporter à la doc de ton compilateur pour savoir comment utiliser le mode 16 bits (mode réel) à la place du mode 32 bits (mode protégé)
CoreBreaker
Messages postés540Date d'inscriptiondimanche 23 mars 2003StatutMembreDernière intervention 5 octobre 20071 31 mars 2003 à 18:52
Le code est bon a condition de mettre la déclaration de buffer et ton code dans un segment 16bits.
Ca dépend ce que tu utilise comme compilateur.
Essaie:
mov dx, small offset buffer
Core Breaker :)
Vous n’avez pas trouvé la réponse que vous recherchez ?