【发布时间】:2014-05-12 03:11:53
【问题描述】:
我读到指令集因处理器而异。例如,Intel 处理器中的指令集不同于 AMD 处理器中的指令集。
但是如果是这样的话,一个硬件的设备驱动程序如何支持多个处理器。正如我们所知,设备驱动程序是在汇编中编程的。
它们是否使用 32 位指令集进行编程,是否所有处理器都具有相同的 32 位指令集?
P.S:64 位指令集因处理器而异。唯一令人困惑的是,32 位指令集是否也因处理器而异,或者它们是否相同。如果这也改变了,我可能会遇到一些硬件的可移植性问题,不是吗?
【问题讨论】:
-
这道题不是具体的编程题。试试 cs.stackexchange.com。 (Intel 和 AMD 32 位处理器非常相似;将自己限制在公共子集相对容易。但是 ARM、MIPS、PPC、AXP 都非常不同。)请注意,现在的设备驱动程序不是用汇编编写的。
-
指令集大多是RISC或MISC。 AFAIK 我知道,大多数处理器仅在这些规格和 64/32 位规格上有所不同。
-
32 位指令集的变化与 64 位指令集一样多或更多。 (当任何人开始大规模生产 64 位 CPU 时,如何设计一个好的 ISA 已经很清楚了,因此一般来说 64 位 ISA 的“缺陷”较少,有一些值得注意的像臭名昭著的 ia64 这样的例外。)我想重复一下 Raymond 所说的话:现在的设备驱动程序不是用汇编编写的。
-
@icbytes “RISC”和“MISC”(以及“CISC”)是广义的概括性术语。 ARM、PowerPC、Alpha、MIPS、SPARC 和 PA 都是 RISC,它们确实有一些共同点,但它们彼此之间都存在很大差异,例如需要不同的编译器后端。
-
指令集在一行中的所有处理器中都是相同的,就像所有 Intel 和 AMD x86 处理器都有相同的指令集,即 x86,当然除了特定的扩展。这适用于所有架构,无论是 32、64 还是任何位架构
标签: assembly instruction-set microprocessors