Accueil > Forum > > > > Probleme ligne de commande
Probleme ligne de commande
mardi 9 août 2005 à 21:44:15 |
Probleme ligne de commande

Nitruk
|
Comment trouver l'offset de début de ligne de commande dans un exe 16 bits et eventuellement comment s'y référencer sous MASM ? (Je débute...) merci d'avance
Nitruk
|
|
mercredi 10 août 2005 à 09:08:28 |
Re : Probleme ligne de commande

Nasman
|
Sauf erreur de ma part les fichiers .exe 16bits présentent le même
en-tête (PSP) que les fichiers .com dont voici le descriptif. La
différence principale entre ces deux formats est que l'exécutable .com
commence en CS:0100h avec un PSP en CS:0000h (et une ligne de commande
en 81h) - Rappel CS=DS=ES=SS pour un .com.
Le fichier exe 16bits commence en CS:0000h et son PSP en DS:0000. Tu devrais trouver ta ligne de commande à :
DS:0081
Descriptif du PSP
|
Offset |
Description |
Taille (octets) |
|
00h |
Appel de l'int 20h |
2 |
|
02h |
Adresse du 1er segment qui se trouve au delà du
prog. |
2 |
|
04h |
Réservé |
1 |
|
05h |
Far call de l'int 21h (inutilisé) |
5 |
|
0Ah |
Vecteur de l'int 22h |
4 |
|
0Eh |
Vecteur de l'int 23h |
4 |
|
12h |
Vecteur de l'int 24h |
4 |
|
16h |
Réservé |
22 |
|
2Ch |
Segment du bloc d'environnement |
2 |
|
2Eh |
Réservé |
82 |
|
80h |
Nombre de caractères dans la ligne de commande sans compter le
code ASCII 13 (retour chariot) |
1 |
|
81h |
Ligne de commande (à partir du caractère espace qui suit le nom
du programme) + code ASCII 13 |
127 |
Bonne prog
|
|
mercredi 10 août 2005 à 11:07:30 |
Re : Probleme ligne de commande

Nitruk
|
J'ai essayé comme ça mais mon programme n'a pas l'air de trouver là-bas la ligne de commande. S'il faut que je me référencie à CS, je ne sais pas comment faire. Je vous envoie ce bout de code. Pourriez vous me le corriger svp ? mov BP, 0080h inc BP mov al, [BP+00] cmp al, 0Dh je Traitement2 dec BP xor si, si
Nitruk
|
|
mercredi 10 août 2005 à 11:09:06 |
Re : Probleme ligne de commande

Nitruk
|
Et puis au passage, me dire comment faire pour un exe 32 bits ? Je suis vraiment débutant et je n'ai jamais programmé avant.
Nitruk
|
|
mercredi 10 août 2005 à 11:28:01 |
Re : Probleme ligne de commande

Nasman
|
Je pense que ton problème provient du fait que BP est un registre de
pile et qu'il fonctionne avec SS qui ne pointe pas sur le PSP
|
Registre |
Valeur avant lexécution |
|
Fichier COM |
Fichier EXE |
|
CS |
Adresse de lunique segment, cest à dire adresse de segment du
PSP |
Adresse du segment de code |
|
DS |
Adresse de lunique segment, cest à dire adresse de segment du
PSP |
Adresse de segment du PSP |
|
ES |
Adresse de lunique segment, cest à dire adresse de segment du
PSP |
Adresse de segment du PSP |
|
SS |
Adresse de lunique segment, cest à dire adresse de segment du
PSP |
Adresse du segment de
pile |
Si tu n'utilise pas ES dans ton programme, il pointe normalement sur le PSE. Il te faut essayer les instructions suivantes:
mov al,[ES:0080h] ;contient le nombre d'octets de la ligne de commande
je paslignecommande ;si nul alors pas de ligne de commande
traitement
;chaine de al caractères (sans le 13) commençant en
;ES:0081h
|
|
mercredi 10 août 2005 à 12:08:48 |
Re : Probleme ligne de commande

