Petite question...

did2604 Messages postés 29 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 19 août 2008 - 7 déc. 2003 à 21:16
cs_ManChesTer Messages postés 374 Date d'inscription vendredi 20 octobre 2000 Statut Modérateur Dernière intervention 15 janvier 2021 - 9 déc. 2003 à 04:15
Bonsoir,

Que signifie exactement la notation crochet en assembleur ? Je m'explique, par exemple : mov cl,[bx], je suppose que ce n'est pas un move ordinaire du registre bx vers cl (illogique d'ailleurs car bx est un registre 16 bits et cl un registre 8 bits). Cela voudrait-il signifier "le contenu" ? Merci !
Did'

2 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 déc. 2003 à 09:46
place dans le registre ce qui se trouve a l'adresse entre crochets.
En C ce serait:
myval = *addr;
BruNews, ciao...
0
cs_ManChesTer Messages postés 374 Date d'inscription vendredi 20 octobre 2000 Statut Modérateur Dernière intervention 15 janvier 2021
9 déc. 2003 à 04:15
pour etre precis...

adresse intitulè donèes
00000010 Hello db 'HELLO',0

si tu fais :

mov edi,Hello
edi contiend 00010

mov eax,[edi]
eax contiendra 'LLEH'
(donc les donnèes (la valeur) pointèe par edi)

mov eax,edi
eax contiendra l'adresse 00000010 (qui pointe sur 'HELLO').

mov eax,Hello
eax contiendra 'LLEH'

mov eax,OFFSET Hello
eax contiendra l'adresse 00000010

mov ebx,[eax]
ebx contiendra 'LLEH'

il existe encore plein de facon de faire ce genre de manip,
un exemple vaut souvent mieux qu'un long discour, je te conseille donc de lire quelques tutos...

Bon Coding ....

ManChesTer.
0
Rejoignez-nous