Utilisation des variables

Signaler
Messages postés
49
Date d'inscription
lundi 23 juin 2003
Statut
Membre
Dernière intervention
2 juin 2004
-
Messages postés
59
Date d'inscription
dimanche 15 décembre 2002
Statut
Membre
Dernière intervention
2 juin 2004
-
Bonjour à tous.

J'ai besoin de recopier ma variable chaine au segment 0b800 pour l'afficher, sans utiliser les interruptions. (c'est pour ensuite la faire défiler ...)

(nasm)
SEGMENT DATA

chaine db 'Bonjour$'


merci d'avance !

4 réponses

Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1
salut,

1ere solution:
appel direct du vecteur de la table d'interruption

push es
xor ax,ax
mov es,ax
lea si,[chaine]
mov al,2
.1
cmp byte[si],'$'
mov dl,[si]
lea si,[si+1]
je .2
call far [es:0x21*4] ; elle est bonne non ???
jmp .1
.2
pop es
ret

2eme solution:
ecriture directe dans la memoire video

PAGE0_OFFS EQU 0
PAGE1_OFFS EQU 0x8000

push es
push word 0xB000
pop es
mov di,PAGE1_OFFS
lea si,[chaine]
cld
.1
cmp byte[si],'$'
lodsb
je .2
stosb
jmp .1
.2
pop es
ret

@++
Messages postés
49
Date d'inscription
lundi 23 juin 2003
Statut
Membre
Dernière intervention
2 juin 2004

y a pa plus simple !?
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1
mov memvideo,chaine

@++
Messages postés
59
Date d'inscription
dimanche 15 décembre 2002
Statut
Membre
Dernière intervention
2 juin 2004

patatalo a dit : "mov memvideo,chaine"

c de l'humour ?

%-6 TangiX %-6