EDITEUR DE TEXTE SIMPLE (SANS MODIFICATION DU TEXTE)
cs_Nasman
Messages postés202Date d'inscriptionmardi 17 mai 2005StatutMembreDernière intervention29 septembre 2008
-
28 juin 2005 à 14:12
cs_izel
Messages postés20Date d'inscriptionvendredi 21 janvier 2005StatutMembreDernière intervention25 février 2007
-
29 mai 2006 à 09:52
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_izel
Messages postés20Date d'inscriptionvendredi 21 janvier 2005StatutMembreDernière intervention25 février 2007 29 mai 2006 à 09:52
Je pensais à une disquette bootable fait avec windows
cs_Nasman
Messages postés202Date d'inscriptionmardi 17 mai 2005StatutMembreDernière intervention29 septembre 20083 30 mars 2006 à 13:33
Bonjour IZEL,
Ce programme nécessite d'avoir le dos pour fonctionner puisque les appels à l'interruption 21h lancent des fonction du dos. Si le dos n'est pas installé il y aura peut-être quelque chose de lancé avec int 21h (vecteur d'interruption en 0000:0084) mais ce peut-être n'importe quoi. Un plantage serait plus que probable.
cs_izel
Messages postés20Date d'inscriptionvendredi 21 janvier 2005StatutMembreDernière intervention25 février 2007 30 mars 2006 à 12:55
Heu bonne question, je le lance à partir de l'invité de commandes. Mais sous une disquette ça devrai marcher
thierrysommer
Messages postés6Date d'inscriptionvendredi 25 mars 2005StatutMembreDernière intervention24 avril 2006 3 mars 2006 à 11:25
Salut,
ce programme marche-t-il hors DOS, cad , à partir d'une disquette de boot par exemple, ou bien il faut dos ou win?
cs_izel
Messages postés20Date d'inscriptionvendredi 21 janvier 2005StatutMembreDernière intervention25 février 2007 28 oct. 2005 à 08:54
Desolé je sais pas pourquoi mon code est mis en commentaire.
J ai essayé de le modifier mais il n'y a pas de commentaires ???
cs_viran
Messages postés104Date d'inscriptionjeudi 6 mai 2004StatutMembreDernière intervention31 décembre 2006 25 oct. 2005 à 14:48
Euh... pk ta tt mis en commentaire?
cs_izel
Messages postés20Date d'inscriptionvendredi 21 janvier 2005StatutMembreDernière intervention25 février 2007 28 juin 2005 à 21:48
Oui c'est le premier "vrai" programme que je fais
Merci pour les conseils j'en prendrai compte par suite ^^
cs_Nasman
Messages postés202Date d'inscriptionmardi 17 mai 2005StatutMembreDernière intervention29 septembre 20083 28 juin 2005 à 14:12
Pour un premier programme assembleur, celui ci est relativement long (à moins que tu ne te sois taté du classique Hello World). Quelques remarques cependant pour optimiser ton programme - et pour une "standardisation de programmation":
Si les SUB AX,AX consistent à mettre le registre à zéro, utilise plutôt XOR AX,AX
Utilise le plus possible les registres 16 bits au lieu de deux fois des registre 8 bits, ainsi
MOV ah,4ch
MOV al,0
INT 21h
peut avantageusement être remplacé par
MOV ax,4c00h
INT 21h
1 octet d'économisé
je suppose que AX contient le code d'erreur à tester; il semble plutôt que ce qui t'interesse est dans AL (les valeurs de comparaison sont inférieures à FFh). Effectue plutôt des comparaisont entre AL et des valeurs immédiates 8 bits. Par exemple les lignes ci dessus deviennent:
CMP AL,1 ;2 octets
JZ FileSharing ;2 octets
CMP AL,2 ;2 octets
JZ nonFichier ;2 octets
Par test 4 octets seulement sont consommés (au lieu de 7)
Autre astuce, pour comparer un registre à zéro faire
AND registre,registre positionne les flags avant un test
29 mai 2006 à 09:52
30 mars 2006 à 13:33
Ce programme nécessite d'avoir le dos pour fonctionner puisque les appels à l'interruption 21h lancent des fonction du dos. Si le dos n'est pas installé il y aura peut-être quelque chose de lancé avec int 21h (vecteur d'interruption en 0000:0084) mais ce peut-être n'importe quoi. Un plantage serait plus que probable.
30 mars 2006 à 12:55
3 mars 2006 à 11:25
ce programme marche-t-il hors DOS, cad , à partir d'une disquette de boot par exemple, ou bien il faut dos ou win?
28 oct. 2005 à 08:54
J ai essayé de le modifier mais il n'y a pas de commentaires ???
25 oct. 2005 à 14:48
28 juin 2005 à 21:48
Merci pour les conseils j'en prendrai compte par suite ^^
28 juin 2005 à 14:12
Si les SUB AX,AX consistent à mettre le registre à zéro, utilise plutôt XOR AX,AX
Utilise le plus possible les registres 16 bits au lieu de deux fois des registre 8 bits, ainsi
MOV ah,4ch
MOV al,0
INT 21h
peut avantageusement être remplacé par
MOV ax,4c00h
INT 21h
1 octet d'économisé
Quand tu fais des comparaisons
MOV BX,1 ;3 octets
CMP AX,BX ;2 octets
JZ FileSharing ;2 octets
MOV BX,2 ;3 octets
CMP AX,BX ;2 octets
JZ nonFichier ;2 octets
je suppose que AX contient le code d'erreur à tester; il semble plutôt que ce qui t'interesse est dans AL (les valeurs de comparaison sont inférieures à FFh). Effectue plutôt des comparaisont entre AL et des valeurs immédiates 8 bits. Par exemple les lignes ci dessus deviennent:
CMP AL,1 ;2 octets
JZ FileSharing ;2 octets
CMP AL,2 ;2 octets
JZ nonFichier ;2 octets
Par test 4 octets seulement sont consommés (au lieu de 7)
Autre astuce, pour comparer un registre à zéro faire
AND registre,registre positionne les flags avant un test
Bonne prog