Problème de retour à la ligne [Résolu]

Messages postés
38
Date d'inscription
jeudi 13 mars 2008
Dernière intervention
9 décembre 2011
- 11 juin 2008 à 16:34 - Dernière réponse :  ashitaka
- 13 févr. 2018 à 11:45
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, 10, 0
Normalement \n signifie de passé à la ligne mais ca marche pas. Ca m'affiche "ligne1\nligne2".
Je voudrai que ca passe à la ligne. Comment faire????

Merci d'avance, mmaximum
Afficher la suite 

Votre réponse

9 réponses

Messages postés
38
Date d'inscription
jeudi 13 mars 2008
Dernière intervention
9 décembre 2011
- 11 juin 2008 à 16:37
0
Merci
J'ai oublié de vous donné ca:

"Fonction" qui affiche la variable:

afficher:
    push ax
    push bx
.debut:
    lodsb         ; ds:si -> al
    cmp al, 0     ; fin chaine ?
    jz .fin
    mov ah, 0x0E  ; appel au service 0x0e, int 0x10 du bios
    mov bx, 0x07  ; bx -> attribut, al -> caractere ascii
    int 0x10
    jmp .debut

.fin:
    pop bx
    pop ax
    ret

Bout de code qui lance la "fonction":
    mov si, msgDebut
    call afficher
Commenter la réponse de mmaximum
Messages postés
202
Date d'inscription
mardi 17 mai 2005
Dernière intervention
29 septembre 2008
- 12 juin 2008 à 13:00
0
Merci
D'après toi, à quoi correspondent les deux octets 13 et 10 de la ligne ci-dessous ?
 
msgDebut db "ligne1\nligne2", 13, 10, 0
Commenter la réponse de cs_Nasman
Messages postés
38
Date d'inscription
jeudi 13 mars 2008
Dernière intervention
9 décembre 2011
- 12 juin 2008 à 13:05
0
Merci
Je sais absolument pas!!!!
Commenter la réponse de mmaximum
Messages postés
202
Date d'inscription
mardi 17 mai 2005
Dernière intervention
29 septembre 2008
- 12 juin 2008 à 13:26
0
Merci
Google est ton ami (rubrique codes ascii)

10 = LF (line feed - saut de ligne)
13 = CR (carriage return - retour à la ligne)
Commenter la réponse de cs_Nasman
Messages postés
38
Date d'inscription
jeudi 13 mars 2008
Dernière intervention
9 décembre 2011
- 12 juin 2008 à 16:02
0
Merci
Merci pour vos réponses mais comment je fais.
J'ai viens d'essayer comme ca:
msgDebut db "ligne1 10 ligne2", 13, 10, 0
puis
msgDebut db "ligne1 \10 ligne2", 13, 10, 0
 mais ca marche pas.
Il faut que je mette où les codes 10 et 13????
Commenter la réponse de mmaximum
Messages postés
38
Date d'inscription
jeudi 13 mars 2008
Dernière intervention
9 décembre 2011
- 12 juin 2008 à 16:25
0
Merci
J'ai fini par trouvé.
Il suffisait de faire:
msgDebut db "ligne",13,10,"ligne2", 13, 10
Merci à vous tous de m'avoir aider
Commenter la réponse de mmaximum
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Dernière intervention
14 février 2014
- 19 juin 2008 à 11:23
0
Merci
salut,

quand on utilise les instructions lods,scans,cmps,movs, on initialise le flag de direction avant.

@++
Commenter la réponse de cs_patatalo
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Dernière intervention
14 février 2014
- 19 juin 2008 à 11:26
0
Merci
re,

Quand on est vraiment serieux, on fait:

pushf
cld
...
popf

cela evite de retourner un flag différent a la fonction appelante.

@++
Commenter la réponse de cs_patatalo

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.