IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

[ASM] - Compiler des ligne ASM


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2004
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 146
    Points : 91
    Points
    91
    Par défaut [ASM] - Compiler des ligne ASM
    Bonjour a tous !

    Sur un autre forum j'ai demander une procedure qui me permetrait d'executer un Reboot de la machine sous MS-DOS, étant que celui-ci ne contient aucune commande pour ce faire.

    Quelqu'un ma donnée ceci :

    Pour un redémarrage a froid :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    MOV    AX,0040h 
         MOV    ES,AX 
         MOV    DI,0072h 
         XOR    AX,AX 
         STOSW 
         DB     0EAh, 00, 00, 0FFh, 0FFh ; JMP FFFF:0000h
    Pour un redémarrage à chaud :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    MOV    AX,0040h 
         MOV    ES,AX 
         MOV    DI,0072h 
         MOV    AX,01234h 
         STOSW 
         DB     0EAh, 00, 00, 0FFh, 0FFh ; idem
    Comme vous pouvez le voir ceci est en assembleur, hors je débute sur Delphi, alors l'assembleur encore moin, donc si quelqu'un pourrait me donner la procédure a réaliser cela serait super sympa, Merci !

    Je tient a dire que j'ai deja essayer de compiler ceci avec la commande asm, sans resultat ! je sais que Delphi prend en charge l'assembleur, c'est pourquoi je me tourne ici, merci encore !

  2. #2
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Par défaut
    Tu peux le compiler sous Delphi mais ça ne fonctionnera pas. C'est du code 16 bits en mode réel alors que Delphi fonctionne en 32bits en mode protégé.

    Dés l'exécution de MOV ES,AX XP/WIN2000 va te jeter net.
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  3. #3
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2004
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 146
    Points : 91
    Points
    91
    Par défaut
    En effet je doit faire un executable pour MS-DOS, cela veut dire qu'avec Delphi je suis condamné a faire du 32 bits, hors moi il me faut un executable en mode réel pour DOS, ce n'est pas possible sous delphi ?!

  4. #4
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 152
    Points
    10 152
    Par défaut
    Citation Envoyé par TOTO32
    hors moi il me faut un executable en mode réel pour DOS, ce n'est pas possible sous delphi ?!
    Non, ce n'est pas possible ; à moins que tu aies encore un bon vieux Delphi 1
    Mais franchement qu'est-ce qui t'oblige à faire du 16 bits ? Ca fait 10 ans que c'est dépassé ça !
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  5. #5
    Membre du Club

    Inscrit en
    Juillet 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 48
    Points : 58
    Points
    58
    Par défaut
    il faut utiliser turbo pascal. Je crois que Turbo pascal 7 est gratuit et existe en téléchargement.

  6. #6
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2004
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 146
    Points : 91
    Points
    91
    Par défaut
    Ce qui m'y oblige, c'est que je suis en multiboot, et que je doit pouvoir faire rebooter ma machine a partir de MS-DOS, étant donnée qu'aucune commande n'a l'air d'exister, je veux donc créer une commande qui me permettent de le faire !

  7. #7
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Par défaut
    Citation Envoyé par sjrd
    Non, ce n'est pas possible ; à moins que tu aies encore un bon vieux Delphi 1
    Mais franchement qu'est-ce qui t'oblige à faire du 16 bits ? Ca fait 10 ans que c'est dépassé ça !
    Non, même pas !
    Delphi faisait des application 16 bit certe, mais des applications Windows.
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  8. #8
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Tu peux utiliser debug en mode console pour créer un fichier .com.
    Voilà les commandes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    >debug
    A
    INT     19
    MOV     AX,004C
    INT     00
     
    N reboot.com
    r cx
    6
    w
    q
    A assemble
    N nomme le fichier, répertoire courant fat16
    R cx taille du fichier en octet ( hexa)
    W ecrit le fichier
    q quitte debug

    je crois que c'est un reboot à chaud, à vérifier dans la liste des interupt dispo dans la rubrique Pascal.

    Pour ton code je ne me souviens plus comment gérer les DB, si c'est possible.

  9. #9
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2004
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 146
    Points : 91
    Points
    91
    Par défaut
    Merci !
    mais j'ai jamais fait d'assembleur et je ne sais pas comment proceder pour compiler ces quelque ligne, et en toute franchise tu me pose une sacrée colle

    Depuis hier, et encore a l'instant même je cherche quelque chose qui pourrait me faire redemmarrer mon PC sous DOS, mais je ne trouve pas !

    Mise a part ces quelque ligne en assembleur, qui ressemble plus a des hiéroglyphe , d'aprés ce que tu me dit, Debug me compilerais mes ligne en assembleur ???

  10. #10
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par TOTO32
    et en toute franchise tu me pose une sacrée colle
    Non, je te propose une solution avec DEBUG. Ce n'est pas un compilateur de code source ASM mais un assembleur simple.

    Ouvre une concole
    Saisie ensuite, dans l'orde ce que je t'ai indiqué, les instructions une par une séparées par un retour chariot, pareil pour une ligne vide ( fin du 'mode' assemble').
    Ce qui donne :

    Microsoft Windows XP [version 5.1.2600]
    (C) Copyright 1985-2001 Microsoft Corp.

    C:\Temp>debug
    -A
    1547:0100 INT 19
    1547:0102 MOV AX,004C
    1547:0105 INT 00
    1547:0107
    -N reboot.com
    -r cx
    CX 0000
    :6
    -w
    Ecriture de 00006 octets
    -q

    C:\Temp>dir reb*.*
    Le volume dans le lecteur C n'a pas de nom.
    Le numéro de série du volume est 3484-41FB

    Répertoire de C:\Temp

    02/09/2005 22:09 6 REBOOT.COM
    1 fichier(s) 6 octets
    0 Rép(s) 71*305*285*632 octets libres

    C:\Temp>
    Effectivement les infos données était un peu juste

  11. #11
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2004
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 146
    Points : 91
    Points
    91
    Par défaut
    Merci Laurent !

    J'ai essayer sous MSDOS, mais il me demande NTLDR, entre temp y'a quelqu'un qui ma envoyer un programme en assembleur qui a donc resolus mon probleme.

    Je vous remercie tous !

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment libérer des disques ASM ?
    Par agdid04 dans le forum Administration
    Réponses: 1
    Dernier message: 08/04/2011, 13h43
  2. Programme ASM compilé en .EXE pour amorcer sur HDD
    Par SebioHazard dans le forum x86 16-bits
    Réponses: 30
    Dernier message: 21/01/2008, 01h30
  3. Comment modifier des commandes asm d'un programme distant ?
    Par devoluti0n dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 05/11/2007, 03h43
  4. [C + ASM] Manipulation des E/S Windows
    Par Soznor dans le forum Assembleur
    Réponses: 3
    Dernier message: 31/08/2007, 16h26
  5. Compiler un prog asm
    Par casafa dans le forum Assembleur
    Réponses: 4
    Dernier message: 18/10/2005, 16h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo