3

64ビット幅のイミディエートアドレスを持つ命令movlpsが必要です。これは、Intelのマニュアルによると完全に可能であるはずです。だから、このようなもの:

movlps xmm0, [0x7fffffffffa0]

しかし、私が得たのは、NASMがオペランドサイズを32ビットに切り捨て、対応する警告を出力することだけです。

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

さまざまな形式のqwordプレフィックスを試しましたが、成功しませんでした。

4

2 に答える 2

6

ほとんどのx64命令は、64ビットをimmedしません。

私が非常に間違っていない限り、あなたはraxレジスターを移動する必要があります。

于 2010-09-02T05:08:29.733 に答える
5

私はあなたがそれをすることができないと思います。 64ビット幅の値movlpsをロードまたは格納しますが、イミディエートアドレスとディスプレイスメントは一般に32ビットに制限されています。あなたができる最善のことは

mov rax, 0x7fffffffffa0
movlps xmm0, [rax]

(最初のものmovが必要かもしれmovabsません;私はIntel構文アセンブリを本当に知りません)

于 2010-09-02T05:06:25.930 に答える