我正在阅读计算机的历史,并且使用了IA-64(Itanium)处理器。它们听起来真的很有趣,我对为什么英特尔决定放弃它们感到困惑。
明确选择要在该周期中运行的2条指令的能力是一个好主意,尤其是在以汇编形式编写程序时,例如,更快的引导程序。
对于任何汇编程序员来说,成百上千的寄存器都应该令人信服。如果不调用任何其他函数变量,则基本上可以将所有函数变量存储在寄存器中。
可以执行以下指示:
(qp) xor r1 = r2, r3 ; r1 = r2 XOR r3
(qp) xor r1 = (imm8), r3 ; r1 = (imm8) XOR r3
与必须要做的事情:
; eax = r1
; ebx = r2
; ecx = r3
mov eax, ebx ; first put r2 into r1
xor eax, ecx ; then set r1 equivalent to r2 XOR r3
mov eax, (imm32) ; first put (imm32) into r1
xor eax, ecx ; then set r1 equivalent to (imm32) XOR r3
我听说这是因为没有向后的x86可比性,但是无法通过将奔腾电路添加到其中并添加将其切换到Itanium模式(例如切换到“保护”或“长模式”)的处理器标志来解决。
所有关于它的伟大事物都应该使它们领先于AMD取得巨大飞跃。
有任何想法吗?
可悲的是,这意味着您将需要一个非常高级的编译器来执行此操作。甚至每个特定型号的CPU都有一个。(例如,具有额外功能的较新版本的Itanium将需要使用不同的编译器)。
当我在Visual Studio 2010中处理WinForms(目标仅具有.NET 2.0)项目时,我的编译目标是IA-64。这意味着存在一个可以针对IA-64进行编译的.NET运行时,而.NET运行时意味着Windows。另外,汉密尔顿的答案提到了Windows NT。具有像Windows NT这样的功能强大的操作系统,意味着有一个能够生成IA-64机器代码的编译器。