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

mmaximum 38 Messages postés jeudi 13 mars 2008Date d'inscription 9 décembre 2011 Dernière intervention - 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

mmaximum 38 Messages postés jeudi 13 mars 2008Date d'inscription 9 décembre 2011 Dernière intervention - 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
cs_Nasman 202 Messages postés mardi 17 mai 2005Date d'inscription 29 septembre 2008 Dernière intervention - 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
mmaximum 38 Messages postés jeudi 13 mars 2008Date d'inscription 9 décembre 2011 Dernière intervention - 12 juin 2008 à 13:05
0
Merci
Je sais absolument pas!!!!
Commenter la réponse de mmaximum
cs_Nasman 202 Messages postés mardi 17 mai 2005Date d'inscription 29 septembre 2008 Dernière intervention - 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
mmaximum 38 Messages postés jeudi 13 mars 2008Date d'inscription 9 décembre 2011 Dernière intervention - 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
mmaximum 38 Messages postés jeudi 13 mars 2008Date d'inscription 9 décembre 2011 Dernière intervention - 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
cs_patatalo 1466 Messages postés vendredi 2 janvier 2004Date d'inscription 14 février 2014 Dernière intervention - 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
cs_patatalo 1466 Messages postés vendredi 2 janvier 2004Date d'inscription 14 février 2014 Dernière intervention - 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.