Nasman
|
Je ne peux pas trop t'apporter d'aide pour la création de fichiers
32bits avec MASM car j'utilise NASM dont la syntaxe est un peu
différente.
Les opérations se déroulent généralement ainsi:
1) Création du (ou des) fichier asm avec un éditeur de texte
2) Compilation du (ou des) fichier avec MASM avec indication du format désiré (objet, coff, ...)
avec Nasm c'est par exemple
Nasmw -fobj Fichier.asm ;-fobj crée un fichier objet (.obj)
3) Edition de liens - Rassemble les différents programmes objets et
bibliothèques, importe les adresses des fonctions de dll, des API, crée
l'entête PE (format des exécutables windows)
Avec alink:
alink -oPE Fichier.obj Fichier2.obj Fichier3.res
Fichier3.res est une ressource, pour inclure une
icone, des boites de dialogue, des menu etc à ton exécutable.
Voici un petit programme pour illustrer les différentes sections
;-----------------------------------------------
;importation de bibliothèques dll windows
extern ExitProcess
import ExitProcess Kernel32.dll
extern MessageBoxA
import MessageBoxA user32.dll
;-------------------------------------------------
;déclaration de la section code
;
segment code public use32 class=CODE
;---------------------------------------------------
;définit le point d'entrée du programme (où il débute)
;
..start:
push dword 0 ;bouton OK seulement
push dword Titre
push dword Texte
push dword 0 ;handle fenêtre
call [MessageBoxA] ;affiche le message
push dword 0
call [ExitProcess] ;termine le processus
ret
;--------------------------------------------------
;déclaration des données initialisées
;
segment data public use32 class=DATA
Titre db "Titre de la messagebox",0
Texte db "Voilà mon message",0
Le fichier PE créé possèdera une section .text (programme), une section
.data (intitulés du message), une section .imports (les dll
Kernel32.dll et user32.dll et les fonctions API MessageBoxA et
ExitProcess).
J'espère avoir pu t'aider
|
|
mercredi 10 août 2005 à 12:24:39 |
Re : Probleme ligne de commande

Nitruk
|
Merci, maintenant je progresse. Mais je voudrais mettre un registre à la place de 0081h pour pouvoir incrémenter au fur et à mesure sa valeur, et Masm n'accepte pas les différents registres que j'aiproposé jusque là. Quel registre pourrais-je proposer ? Et au passage, quel(s) caractère(s) faut-il envoyer pour effacer un caractère précédemment tapé ?
Nitruk
|
|
mercredi 10 août 2005 à 12:49:30 |
Re : Probleme ligne de commande
|
mercredi 10 août 2005 à 12:51:52 |
Re : Probleme ligne de commande

Nitruk
|
En l'occurence je prefixe avec es, j'utilise deja si, et bx et bp ne sont pas acceptés. Je vais essayer avec bi.
Nitruk
|
|
mercredi 10 août 2005 à 12:52:34 |
Re : Probleme ligne de commande
|
Cette discussion est classée dans : ligne, probleme, commande
Répondre à ce message
Sujets en rapport avec ce message
[nasm] ligne de commande [ par Kevin68 ]
Bonjour :),Je suis débutant en assembleur, j'utilise nasm sous linux.J'ai cherché partout un exemple de code source qui me permettrait de récupérer le
Drawline en asm [ par raoulli ]
bonsoir.J'ai voulu creer une ligne sur l'ecran en asm, mais Drawline ?, je ne la trouve pas, si elle existe.j'ai trouvé des infos, mais avec les inter
Souris PS/2 [ par bofur ]
j'essaye de créer un mini os mais j'ais un probleme avec la souris ps/2: je n'arrive pas a lui envoyer une commandeF4h est la commande pour demander a
include et fasm [ par CheckList ]
Bonjour, j'ai un probleme avec FASM. Voila, j'essaye de compilé un programme deja tout fait ecrit en FASM trouvez dans le repertoire exemple.Mon prob
Problème de retour à la ligne [ par mmaximum ]
Bonjour à tous,J'ai un petit problème. J'ai un bout de code(ci-dessous) qui assigne du texte à une variable(msgDebut).msgDebut db "ligne1\nligne2", 13
Probleme de comprehention [ par nuns ]
Bonjour,je suis entrain d'apprendre l'assembleur, et c'est plus dure que je pensais.rien qu'avec c'est trois ligne je suis presque perdu ;(Affiche "10
commande via le Port Série [ par jonathanzanti ]
Avant tout, je vous souhaites à toutes et à tous une très bonne année 2009 ! Bien voila, je me lance, je travail depuis pas mal de temps sur un proje
compilation sous MPLAB [ par alphab18 ]
slt j'ai toujours un probleme de compilation sous MPLAB quand je prend un code du net ,et que je le copie dans mplab pour tester s'il fonctionne .j'
Probleme avec l'API CLSIDFromProgID [ par vulpes87 ]
BonjourJe debute avec la programmation objet avec Tasm.J'ai trouve une belle exemple Masm qui definie une variable comme suit:wszOfficeApp dw L("Excel
Probleme de programmation en assembleur 8086 [ par lovelygirl88 ]
slt tous le monde, je suis debutante en assembleur 8086 et j'ai besoin d'un programme qui fait l'addition de deux nombres,est ce que qulequ'un peut m'
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|