petite question sur les registres

petite question sur les registres - ASM - Programmation

Marsh Posté le 06-11-2003 à 21:55:19    

si j'ai AX qui se trouve concaténé avec DX, et que je fais un :
MOV BX,AX qu'aurais je dans BX ? d'apres mes test j'ai ce qu'il y avait dans AX, mais sans ce qu'il y avait dans DX.
 
Es ce que je me trompe ? Si non ,comment faire pour passer la valeur total DX-AX à BX ?
 
Merci  :hello:

Reply

Marsh Posté le 06-11-2003 à 21:55:19   

Reply

Marsh Posté le 06-11-2003 à 21:57:07    

huh ?
dans BX tu auras AX
 
DX est dans DX et pas dans AX
 
DX:AX fait 32bits, je vois pas comment tu veux faire entrer ca dans VX qui lui en fait 16
 
 

Reply

Marsh Posté le 06-11-2003 à 22:06:22    

est il normal que 1/2 ne rentre pas dans AX ? et qu'il concatene donc DX ?

Reply

Marsh Posté le 06-11-2003 à 22:24:59    

hein ?

Reply

Marsh Posté le 06-11-2003 à 22:42:55    

disons, si j'agit sur AX qui est concatené avec DX
par disons un MUL  AX (pour faire un AX^2 par exemple)
le MUL AX vas t'il agir sur AX et DX ?

Reply

Marsh Posté le 06-11-2003 à 22:45:50    

mais comment diable ton AX est il concatené avec DX ?
par quelle sorcellerie ?

Reply

Marsh Posté le 06-11-2003 à 22:49:04    

sans doute car ma valeur ne rentre pas entierement dans AX ?

Reply

Marsh Posté le 06-11-2003 à 22:49:12    

Tu veux "concaténer" DX et AX ?
MOV BX,DX
SHL EBX,16
MOV BX,AX [:figti]  
 
(modulo toutes les erreurs possible et imaginables :D )


Message édité par mrbebert le 06-11-2003 à 22:50:23
Reply

Marsh Posté le 06-11-2003 à 22:50:43    

ben genre si il est en 16bits il va pas etre decu du voyage :D

Reply

Marsh Posté le 06-11-2003 à 22:51:11    

Tu chipotes :o

Reply

Marsh Posté le 06-11-2003 à 22:51:11   

Reply

Marsh Posté le 06-11-2003 à 22:51:13    

je pipe rien à ce qu'il dit [:mlc]
si tu fais un "mul ax" et que le résultat dépasse 16 bits, les 16 bits de poids fort iront dans dx et puis voila hein ! :o


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 06-11-2003 à 22:52:38    

Harkonnen a écrit :

je pipe rien à ce qu'il dit [:mlc]
si tu fais un "mul ax" et que le résultat dépasse 16 bits, les 16 bits de poids fort iront dans dx et puis voila hein ! :o


vi et donc si apres je veux faire un  
MOV BX,AX j'aurais koi dans mon BX ? que la valeur du AX, sans le poid fort.

Reply

Marsh Posté le 06-11-2003 à 22:58:17    

Spy-master a écrit :


vi et donc si apres je veux faire un  
MOV BX,AX j'aurais koi dans mon BX ? que la valeur du AX, sans le poid fort.
 


ben oui, les registres ne sont pas élastiques [:skeye]
si tu veux tout avoir dans un registre, tu bosses en 32 bits et puis voila !


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 06-11-2003 à 22:58:23    

Spy-master a écrit :


vi et donc si apres je veux faire un  
MOV BX,AX j'aurais koi dans mon BX ? que la valeur du AX, sans le poid fort.
 


 
Bon, c'est tres simple
 
mul xx
 
produira un resultat sur 32bits
 
les 16bits poids haut iront dans DX  
les 16bits poids faible iront dans AX
 
C'est le comportement de CETTE instruction, n'en deduit pas qu'elles fonctionnent toute comme ca ! (ce qui est faux a 99.99% du tps)
 
 
 

Reply

Marsh Posté le 06-11-2003 à 23:13:14    

chrisbk a écrit :


C'est le comportement de CETTE instruction, n'en deduit pas qu'elles fonctionnent toute comme ca ! (ce qui est faux a 99.99% du tps)


c'est valable aussi pour imul :o
et pour div/idiv, DX contient le reste de la division :o


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 06-11-2003 à 23:15:12    

Harkonnen a écrit :


c'est valable aussi pour imul :o
et pour div/idiv, DX contient le reste de la division :o


 
mr veut avoir le dernier mot hein ? :D

Reply

Marsh Posté le 06-11-2003 à 23:24:11    

chrisbk a écrit :


 
mr veut avoir le dernier mot hein ? :D


:D
 
n'empeche que c'est une belle merde :/
je suppose que c'est pour préserver cette foutue compatibilité qu'Intel n'a jamais prévu de mettre les 16 bits de poids fort dans la partie haute de EAX en cas de dépassement de la partie basse... y serait peut etre temps qu'ils y viennent, c'est archi anachronique ce truc ! s'ils sortent un proc 64 bits, ce genre de bidouille fera tache :/
 
et AMD, y'zont rectifié le tir sur les Athlon 64 ? [:cupra]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 06-11-2003 à 23:30:35    

pas regaréd [:spamafote]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed