Récupérer la ligne de commande passée au programme

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 408 fois - Téléchargée 27 fois

Contenu du snippet

Récupère la ligne de commande passée au programme et l'affiche à l'écran

Source / Exemple :


.386

code segment use16   ;segment de code

	assume cs:code, ds:code, ss:code

	org 100h   ;caractéristique des fichier .com

	debut:
		mov ax, cs

		mov ds, ax
		mov si, 82h

		mov es, ax
		lea di, LigneCommande

		mov cl, byte ptr [ds:80h]

		rep movsb   ;copier le nombre contenu dans [cx] d'octets de l'adresse [ds:si] à l'adresse [es:di] --> paramètre définis précédemment

		mov byte ptr [es:di], '$'   ;écrire $ à la fin de la chaine récupéré pour marquer la fin de celle-ci, pour la fonction d'affichage

		mov ah, 09h   ;fonction d'affichage
		lea dx, LigneCommande   ;offset du premier caractère de la chaine à afficher
		int 21h   ;intérruption 21h (celle du dos par exelence)

		ret   ;termine le programme

		LigneCommande db 127 dup(?)   ;emplacement libre de 127 octets pret à recevoir la ligne de commande
 
code ends

end debut

Conclusion :


compilage avec tasm

A voir également

Ajouter un commentaire

Commentaire

Oeil_de_taupe
Messages postés
150
Date d'inscription
samedi 31 janvier 2004
Statut
Membre
Dernière intervention
16 février 2009

Salut,

J'ai regardé ton code et je le trouve très intéréssant. J'ai déjà essayé de faire un programme qui affiche la ligne de commmande depuis le PSP d'un programme 16 bits. Mais mon programme est très différent du tien. Pourrais-tu me dire si selon toi, le mien est correctement écrit?

[BITS 16]
[ORG 100h]

;Affichage 4 ever

xor CH, CH
mov CL, BYTE [80h] ;Prend le nombre de car.

cmp CX, 0
je erreur

;Impression de la chaîne
mov AH, 02h
mov DI, 0

affichage:
mov DL, BYTE [82h+DI]
add DI, 1
int 21h
loop affichage

ret

erreur:
mov AH, 09h
mov WORD DX, WORD erreur_aff
;mov DS, SEG erreur_aff
int 21h

ret
erreur_aff dw "Erreur lors de la lecture de la ligne de commande", '$'

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.