具体来说,如果来自同一组的多个前缀,Olly 只会接受它找到的最后一个前缀。例如
lock rep add dword ptr[eax],eax ; f0 f3 01 00
变成
??? ; f0
rep add dword ptr[eax],eax ; f3 01 00
英特尔架构手册的第 28 页简单地指出“最多只包含来自四组中的每一组的一个前缀代码是有用的......”但它没有说每组最多只有一个. 是的,在某些情况下,某些前缀是必需的,不能存在,或者仅根据说明有效,但我不是指任何这些情况。
我选择将英特尔的指南解释为“它是有效的,但没有太多理由这样做”,并且我将继续保留指令中列出的前缀(同样,除非任何特定规则另有说明。)
这是处理这种情况的正确方法还是我应该做一些不同的事情?