Problème de retour à la ligne

Résolu
mmaximum Messages postés 38 Date d'inscription jeudi 13 mars 2008 Statut Membre Dernière intervention 9 décembre 2011 - 11 juin 2008 à 16:34
 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

8 réponses

cs_Nasman Messages postés 202 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 29 septembre 2008 3
12 juin 2008 à 13:26
Google est ton ami (rubrique codes ascii)

10 = LF (line feed - saut de ligne)
13 = CR (carriage return - retour à la ligne)
3
mmaximum Messages postés 38 Date d'inscription jeudi 13 mars 2008 Statut Membre Dernière intervention 9 décembre 2011 2
12 juin 2008 à 16:25
J'ai fini par trouvé.
Il suffisait de faire:
msgDebut db "ligne",13,10,"ligne2", 13, 10
Merci à vous tous de m'avoir aider
2
Salut
0
mmaximum Messages postés 38 Date d'inscription jeudi 13 mars 2008 Statut Membre Dernière intervention 9 décembre 2011 2
11 juin 2008 à 16:37
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
0
cs_Nasman Messages postés 202 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 29 septembre 2008 3
12 juin 2008 à 13:00
D'après toi, à quoi correspondent les deux octets 13 et 10 de la ligne ci-dessous ?
 
msgDebut db "ligne1\nligne2", 13, 10, 0
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mmaximum Messages postés 38 Date d'inscription jeudi 13 mars 2008 Statut Membre Dernière intervention 9 décembre 2011 2
12 juin 2008 à 13:05
Je sais absolument pas!!!!
0
mmaximum Messages postés 38 Date d'inscription jeudi 13 mars 2008 Statut Membre Dernière intervention 9 décembre 2011 2
12 juin 2008 à 16:02
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????
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 1
19 juin 2008 à 11:23
salut,

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

@++
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 1
19 juin 2008 à 11:26
re,

Quand on est vraiment serieux, on fait:

pushf
cld
...
popf

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

@++
0