gpt4 book ai didi

assembly - 具有只写目标并在英特尔的任何端口上运行的 x86 非 mov 指令?

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

是否有任何整数 2 操作数 x86-64 指令使用其第一个操作作为目标而不是源 + 目标1 或仅源2,哪些在 Intel Haswell 和/或更高版本 CPU 上的 p0156 上运行?

mov 指令不感兴趣,即名称中带有 mov 的任何内容。

例如,BMI1 blsi eax, edx 是具有只写目标的 2 操作数,但只能在 Skylake 的端口 1 或端口 5 上执行。


1 大多数指令都属于这一类,例如,add eax, ebx 表示 eax = eax + ebx

2 少数 2 操作数整数指令仅将其第一个操作数用作源,例如 cmp eax, ebx

最佳答案

以下 Python 脚本在 uops.info XML 文件 (https://uops.info/xml.html) 中搜索此类指令:

#!/usr/bin/python
import xml.etree.ElementTree as ET
import re

def main():
for XMLInstr in ET.parse('instructions.xml').iter('instruction'):
if len(XMLInstr.findall("./operand[@type='reg']")) != 2:
continue
if not any(True for op in XMLInstr.findall("./operand[@type='reg']") if op.attrib.get('w', '0') == '1' and op.attrib.get('r', '0') == '0'):
continue
if any(re.search("\A\d*\*p0156\Z", m.attrib.get('ports', '')) for m in XMLInstr.findall("./architecture/measurement")):
print XMLInstr.attrib['string']

if __name__ == "__main__":
main()

如果我们从结果中排除名称中包含 MOV 的所有指令,则剩下的唯一指令是 CBWCWDECDQE。但是,这些指令只有隐含的操作数,这可能不是您想要的。

关于assembly - 具有只写目标并在英特尔的任何端口上运行的 x86 非 mov 指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57562196/

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