bon voila j'ai esssayé de mettre ça dans mon code delphi
asm
mov al,2
mov ax,0040h
mov es,ax
mov di,0017h
stosb
dec di
end;
compilation nickel, mais il me sort une erreur EAccesViolation à l'execution au moment du stosb. Pourtant je me suis pas trompé l'adresse, j'ai repris une source pascal qui permet de faire clignoter les dels du clavier...
var
EtatClavier: byte absolute $0040:$0017;
mais cette ecriture n'est plus possible en delphi
bon voilà je sais toujours pas...
-------------------------------
Réponse au message :
-------------------------------
> tu ne peux pas affecter une valeur immédiate à un registre de segment il faut passer par un registre de donnée général:
>
>
mov ax, le_segment > mov es, ax > |
>
> A la place d'un registre de donnée général (AX, BX, CX, DX, SI, DI, BP), tu aussi utiliser la mémoire et la pile:
>
mov [variable], le_segment > mov es, [variable] > |
> ou
>
>
>
Core Breaker 
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > y'a juste un petit problème...
> >
> > j'ai essayé ça :
> >
> > mov al,2
> > mov es,0040h
> > mov di,0017h
> > stosb
> >
> > mais il y a une erreur, il dit "non concordance de taille opérande" pour le mov es,0040h
> > j'ai essayé
> >
> > mov byte ptr [es],0040h
> > mov word ptr [es],0040h
> > mov dword ptr [es],0040h
> >
> > mais ca marche pas non plus... c'est quoi le problème ?
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Tu peut utilisé l'instructions stosb : cette instrution place le contenu de al à l'adresse es:di dons tu met dans es le segment et dans di l'offset de l'octet à placer. Ainsi tu n'a pas besoin d'utiliser ds ( attention après cette instruction di à augmenté de 1 )
> > >
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > ca fait pas longtemps que j'ai commencé l'asm... et j'aimerai savoir comment on fait pour modifier un octet en mémoire sans pas par DS
> > > >
> > > > j'ai une adresse segment et une offset et j'aimerai pouvoir modifier cette adresse...
> > > >
> > > > Comment faire ?
> > >
> >
>