begin process at 2012 05 25 03:44:26
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Assembleur

 > 

Processeurs

 > 

X86

 > 

Entrée d'une chaine de cractères


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Entrée d'une chaine de cractères

jeudi 9 avril 2009 à 12:02:03 | Entrée d'une chaine de cractères

w4kfu

J'écris actuellement un programme en assembleur utilisant la fonction 0Ah de linterruption 21h ( Entrée d'une chaine de caractère )
Voila le code ne fonctionnant pas :
.MODEL SMALL
.STACK 100h
 
.DATA
message db "Vous avez tapé:",10,13,"$"
chaine db 13,?,14 dup(?),?
 
.CODE
.8086
 
debut:
 
MOV AX,@data
MOV DS,AX
 
;Effacement du buffer et du saisi clavier
mov ah,0Ch
;Saisie au clavier d'une chaine
mov al,0Ah
;buffer ou sera placé la chaine
mov dx,OFFSET chaine
int 21h
 
;Affichage du message
MOV AH,09h
MOV DX,OFFSET message
INT 21h
 
;Affichage chaine rentré
MOV AH,09h
MOV DX,OFFSET chaine
INT 21h
 
END debut

Après compilation edition des liens du programme ,  j'execute , je rentre bien ma chaine mais au moment de l'affichage ce n'est pas du tout ma chaine qui s'affiche
jeudi 9 avril 2009 à 13:18:37 | Re : Entrée d'une chaine de cractères

w4kfu

Réponse acceptée !
Je crois avoir compris mon problème , ma chaine ne se termine pas par un '$' donc normal qu'il m'affiche n'importe quoi.
Est ce bien cela le problème que je rencontre ?
jeudi 9 avril 2009 à 14:02:10 | Re : Entrée d'une chaine de cractères

w4kfu

Réponse acceptée !
Voilà l'évolution de mon programme :
.MODEL SMALL
.STACK 100h

.DATA
message db "Tapez quelque chose:",10,13,"$"
message2 db 10,13,"Vous avez tapee :$"
chaine  db 13,?,14 dup(?),?

.CODE
.8086

debut: 

        MOV AX,@data
        MOV DS,AX
               
        ;Affichage du message de demande de frappe
        MOV AH,09h
        MOV DX,OFFSET message
        INT 21h           
               
        ;Effacement du buffer et du saisi clavier
        mov ah,0Ch
        ;Saisie au clavier d'une chaine       
        mov al,0Ah
        ;buffer ou sera placé la chaine
        mov dx,OFFSET chaine
        int 21h

        ;On met bx à 0
        xor bx,bx
        ;On met le nombre de caractere lu dans bl
        mov bl,byte ptr[chaine+1]
        ;On ecrit 0 après la chaine
        mov byte ptr[chaine+2+bx],0
       
        ;Affichage du message
        MOV AH,09h
        MOV DX,OFFSET message2
        INT 21h   
       
        ;Affichage chaine rentré
        MOV AH,09h
        MOV DX,OFFSET chaine+2
        INT 21h
       
        ;;fin du programme et retour au dos
        MOV AH,4Ch
        INT 21h
       
        END debut

Le programme me r affiche bien ma chaine , mais j'ai parfois l'apparition de caractère bizarre  à la fin du programme...
jeudi 9 avril 2009 à 14:06:33 | Re : Entrée d'une chaine de cractères

w4kfu

Réponse acceptée !
Problème résolu au lieu de mettre 0 a la fin de la chaine , j'ai mis le code hexa du $ => 24h


Cette discussion est classée dans : chaine, mov, entrée, 21h, dx


Répondre à ce message

Sujets en rapport avec ce message

loader problème de code [ par TRAX44 ] salut tout le monde !!g essayer de faire un loader (petit prog qui charge un autre prog) mais c un desartre je comprend pas très bien ce qui ne marche pb int 21h ah=0ah [ par mat74 ] salut a ts ,voila j'ai fais un programme qui est censé lire une chaine entré par l'utilisateur et ensuite la reafficher . Il me demande bien d'entré u Chaine [ par RM50Man ] Voila je saisi ma chaine de caractere comme suit:mov ah, 0chmov al,  0ahmov dx, offset bufferint 21h mov ah, 09hmov dx, offset bufferint 21het ensuite Mini OS !! debut [ par Hardouz ] salut a tous ! je debut en ASM je vx bosser un px en ASM je connais l'architechture ect !!! j'ai fais un pti programme mais il ya un probléme 1/ lors assembleur/ patronyme [ par maxverypainful ] Bonjour, je suis nouveau en tant qu'étudiant en informatique de gestion et j'ai une question concernant un code que nous devons créer.Il a pour but de probleme d'affichage d'une soustraction [ par calimerros ] [u]Bonjour à tous et à toutes.[/u] Voici un programme que je réalise et je bloque au niveau de l'affichage d'une soustraction (SUB). Pour moi mon pr Addition ASM [ par GibsonUSA ] Bonjour a tous, je débute en ASM 16bits et je bloque pour faire une addition de deux chiffres saisis par l'utilisateur. Voila ce que j'ai fais. A l' problème avec l'interruption 21h et récup de la touche Entrée [ par HirOinEvOl ] Bonjour, je dois développer une animation en assembleur et je souhaite faire une boucle infini [b]jusqu'à[/b] interruption de l'utilisateur. j'utilise Saisie & Calcul de sa taille de caractère en tasm [ par baz13shaz ] je veut saisir une chaine de caractère & calculer sa taille,et je veut charger la chaine saisie en mémoire centrale? que doit je faire? comment je peu Voir si un caractère est dans une chaine [ par Wayth ] Bonsoir, Je viens sur votre forum car je n'arrive pas à trouver un label fonctionnel pour voir si un caractère se trouve ou non dans une chaîne de ca


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,499 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales