就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center为指导。
9年前关闭。
我一直在阅读一些 SO 文件,并遇到了针对 x86 架构的声明。
“PC 架构一团糟,任何操作系统开发人员都会告诉你这一点。”
“意识到 x86 架构充其量是可怕的”
“大多数大学都在 MIPS 之类的东西上教汇编,因为它更容易理解,x86 汇编真的很难看”
以及更多评论,例如
我尝试搜索,但没有找到任何原因。我不认为 x86 不好,可能因为这是我熟悉的唯一架构。
有人可以告诉我与其他人相比 x86 丑陋/糟糕/劣等的理由吗?
最佳答案
几个可能的原因:
IN
和 OUT
) MOVSB
instruction需要一个相对较大的 C 代码块来描述它的作用:if (DF==0)
*(byte*)DI++ = *(byte*)SI++;
else
*(byte*)DI-- = *(byte*)SI--;
这是一条执行加载、存储和两个加法或减法(由标志输入控制)的指令,每条指令在 RISC 机器上都是单独的指令。
尽管 MIPS(和类似架构)的简单性并不一定使它们更胜一筹,但对于汇编程序类的介绍,从更简单的 ISA 开始是有意义的。 .一些汇编类(class)教授一个名为 y86 的超简化 x86 子集。 ,它被简化到对实际使用没有用处(例如没有移位指令),或者一些只教授基本的 x86 指令。
2016 年更新:Anandtech 发布了 discussion regarding opcode sizes under x64 and AArch64 .
编辑:这不应该是 x86 的 bash!派对。鉴于问题的措辞,我别无选择,只能进行一些抨击。但是除了 (1) 之外,所有这些事情都是有充分理由的(见评论)。英特尔的设计师并不愚蠢——他们想通过他们的架构实现一些目标,而这些是他们为使这些目标成为现实而必须缴纳的一些税款。
关于assembly - 为什么x86丑?为什么比别人差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2679882/