gpt4 book ai didi

assembly - LEA 是 x86 中唯一具有不访问内存的内存操作数的指令吗?

转载 作者:行者123 更新时间:2023-12-03 09:44:08 25 4
gpt4 key购买 nike

我正在使用 libdis ,来自 the bastard 的 x86 反汇编程序库,我试图找出哪些指令访问内存。

引用这两条指令:

mov eax, [ebx + 10]
lea eax, [ebx + 10]

libdis , 两者都以指令类型 insn_mov 列出, 并且地址操作数在两种情况下都具有相同的标志。因此,我可以判断内存是否被访问的唯一方法是查看指令助记符。

因此,我的问题是:LEA 是唯一使用实际不访问内存的内存操作数的指令吗?任何引用的链接都会很好。

最佳答案

prefetch指令族(prefetcht1、prefetcht2、prefetcht3、prefetchnta)要求处理器将这些内存行拉入缓存,因为它们很快就会被需要。但是,英特尔的文档清楚地表明,传递给预取的错误地址不会导致任何故障。这样,软件就可以将潜在的越界地址传递给预取,而无需先检查它们,以便在执行这些检查时数据可以在传输中。

LEA 不同,预取也没有“输出”。 .

关于assembly - LEA 是 x86 中唯一具有不访问内存的内存操作数的指令吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20623044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com