MSNA 64 bits adresse immédiate pour movlps donne « des données dword dépasse les limites »

StackOverflow https://stackoverflow.com/questions/3623899

  •  26-09-2019
  •  | 
  •  

Question

J'ai besoin movlps d'instruction avec une adresse immédiate qui soit 64 bits de large, qui, selon les manuels Intel devrait être parfaitement possible. Donc, quelque chose comme ceci:

movlps xmm0, [0x7fffffffffa0]

Mais tout ce que je reçois est MSNA tronquer la taille des opérandes à 32 bits et l'impression de l'avertissement correspondant:

sample.s:6: warning: dword data exceeds bounds

J'ai essayé avec différentes formes du préfixe QWORD sans succès.

Était-ce utile?

La solution

La plupart des instructions x64 ne prennent pas 64 bits IMMed.

si je ne me trompe, vous devez vous déplacer dans le registre de rax.

Autres conseils

Je ne pense pas que vous pouvez le faire. charges movlps ou stocke une valeur qui est 64 bits de large, mais les adresses et les déplacements immédiats sont encore limités à 32 bits en général. Le mieux que vous pouvez faire est

mov rax, 0x7fffffffffa0
movlps xmm0, [rax]

(la première mov peut devoir être movabs, je ne sais pas vraiment Intel assemblage syntaxe)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top