问高手们个问题。C/C++等高级语言编译成exe程序,在操作系统上运行,是不是操作系统要针对cpu的类型再转换

[复制链接]
查看11 | 回复4 | 2010-10-27 21:00:12 | 显示全部楼层 |阅读模式
问高手们个问题。C/C++等高级语言编译成exe程序,在操作系统上运行,是不是操作系统要针对cpu的类型再转换成在intel 或amd上的指令?
还有操作系统对cpu的支持是从哪方面实现的。Windows不支持龙芯,是为什么?
请详细解释下,谢谢。
据说现在windows不支持中国的龙芯,是龙芯和intel和amd的指令系统有很大区别吗?如果要支持,需要做什么。

回复

使用道具 举报

千问 | 2010-10-27 21:00:12 | 显示全部楼层
Intel或AMD的指令集基本上都兼容,也就是二进制是一模一样的,只有后来各自开发的优化多媒体指令集不一样,如AMD的3DNOW!、Intel的SSE3等。所以一般的C/C++程序编译成EXE时,不需要区分CPU类型是Intel还是AMD,编译时已经把CPU类型指定为386/486/586。当然,在编译时可以指定CPU类型为Pentium或AMD以进行优化编译。不是靠操作系统转换CPU类型的。 龙芯与Intel和AMD的指令系统完全不兼容,龙芯是基于精简指令集(RISC)的通用CPU,微软要想让Windows支持龙芯,需要花大力气从底层改造,顶多能用Window CE。
回复

使用道具 举报

千问 | 2010-10-27 21:00:12 | 显示全部楼层
操作系统编译是用到的指令集是否为该类CPU支持的指令集,如果不同也就不支持
回复

使用道具 举报

千问 | 2010-10-27 21:00:12 | 显示全部楼层
程序是基于操作系统的,而操作系统设计要基于底层硬件。
回复

使用道具 举报

千问 | 2010-10-27 21:00:12 | 显示全部楼层
经编译后形成计算机可以识别的机器语言(二进制)。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行