Utilisation des variables

moffer Messages postés 49 Date d'inscription lundi 23 juin 2003 Statut Membre Dernière intervention 2 juin 2004 - 27 févr. 2004 à 16:59
TangiX Messages postés 59 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 2 juin 2004 - 6 mars 2004 à 19:29
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

cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
28 févr. 2004 à 00:31
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

@++
0
moffer Messages postés 49 Date d'inscription lundi 23 juin 2003 Statut Membre Dernière intervention 2 juin 2004
28 févr. 2004 à 13:56
y a pa plus simple !?
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
28 févr. 2004 à 14:24
mov memvideo,chaine

@++
0
TangiX Messages postés 59 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 2 juin 2004
6 mars 2004 à 19:29
patatalo a dit : "mov memvideo,chaine"

c de l'humour ?

%-6 TangiX %-6
0
Rejoignez-nous