Soyez le premier à donner votre avis sur cette source.
Snippet vu 4 850 fois - Téléchargée 29 fois
.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
16 sept. 2006 à 16:37
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.