NASM:无法组装' prefetch0'指令

时间:2014-08-04 20:47:56

标签: assembly 64-bit nasm

我意识到通常最好不要手动将预取数据指定到CPU缓存中。但是,我只是想编写这段代码进行实验,并确保我可以使用它:

global start

section .data
msg: db 'hello',0      ; C-style null terminated char array

section .text
start:
    lea rax, [msg]     ; rax = address of 'hello'
    prefetch0 rax      ; fetch data [rax] into cache
    ret                ; return

我使用NASM编译,但在prefetch0 rax收到错误说明:

unable to parse: instruction expected.

查看论坛,似乎这个错误有时可能是由不正确的标签或部分声明造成的,但我相信我的是有序的,而且错误仅适用于该特定指令。

为了彻底,即使我怀疑它没有什么区别,我尝试了每个预取指令,即prefetch1prefetchnta等。“nta”版本实际上印刷了不同的错误的操作数/指令组合错误。

1 个答案:

答案 0 :(得分:1)

您正在寻找的指令是PREFETCHT0(编号前有'T')。您还必须在方括号中提供地址。