Domanda

I bisogno dei movlps istruzioni con un indirizzo immediato che sia 64 bit di larghezza, che secondo manuali Intel dovrebbe essere perfettamente possibile. Quindi, qualcosa di simile:

movlps xmm0, [0x7fffffffffa0]

Ma tutto ciò che ottengo è NASM troncando la dimensione operando a 32 bit e la stampa l'avviso corrispondente:

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

Ho provato con diverse forme di QWORD prefisso senza successo.

È stato utile?

Soluzione

maggior parte delle istruzioni x64 non prendere a 64 bit immed.

a meno che non sono molto sbagliato bisogna muoversi attraverso il registro Rax.

Altri suggerimenti

Non credo che si può fare. carichi movlps o memorizza un valore che è lunga 64 bit, ma indirizzi immediati e spostamenti sono ancora limitate a 32 bit in generale. Il meglio che puoi fare è

mov rax, 0x7fffffffffa0
movlps xmm0, [rax]

(il primo mov può essere necessario movabs, io non so davvero Intel sintassi assembly)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top