导航:首页 > 源码编译 > 编译器依赖于cpu吗

编译器依赖于cpu吗

发布时间:2023-07-02 12:04:31

㈠ 是不是每种处理器都要开发自己的编译器,比如inter的cpu,arm,51单片机

每个处理器厂家都会开发本身的编译器。这是硬体设计与系统工程师的工作。软件编辑员一般都不需染手此东西。是否每个牌子的处理器都须有自己的编译器呢?未必。
比如Intel,AMD,VIA 同是用x86平台都可享用Intel的编译器。
又如Siemens, SGI,NEC 同出产MIPS平台的处理器都可享用MIPS 的编译器。
但有些特别指令如INTEL的MMX,SSE1,2,3,4;AMD的3DNOW,AMD64 等就有劳个产家编写。
如没有特别指令编译器, 软件会出错吗?很多高档程序编辑软体都会翻译及处理,用标准指令来取代特别指令(应该说不用特别指令),当然执行速度会慢过特别指令。

㈡ 程序的编译汇编

如何被编译的呢?
其实计算机只能识别和执行的就是0.1
编译出来的的也都是机器码 既0或1

怎么是操作系统呢 他是根据cpu而编译的
不同的CPU 都有不同的指令集
所以不同的cpu 就要选用不同的 编译器了

编译器本身又是程序,操作系统的运行又是靠什么编译的呢?

操作系统是已经被编译好的 程序 而编译器是运行在已经编译好的操作系统上的·
怎么说呢其实 以前没有编译器 都是手工汇编
就是人自己把 汇编语言转变成 2进制的可执行文件
后来程序越来越大 手工汇编 出错的几率也越来越大
所以有了编译器·

硬件上的汇编器和

硬件上没有汇编器 都是人自己写的

编译器上的汇编器什么关系?

编译器的汇编器是把 高级语言转成 计算机可执行的文件!即1.0

㈢ 汇编编译器究竟在哪里Cpu中

编译器其实就是个软件,把你的汇编语言编译成 计算机可执行的 二进制代码。
如此而已,不要想太多

㈣ 关于cpu指令集和编译器的问题

这些软件在编写时也考虑到了这点,所以用兼容的方式是可以运行的,当然,在优化过的程序(与指令集最匹配)中肯定会获得较好的运行效率。
个人观点,不够专业,仅供参考!

㈤ 关于编译原理的问题

1.当然是机器语言了,如果是汇编指令,那还得编译一次!能运行的程序都是机器语言,只有机器语言才能控制CPU,NET或Java这些中间语言,程序在运行时会被CLR或JVM快速编译成机器语言,因此这些程序速度上有损失。

高级语言源代码(文本)-通过编译器(compiler)-程序(二进制机器语言)
汇编代码(文本)-通过汇编器(assembler)-程序(二进制语言)

看到这里,你可能会想那汇编语言到底有什么用呢,编译器完全能代替汇编啊?
(1).编译器是通过高级语言(c,c++)转到机器语言的。转换过的机器语言受限与高级语言,效率和功能上都有限制。比如c不等过分操作内存。但通过汇编器转化过来的机器语言,效率高,且用汇编语言,直接和CPU对话!
(2).汇编可以反汇编(逆向编译),而这里高级语言没有发言权,就是:
程序(二进制机器语言)-通过反汇编器(compiler)-可转化为汇编代码(文本)
但永远不能转化为高级语言的源代码,。
以上两点汇编存在的重要性。

2。当然是说移植源代码。windows用x86机器语言,苹果用powerPC机器语言,windows程序当然不能运行在苹果机上,因为程序其实就是一串机器语言!但windows上有c的编译器(vc++),苹果机上也有c编译器(gcc),因此同一个c的源代码,当然就可以通过不同平台的同一种编译器实现平台移植。

3.当然是NASM,我看的所有书都首先说NASM,他是开源的,就像Linux一样,很受欢迎,还有MASN是微软的,borland的也有汇编器,不过都不常见了。

4.这跟CPU有关,一般32位x86兼容的cpu有许多寄存器,多数是32位的,也有16位的。比如CS,ES,DS这些segment寄存器一直是16位的。

5.优势太多了,这和32位和16位存在的优势一样,16位电脑最大内存1MB,寄存器都是16位的。32位,最大内存可以有4GB,整整是16位的4096倍啊!16位多渺小啊,同理64位基本上也可以蔑视32位,64内存最大内存用TB来衡量,寄存器多数是64位!地址总线也是64位。64对32位没有什么优势劣势可言,64位完全就是32位的下一代。

