dyroj
Messages postés123Date d'inscriptionvendredi 14 novembre 2008StatutMembreDernière intervention18 juin 2012
-
3 mars 2009 à 12:42
Londonic
Messages postés298Date d'inscriptionjeudi 22 janvier 2009StatutMembreDernière intervention26 septembre 2009
-
7 mars 2009 à 07:58
bonjour,
j'ai qulque question sur l'asm :
-quand je fait un : mov ax, 10 , quesqui va dans le registre (ladresse de 10 dans la ram, ou 10).
-pourquoi se bou de code marche pour un fichier .com et pas un .exe :
print_text macro text?
local text, fin
push ax dx
mov ah, 09h
mov dx, offset text
int 21h
pop dx ax
jmp short fin
text db text?,'$'
fin:
endm
ToutEnMasm
Messages postés587Date d'inscriptionjeudi 28 novembre 2002StatutMembreDernière intervention13 décembre 20223 3 mars 2009 à 15:34
Salut,
"mov ax,10" a pour effet de modifier l'état du registre ax en binaire.
C'est a dire 10 1010b,registre 0000000000001010 (16 portes logiques)
Pour les micros actuels,le programme exécute se voit affecter un coefficient de sécurité (3) qui ne lui permet pas d'utiliser les instructions,bios ou très peu.Int 21h est inaccessible dans un éxécutable.
cs_ghuysmans99
Messages postés3983Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 3 mars 2009 à 18:57
@ [auteur/LONDONIC/1587157.aspx Londonic] : T'es à côté de la plaque ...
@ [auteur/TOUTENMASM/18495.aspx ToutEnMasm] : Si le programme est exécuté en mode protégé (donc 32 bits), les interruptions du mode réel ne sont plus utilisables tel-quel (et même le kernel de Windows ne peut s'en servir). Les vecteurs d'interruptions sont l'IDT.
Rien à voir avec l'âge des machines !
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_ghuysmans99
Messages postés3983Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 3 mars 2009 à 20:50
CMD n'a plus rien à voir avec MS-DOS, à part peut-être l'apparence.
Si tu veux faire tourner ton .exe, télécharge FreeDOS et installe-le sous VirtualBox, par exemple.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 3 mars 2009 à 21:56
Certaines interruptions sont encore utilisables et même sur Win x64.
D'ailleurs tout prog Win x64 finit en 'int 3'.
Il est clair malgré tout qu'on doit développer par appels API et absolument pas à coups d'interruptions qui sont pour la plupart interceptées pas le système.
cs_ghuysmans99
Messages postés3983Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 5 mars 2009 à 19:03
L'interruption 3 est aussi une interrupt 32 bits pour le débugging (enfin je crois ...).
Donc dans ce cas 32 ou 16 ça ne va pas y changer grand-chose !
Londonic
Messages postés298Date d'inscriptionjeudi 22 janvier 2009StatutMembreDernière intervention26 septembre 2009 6 mars 2009 à 10:14
C'est pas clair:
1 : J'ai besoin d'un rappel du mécanisme des interruptions. (Api Win32 ?)
2 : Je comprends vaguement d'après la conversation que 21 prépare les registres du processeur à éxécuter une commande avec l'adresse O9 du string de Path de la commande, mais que, si on met un exécutable, ça fonctionne pas.
J'imagine que je suis encore étalé ?
Londonic
Messages postés298Date d'inscriptionjeudi 22 janvier 2009StatutMembreDernière intervention26 septembre 2009 7 mars 2009 à 07:58
L'API tombe à Pic.
Merci Ghysmans, Réponse 1 Acceptée.
2. Microsoft gère pour nous
Pas de Path à la commande
Il suffit de mettre toutes les
Commandes dans le même dossier.