gpt4 book ai didi

assembly - 一般而言,对于 x86 的 SETCC,CPU 指令集背后的基本原理是什么?

转载 作者:行者123 更新时间:2023-12-03 01:26:14 26 4
gpt4 key购买 nike

在检查 Intel x86 处理器的指令集时,我注意到有一些“直观”的指令,如“mov”、“add”、“mul”……而其他指令似乎有点不自然,如“sete”。这个问题更多是出于好奇而不是实际问题:为什么设计者会选择在单指令中实现特定的执行场景?您知道有什么阅读 Material 可以解释此类设计决策吗?

最佳答案

设计者用来决定“特定执行场景”是否是指令的合理候选者的一些标准:

  1. 无状态行为 - 操作必须仅依赖于执行时的操作数或其他可见的机器状态(例如算术标志)。不允许隐藏状态。此限制排除了在指令看似完成后仍保持忙碌状态的非阻塞指令。

  2. 有限的内存访问 - 内存访问通常是速率限制器。除了提高代码密度之外,如果由于内存瓶颈而执行相同的操作,则将离散操作组合成一条大指令是没有意义的。

  3. 计算上有趣 - 新指令应该比其他指令更有效地完成一些事情。 x86 AES 指令是极端的例子。像位混合这样相对简单的操作如果经常发生的话也很重要。

  4. 商业值(value) - 实现指令的芯片面积和验证工作是否能收回成本?

  5. 兼容性值 - 最后但并非最不重要的一点是,许多指令的存在只是为了支持旧版软件。

关于assembly - 一般而言,对于 x86 的 SETCC,CPU 指令集背后的基本原理是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10380907/

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