gpt4 book ai didi

x86 - x86 中的重复前缀和强制前缀

转载 作者:行者123 更新时间:2023-12-01 16:35:58 25 4
gpt4 key购买 nike

在我为特定于 x86 arch 的 Linux 编写一个小型反汇编程序的过程中,我遇到了一个小问题。这是关于强制前缀和重复前缀的。查看Intel文档[1],据说重复前缀是0xf20xf3,强制前缀是0x660xf2 0xf3

有两条指令具有以下基本操作码:

crc32 -- f2 0f 38 f0 (Here, 0xf2 is a mandatory prefix)
movbe -- 0f 38 f0

因此,只要计数器寄存器非零就必须重复的“movbe”指令的操作码应该是:

repnz movbe == f2 0f 38 f0

当我开始反汇编一条指令时,如果我看到字节0xf2,我怎么知道它是crc32的强制前缀指令但不是 movbe 指令的重复前缀,反之亦然?我应该将操作码模式 "f2 0f 38 f0" 与哪条指令相匹配?

我错过了什么?

[1] http://www.intel.com/design/intarch/manuals/243191.HTM

感谢和问候,
赫里希凯什·穆拉里

最佳答案

您只能在字符串指令中使用重复前缀(请参阅手册)。 “f2 0f 38 f0”始终是 CRC32 指令。

关于x86 - x86 中的重复前缀和强制前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8163021/

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