社区
汇编语言
帖子详情
先有编译器还是先有操作系统?
IamBillGates
2003-04-26 08:53:58
操作系统是用计算机语言编写的,一般最低层和硬件打交道,在裸机的情况下建立起最低层结构一般都会用低级语言-汇编语言,但汇编语言本身也是要编译、连接的,而这一切本身就需要寄托在操作系统之上(就比如汇编语言编译器就需要在操作系统下运行)。既然连最低级的与硬件直接打交道的汇编语言都要运行在操作系统之上,那么这个操作系统又怎么来编写的呢?
...全文
655
34
打赏
收藏
先有编译器还是先有操作系统?
操作系统是用计算机语言编写的,一般最低层和硬件打交道,在裸机的情况下建立起最低层结构一般都会用低级语言-汇编语言,但汇编语言本身也是要编译、连接的,而这一切本身就需要寄托在操作系统之上(就比如汇编语言编译器就需要在操作系统下运行)。既然连最低级的与硬件直接打交道的汇编语言都要运行在操作系统之上,那么这个操作系统又怎么来编写的呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
34 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhaobird
2003-08-04
打赏
举报
回复
不管是哪个先,都是由机器语言写成的。
nicememory
2003-08-04
打赏
举报
回复
先有的恐龙蛋,再有的鸡。。。
caulrb
2003-08-04
打赏
举报
回复
哇噻!各位老鸟都好厉害啊!看来我得努力努力再努力啊!向各位老鸟敬礼啊!
freeia
2003-08-04
打赏
举报
回复
楼上说的对.
很多朋友把汇编抬得高高的,没搞清楚硬件的特性.
这个偶深有体会,我们在4位CPU上做实验,写16进制的代码(经过程序转化为2进制代码--机器指令)来操作CPU(相当于是OS了)
Yashmak
2003-08-04
打赏
举报
回复
To BlueSky2008():
这好象并不是一个先有鸡还是先有蛋的问题.
楼主说汇编和底层打交道,
其实应该说是汇编得到的机器码程序和底层打交道
但机器码本来就是一种编程语言,楼主过于抬举了汇编的地位,或者说忽视了汇编的本质
汇编只是一些助记符,
不将其翻译成机器码(手工或是借助编译器),
那只是一堆无意义的符号
并非所有的机器码都必须依靠操作系统才可执行,
那样的话,你的系统有时怎么启动的呢?
如果你愿意,可以这样验证一下我的话:
写一段汇编程序,
注意您只能使用BIOS调用,不能有任何Dos调用,
然后将这一段代码写到软盘引导区中,
使用此软盘启动电脑,看到了吗,你的程序被执行了,
仅仅依靠硬件特性和Bios.
WYlslrt
2003-08-03
打赏
举报
回复
偶不知道。
Rance
2003-08-03
打赏
举报
回复
xal_king 说的好
nicememory
2003-07-21
打赏
举报
回复
tangl_99(Min-Kyeong):
似乎是先有的unix,再有的c
unix:1969
c:1970
BlueSky2008
2003-07-21
打赏
举报
回复
先有鸡还是先有蛋?
kuangjingbo
2003-07-21
打赏
举报
回复
硬件自动生成吧!!!!!!!!!!!!!!
bearfly1980
2003-07-20
打赏
举报
回复
当然先有编译器,先在一台工作机上用交叉编译器将代码编译成目标机的机器代码!!!!!最早的机器是用硬连线搞定的!!!!
ahjoe
2003-07-20
打赏
举报
回复
向克终前辈敬礼!
ahjoe
2003-07-20
打赏
举报
回复
这么简单的问题,不用脑都知道啦。
HashCodeWithJava
2003-07-20
打赏
举报
回复
依照UNIX操作系统和C语言的诞生.
那么应该是先有C语言编译器再有操作系统的.
之所以要开发C语言,就是为了完成UNIX操作系统的编写.
操作系统的Boot Loader是用汇编语言写的.
nicememory
2003-07-20
打赏
举报
回复
这个比先有鸡还是先有蛋好解决一些,年代还不久远,可以考证
xenix
2003-07-20
打赏
举报
回复
不是您为第一台微机编写了附带操作系统功能的basic编译器吗?
怎么还问这样的问题?
Tranquillo
2003-07-19
打赏
举报
回复
我觉得应该是先用机器码实现一些基本的输入输出、引导功能
然后有机器码写成的编译器,这样系统就可以自支持了
输入输出和引导应该算os的底层功能吧
NOV
2003-07-19
打赏
举报
回复
楼上说的没错,正是这样。
phchenjie
2003-07-19
打赏
举报
回复
最早的程序好象是要手工接线,用电路来实现的,体力活啊……
abutter
2003-07-19
打赏
举报
回复
不知道操作系统的严格概念是什么。
早期的计算机是没有操作系统的。
加载更多回复(14)
白话linux 0.11系统内核
体系结构里面有三座大山,CPU,
操作系统
,
编译器
。而往往登上这3座大山的都是那些名校的学生的专属,这是因为名校学生的知识素养和智商与普通高校的学生的差距真的那么大吗?我不认同! 所以我出这套课程就是为了...
编译器
和
操作系统
的关系
很多程序员可能有同样的疑问,
编译器
与
操作系统
之间有何关系,
编译器
与CPU又有何关系,动态链接器从哪查找共享库等。 让人困惑的原因有几, 第一是
编译器
的功能角色特殊,
编译器
是生成程序的程序; 第二是编译过程变得越来越复杂,一支
编译器
支持多种程序语言、支持共享库、编译优化,编译与链接可分开等; 第三,
操作系统
的介入。 今天我们试着从
操作系统
介入编译过程后对
编译器
的影响,看看
操作系统
与
编译器
有...
全局变量和局部变量有什么区别?实怎么实现的?
操作系统
和
编译器
是怎么知道的?
全局变量和局部变量有什么区别?实怎么实现的?
操作系统
和
编译器
是怎么知道的? 区别就是作用域的区别,局部变量局部可见,全局变量,所有参与链接的模块都可以通过extern来操作该变量.局部变量{}内部定义的非静态变量都是局部变量了全局变量:在函数外部定义的非静态变量就是全局变量了
操作系统
不需要知道谁是局部,谁是全局的
全局变量和局部变量有什么区别?是怎么实现的?
操作系统
和
编译器
是怎么知道的?
生命周期不同:全局变量随主程序创建和创建,随主程序销毁而销毁;局部变量在局部函数内部,甚至局部循环体等内部存在,退出就不存在; 内存中分配在全局数据区。 使用方式不同:通过声明后全局变量程序的各个部分都可以用到;局部变量只能在局部使用;分配在栈区。
操作系统
和
编译器
通过内存分配的位置来知道的,全局变量分配在全局数据段并且在程序开始运行的时候被加载。局部变量则分配在堆栈里面 。
什么是
编译器
?什么是解释器?
什么是
编译器
?什么是解释器 在计算机上运行的所有软件都是用某种程序设计语言编写的,在一个程序运行前,该程序首先需要被翻译成一种能够被计算机执行的形式,完成这项翻译工作的软件系统被称为
编译器
。一个
编译器
就是一个程序,不同的
编译器
可以读懂它所对应语言编写的程序,并把该程序翻译成一个等价的,由另一种语言组成的程序,该程序一般是可以放在目标机器上的可执行的目标代码。
编译器
的一个重要任务就是 报告它在翻译过程中发现的源程序中的错误。在把用户的输入映射成为输出的过程中, 使用
编译器
产生的目标程序所用的时间会比解释器。.
汇编语言
21,459
社区成员
41,600
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章