当然, CPU的位数是指CPU能一次同时寄存和处理二
进制数码的位数,这和CPU中寄存器的位数对
应。
CPU为了实现其功能一般设计了指令集,即是
CPU的全部指令,这就是机器语言。计算机的所
有功能都是基于CPU的指令集。指令集和CPU的
位数是有联系 的。如Intel 8086 CPU 是16位,其
指令集也是16位。如Intel 80386DX CPU 是32
位,其指令集也是32位,但它也保持原16位指令
集,这是为了向上兼容。
操作系统的位数是说其所依赖的指令集的位
数。
计算机系统一般都应有向上兼容性,所以也可
有64位CPU上运行32位操作系统、32位CPU上运
行16位操作系统的情况。
操作系统位数应该是根据指针类型的位数来定
的。整数类型不一定跟位数相等,CPU位数准确
地说应该是CPU一次能够并行处理的数据宽度,
一般就是指数据总线宽度。
附:
64位CPU如:AMD Athlon64 、Intel Pentium 4 F
32位CPU如:Intel 80386DX 到 Intel Pentium III
和部分Intel Pentium 4
16位CPU如:Intel 8086、Intel 80286
64位操作系统如:Windows XP Professional
x64和Windows Server 2003 x64
32位操作系统如:Windows95、Windows98、
Windows NT、Windows 2000、Windows XP
16位操作系统如:DOS
Windows1.0到3.2是运行在DOS上的,不能算是
独立的操作系统。
呵呵,是这样的。如果你去看intel网站上的关于
ia32结构的白皮书,会搞得比一般人明白许多。
16位和32位早期的主要区别是寄存器的位数,内
存的寻址和相应指令集的扩充。32位intel cpu
都有real模式,即完全的16位模式,屏蔽掉32位
的所有特性;32位模式,可以使用所有的32位特
性;模拟的8086模式,可以用一个32位机模拟多
个16位的8086机,他们的内存是分段隔离的。现
在的操作系统使用的都是32位的模式,因为可以
享受到cpu直接提供的内存的分页和分段管理。
他们提供模拟机制,实际上也是依托cpu实现的
16位环境,而不是直接解释16位代码。由于负责
生成汇编代码的主要是编译器,所以设计16位的
编译器在任何情况下只能生成16位代码。当然,
这并不是说用16位的编译器不可能生成32位的代
码,因为他完全可能被设计成在16位实模式下生
成32位的代码,从而可以在32位的机器上被执
行。这就是所谓的交叉编译。你可以使用诸如
gcc这样的交叉编译器在16位dos环境下编译出可
以在32位linux环境下被执行的程序。
温馨提示:答案为网友推荐,仅供参考