指令集和汇编语言的联系

为何不同的操作系统可以在同一个cpu上运行,不同的操作系统是利用什么最本质的东西来编写的?利用指令集吗?指令集和汇编指令有联系吗?api和指令集有联系吗?麻烦详细解释一下!

1.现代操作系统绝大多数代码都是用C语言写的,只有少量直接和硬件打交道的代码是用汇编语言写的。把操作系统源代码转换成cpu对应的机器码(指令)那是编译器和汇编器的事。
2.至于你问“利用指令集吗?”,我就不懂了。你不运行指令,怎么操纵cpu呢?你运行的指令当然就是指令集里的指令了,否则cpu也不认识啊,是不是?
3.指令和汇编语言有什么联系那是汇编器的事情。汇编语言是一类编程语言,而cpu能执行的只有指令,汇编语言通过汇编器的编译能生成指令(机器码)。问这个问题和问“C语言和exe文件有联系吗”答案是一样的。当然,不同的汇编器规定的汇编语言的格式不同。就拿intel80x86来说,
cmp dword ptr [ebp-8],0(microsoft格式)和cmpl $0,-8[%ebp](Gnu格式)
两句就是按照不同的汇编器规定的格式写的,但是他们在对应的汇编器上生成的机器码(指令)是一样的。也许哪一天我做了一个汇编器,就又有了一种别的格式的汇编语言呢。
4.操作系统的API是操作系统提供给用户的编程接口,是操作系统的一部分,什么叫“和指令集有联系?”。我认为这个问题和2中所问的是同一个问题
以上是我的回答,不知有没有说清楚……
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-12-19
你的理解有问题,操作系统是运行在机器上面的。
机器不仅包括CPU还包括内存和只读存储器。

对于一般的机器,当你通电以后,CPU收到Reset信号。此后通过硬件连接,
CPU运行位于只读存储器中的BIOS,BIOS运行结束时寻找标志AA55(操作系统
标记)。所有的操作系统都使用相同的标志,这个标志的具体内容是在BIOS启动
的规范文档里面规定的。

操作系统在启动时的共同点就是那个AA55的标记,你只要有这个标记自己也可以写个简单的启动。

指令集是依附CPU的,一个CPU可以支持一个或者多个指令集。目前家用电脑都支持80386的指令集,所以操作系统的启动部分就是使用的80386的指令集。

API是运行在操作系统上的程序调用操作系统程序的接口,实际上就是一
些编号,基本上就是
调用Windows的XXXX号功能,参数是……
Windows里面有些API有文档和名称,有些没有。那些就可以有隐藏功能。

程序中调用API,最终会在内存中形成一个80386指令集中的JUMP指令。
具体过程需要你了解80386汇编

指令集 一般是说 CPU支持的指令以及编码(机器码)
比如 JUMP 有 EA / EB 等等。

汇编语言编译器会根据情况把JUMP翻译成EA/EB,而不必每次人都去输入那些
难懂的机器码。

所有的程序最终以机器码流的形式进入CPU被处理。本回答被网友采纳
第2个回答  2009-12-11
每个微处理器都有自己的指令系统。指令系统越丰富,它完成的功能也就越多。处理器通过指令控制硬件。操作系统的主要功能之一就是管理硬件资源,使用户能更方便的使用计算机而不用去管硬件的实现细节。

指令集和汇编语言的联系
3.指令和汇编语言有什么联系那是汇编器的事情。汇编语言是一类编程语言,而cpu能执行的只有指令,汇编语言通过汇编器的编译能生成指令(机器码)。问这个问题和问“C语言和exe文件有联系吗”答案是一样的。当然,不同的汇编器规定的汇编语言的格式不同。就拿intel80x86来说,cmp dword ptr [ebp-8],...

处理器架构、指令集和汇编语言,三者有何关系?
处理器架构、指令集与汇编语言三者之间存在着紧密的联系,共同构成了计算机系统的底层基础。处理器架构决定了处理器的内部结构和工作原理,而指令集则是一套规则,规定了处理器如何执行操作。通过指令集,我们可以控制处理器实现各种功能。指令集由一系列二进制数据组成,处理器只能识别并执行这些二进制指令。...

处理器架构,指令集和汇编语言,三者有何关系
汇编语言属于指令集,指令集包括机器指令和汇编指令。一条机器指令对应一条汇编指令,如mips中的000000机器码指令对应汇编指令的add假加法指令。汇编语言是便于人去理解的,记着一条add指令总比000000容易吧。处理器架构就是微架构,学术界称为微结构。主要是CPU的流水线部分的设计。

处理器架构、指令集和汇编语言,三者有何关系?
回答:想要知道处理器架构、指令集和汇编语言,三者有何关系,我们先要了解一下这三个名词解释。 指令集架构 指令集架构,简称指令集,ISA、CPU执行单元和解码逻辑基本上由指令集决定。软件和硬件之间的接口,程序员可以根据CPU的指令集编写各种编译器,用高级语言编写程序。 汇编语言 汇编语言是便于人去理解的,...

CPU 指令集和编程语言有关么?、
CPU指令集就是CPU自己对硬件的一系列高级语言。其也是建立在汇编语言的基础上的。因为计算机只能执行最简单的步骤,但一系列步骤可以用一个集合来表达。比如说汇编语言让计算机去打酱油。会这么说:迈左脚,迈右脚,迈左脚,迈右脚...掏钱,买酱油,拿找钱,转身,迈左脚,迈右脚...而指令集就是简化这...

汇编语言是不能被计算机直接执行的语言吗
汇编语言是不能被计算机直接执行的语言 汇编语言对应着不同的机器语言指令集,需要通过汇编过程转换成机器指令,计算机的机器指令是一列二进制数字.计算机将之转变为一列高低电平,以使计算机的电子器件受到驱动,进行运算,因此汇编语言程序不可以由计算机直接执行。计算机语言可以分为高级语言、汇编语言和机器...

计算机指令集是汇编语言?也就是说CPU里的指令语句是汇编语言?
只是顺序和逻辑与汇编一致。汇编的指令和机器指令是一对一的关系,简单的文字替换。不同平台上的指令集都不太一样的,你什么平台上就用什么平台上的汇编器。这是平台相关的,一个平台的汇编器当然就只能翻译这个平台的指令集。这就是为什么你下载的时候会让你选择 i386 还是 x86 还是 amd64 等等。

汇编语言是
汇编语言是一种用于电子计算机、微处理器、微控制器或其它可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和...

汇编语言是一种什么语言
特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。汇编语言和机器语言的关系机器语言是一种数字语言,只有计算机的处理器(CPU)才能理解它。汇编语言同机器语言是一对一的关系:一条汇编指令对应一条机器语言指令。汇编语言和高级语言C++、java等的关系C++、java等高级语言与...

汇编语言是低级语言吗
汇编语言是低级语言,是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。汇编语言是计算机提供给...

相似回答