Partie haute et basse

noname001 Messages postés 21 Date d'inscription dimanche 15 novembre 2009 Statut Membre Dernière intervention 1 mai 2010 - 15 mars 2010 à 14:29
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 15 mars 2010 à 18:29
Bonjour à tous,

voilà j'aurais essentiellement 2 questions:

1)J'ai un petit soucis concernant la partie haute et basse d'une variable.

Imaginons que dans le registre EAX j'ai 0x2675 et dans EBX 0x88.
J'aimerais placer EAX dans la partie basse de la variable ( X par exemple) et EBX dans la partie haute.
Comment dois-je m'y prendre ?

2)Dans mon programme j'ai déclaré un vecteur:
vecteur DB 76,111,114,101,109
Quel est la manière de boucler et de récupérer à chaque occurrence une case du vecteur afin de la placer dans un registre?


Merci pour votre aide!

1 réponse

BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
15 mars 2010 à 18:29
movzx ecx, ax
ECX contien les 16 bits bas de EAX.

2)
Je vais lire dans EAX 1 octet du vecteur à chaque tour.
Je pars du dernier (c'est mon choix).
mov edx, offset vecteur
mov ecx, 4 ; 5 octets dans le vecteur
lireVECTEUR:
movzx eax, byte ptr[ecx + edx]
; EAX DISPO A UTILISER
sub ecx, 1
jns short lireVECTEUR

ciao...
BruNews, MVP VC++
0