永发信息网

指令集位数指的啥,和cpu位数有什么关系,求大神回复

答案:1  悬赏:50  手机版
解决时间 2021-12-30 11:22
  • 提问者网友:我是女神我骄傲
  • 2021-12-30 03:06
指令集位数指的啥,和cpu位数有什么关系,求大神回复
最佳答案
  • 五星知识达人网友:一袍清酒付
  • 2021-12-30 04:02
当然, 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环境下被执行的程序。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