㈥ 关于编译器 操作系统 CPU

C语言标准规定,int类型最少为2字节,long类型不能比int类型短。具体多长,由编译器自行决定。
一般,16位编译器(如老掉牙的Turbo C 2.0),int类型占2个字节,而现代32位编译器如Visual C++、gcc、Intel C/C++,int类型都是4字节的。所以如果为了编写可移植性的程序,不要对数据类型的长度做假设。
占用多少字节,主要取决于编译器。而不是多少位的软件和CPU,比如x86-64软硬件系统上,大多数int仍然是4字节长,比如微软的Visual C++在生成64位程序的时候就是如此。
这个多少位是指地址总线的长度,并不是int类型占用的位数。

㈦ 学c语言用电脑编程,或运行相关编译器等软件,所用电脑必须用intel的处理器吗

ss。一般ASP搭配Access,PHP搭配MySql。
PHP是比较古老的语言了,ASP也是五六年前很流行的,这两年比较流行的是Java和Asp.net,不过学Java比较多人要,Asp.net开发起来会相对简单一点,但现在Java也封装得很好,有利于开发。关于学什么,就自己兴趣所在了。
我也是计算机专业的,虽然觉得不怎样,但总算有过这几年经验。关于如何学一门语言,我认为,不要只看书,要看书然后动手,最好自己找个项目来做,做项目需要什么,就看什么,边学边做,这样一来有兴趣,二来可以学到东西。但是若一点都不懂的话项目也是做不下去的,所以呢,最好找两本好一点的书,先浏览性过一遍,然后再相对较详细的看一遍,这样起码对这门知识有点了解,以后做的时候找相应的知识也容易一点。
最后回答你的第一个和第二个问题:1.那些不用记下来,要看懂,要知道结构,比如If...else;for,while之类的,知道那些是表达什么样的结构。这些东西,边用边学慢慢就全知道了,背下来一点用都没有。
2.不一样的概念。这里的函数只是把一些经常用到的语句写在一起,方便调用。这些慢慢体会。
个人经验,回答完毕。

㈧ 像intel和AMD需要对cpu编程吗用的是汇编吗cpu里面有编译器吗

据说是传说中的硬件编程……编译器肯定是没有了,因为CPU收到的代码已经是最低级的机器码了,不需要再进行编译……

㈨ C语言问题 求位前辈 对于操作系统的字长是多少位 和C语言的关系不是很很了解

首先需要知道的是CPU字长(机器字长),这个是硬件决定的,指cpu同时参与运算的二进制位数,机器字长直接决定着机器可寻址的虚拟空间地址大小。常见的机器字长有16位,32位,64位等。
其次是操作系统字长。 操作系统字长就是操作系统的位数,对于电脑操作系统来说,有32位64位两种。操作系统字长是软件的概念,依赖于硬件,但不一定相同。64位机器字长上可以安装32位的操作系统,但是反之则不行。即操作系统字长不可高于机器字长。
C语言的编译器是运行于操作系统之上的软件,所以编译器依赖于操作系统。编译器字长不可高于操作系统。
C语言编译器的字长,影响C语言的编译运行,由C语言编译器编译出的可执行文件的运行字长,不能高于编译器字长。
于是,综合这几个的关系,就是
C语言编译出的软件字长 ≤ C语言编译器字长 ≤ 操作系统字长≤机器字长。

阅读全文

与编译器依赖于cpu吗相关的资料

热点内容
dvd光盘存储汉子算法 浏览:757
苹果邮件无法连接服务器地址 浏览:962
phpffmpeg转码 浏览:671
长沙好玩的解压项目 浏览:144
专属学情分析报告是什么app 浏览:564
php工程部署 浏览:833
android全屏透明 浏览:737
阿里云服务器已开通怎么办 浏览:803
光遇为什么登录时服务器已满 浏览:302
PDF分析 浏览:484
h3c光纤全工半全工设置命令 浏览:143
公司法pdf下载 浏览:381
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:349
风翼app为什么进不去了 浏览:778
im4java压缩图片 浏览:362
数据查询网站源码 浏览:150
伊克塞尔文档怎么进行加密 浏览:892
app转账是什么 浏览:163