Précédent   Forum du club des développeurs et IT Pro > Autres langages > Assembleur > x86 16-bits
x86 16-bits Architecture x86 16 bits et ses outils (assembleurs, debuggers, émulateurs...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 22/04/2012, 13h48   #1
zadrov_nicolai
 
Homme
Inscription : février 2012
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : février 2012
Messages : 7
Points : -1
Points : -1
Par défaut saisie d'une chaine

Bonjour, je veux réaliser un programme qui lit une chaine au clavier et qui dit si un caractère y apparait ou non. Mon problème c'est que lors de l'execution, on ne me donne pas la main pour entrer la chaine, la programme passe directement aux traitement suivants :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
bits 16
org 0x100
 
segment .data 
msgExist  db "existe$"
msgDExist db "n'existe pas$" 
 
segment .bss
chaine resb 10
 
segment .text
 
;; saisie chaine 
mov dx, chaine 
 
mov ah, 0Ah
int 21h
 
;; parcourir la chaine 
mov si, chaine 
incSi:
cmp  byte[si], 'b' ; si on tombe sur le caractère une fois on arette de parcourir la chaine 
je existe 
cmp byte[si], 13 ; si on arrive a la fin de la chaine, on dit que le carac n'existe pas 
je existePas
inc si ; incrémenter l'indice 
jmp incSi
 
existe :
;; affichage du message 
mov dx, msgExist
mov ah, 09h
int 21h
jmp suite 
 
existePas:
;; affichage du message 
mov dx, msgDExist
mov ah, 09h
int 21h
 
suite:
;; maintenir l'ecran 
mov ah, 07h
int 21h
 
;; fin du programme 
mov ax, 0x4c00
int 21h
Il ignore les lignes de 13 a 17 je ne sais pas pourquoi, il m'affiche toujours "existe"

Merci
zadrov_nicolai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2012, 18h47   #2
edfed
Membre chevronné
 
Avatar de edfed
 
être humain
Inscription : décembre 2007
Messages : 471
Détails du profil
Informations professionnelles :
Activité : être humain

Informations forums :
Inscription : décembre 2007
Messages : 471
Points : 619
Points : 619
un .com n'a qu'un segment pour le code ET les données ET la pile;

le fait de declarer plusieurs segments rend surement le programme hazardeux.
__________________
http://www.pending.me.uk/nmc/bla_1356091200.png
Vivement 21/12/2012
edfed est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2012, 22h17   #3
touirik
Invité régulier
 
Homme
Inscription : avril 2011
Messages : 25
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 25
Points : 5
Points : 5
oui c'est ça, je me suis contenté d'un seul segment, et ca marche a présent. merci
touirik est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 00h39.


 
 
 
 
Partenaires

Hébergement Web