moffer
Messages postés49Date d'inscriptionlundi 23 juin 2003StatutMembreDernière intervention 2 juin 2004
-
27 févr. 2004 à 16:59
TangiX
Messages postés59Date d'inscriptiondimanche 15 décembre 2002StatutMembreDerniè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 ...)
cs_patatalo
Messages postés1466Date d'inscriptionvendredi 2 janvier 2004StatutModérateurDernière intervention14 février 20142 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