指令集和汇编语言的联系
发布时间:2025-05-15 16:14:27 发布人:远客网络
一、指令集和汇编语言的联系
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中所问的是同一个问题
以上是我的回答,不知有没有说清楚……
二、c语言属于一种机器语言吗
1、 c语言属于一种机器语言吗?
机器语言是直接用二进位制程式码指令表达的计算机语言,指令是用0和1组成的一串程式码,它们有一定的位数,并分成若干段,各段的编码表示不同的含义,C语言是一种计算机程式设计语言。它既有高阶语言的特点,又具有组合语言的特点。它可以作为系统设计语言,编写工作系统应用程式,也可以作为应用程式设计语言,编写不依赖计算机硬体的应用程式。因此,它的应用范围广泛。C语言要编译成机器语言才能被计算机识别执行
2、机器语言是直接用二进位制程式码指令表达的计算机语言,指令是用0和1组成的一串程式码,它们有一定的位数,并分成若干段,各段的编码表示不同的含义,C语言是一种计算机程式设计语言。它既有高阶语言的特点,又具有组合语言的特点。它可以作为系统设计语言,编写工作系统应用程式,也可以作为应用程式设计语言,编写不依赖计算机硬体的应用程式。因此,它的应用范围广泛。C语言要编译成机器语言才能被计算机识别执行
3、机器语言:是由二进位制程式码表示的指令系统的语言,是唯一能由计算机直接识别的语言。
4、组合语言:是符号化的机器语言,由与机器语言指令一一对应的符号指令和简单语法组成。组合语言需要经过汇编程式将其翻译成机器语言,才能被计算机识别。
5、高阶语言:是一种比较接近自然语言和数学表示式的一种计算机程式设计语言。一般用高阶语言编写的程式称为“源程式”,计算机不能识别和执行,要把用高阶语言编写的源程式翻译成机器语言,通常有编译和解释两种方式。
6、组合语言:组合语言是一种用于电子计算机、微处理器、微控制器或其他可程式设计器件的低阶语言,亦称为符号语言。在组合语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或运算元的地址。在不同的装置中,组合语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的组合语言和特定的机器语言指令集是一一对应的,因此不同平台之间不可直接移植。
7、组合语言不像其他大多数的程式设计语言一样被广泛用于程式设计。在今天的实际应用中,它通常被应用在底层,硬体操作和高要求的程式优化的场合。驱动程式、嵌入式作业系统和实时执行程式都需要组合语言。
8、机器语言:机器语言是用二进位制程式码表示的计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬体结构赋予计算机的操作功能。机器语言具有灵活、直接执行和速度快等特点。不同型号的计算机其机器语言是不相通的,按著一种计算机的机器指令编制的程式,不能在另一种计算机上执行。
9、现代机器语言的踪迹已经近乎消失(主要用于编译器转码的过程中),取而代之的是组合语言。在组合语言中,各个指令都有对应的机器码,经过编译器的编译,汇编程式码被直接转换为了可以直接被CPU执行的机器语言。
10、 C语言:C语言是一门通用计算机程式语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低阶储存器、产生少量的机器码以及不需要任何执行环境支援便能执行的程式语言。尽管C语言提供了许多低阶处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程式可在许多电脑平台上进行编译。一些C语言程式码甚至可以直接移植到嵌入式处理器(微控制器)的平台。
11、三者之间的关系(从硬体层到软体层):机器语言-组合语言- C语言。
12、组合语言也是低阶语言。高阶语言是指C语言等接近自然语言的一类。
13、组合语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可程式设计器件的低阶语言,亦称为符号语言。在组合语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或运算元的地址。在不同的装置中,组合语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的组合语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。
14、许多汇编程式为程式开发、汇编控制、辅助除错提供了额外的支援机制。有的组合语言程式设计工具经常会提供巨集,它们也被称为巨集汇编器。
15、组合语言不像其他大多数的程式设计语言一样被广泛用于程式设计。在今天的实际应用中,它通常被应用在底层,硬体操作和高要求的程式优化的场合。驱动程式、嵌入式作业系统和实时执行程式都需要组合语言。
16、机器语言是用二进位制程式码表示的计算机能直接识别和执行的一种机器指令的集合,它是计算机的设计者通过计算机的硬体结构赋予计算机的操作功能。机器语言具有灵活、直接执行和速度快等特点。不同型号的计算机其机器语言是不相通的,按著一种计算机的机器指令编制的程式,不能在另一种计算机上执行。
17、一条指令就是机器语言的一个语句,它是一组有意义的二进位制程式码,指令的基本格式如,操作码栏位和地址码栏位,其中操作码指明了指令的操作性质及功能,地址码则给出了运算元或运算元的地址。
18、用机器语言编写程式,程式设计人员要首先熟记所用计算机的全部指令程式码和程式码的涵义。手程式设计序时,程式设计师得自己处理每条指令和每一资料的储存分配和输入输出,还得记住程式设计过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作。编写程式花费的时间往往是实际执行时间的几十倍或几百倍。而且,编出的程式全是些0和1的指令程式码,直观性差,还容易出错。除了计算机生产厂家的专业人员外,绝大多数的程式设计师已经不再去学习机器语言了。
19、高阶语言是指C语言等接近自然语言的一类。
20、以下属于高阶语言的有(b). a机器语言 b C语言 c以上都是 d组合语言
21、属于低阶语言——但这题出得太没水平,比较准确的说法是C/C++属于组合语言和高阶语言之间且比较靠近汇编的语言;特别是C,开发者的初衷就是代替组合语言的。
22、选C,组合语言就是把机器语言的二进位制程式码对应成汇编的符号,进行程式设计,所以,组合语言属于符号语言。
23、组合语言(AssemblyLanguage)是面向机器的程式设计语言
24、面向机器的低阶语言,通常是为特定的计算机或系列计算机
三、C语言是高级语言吗
计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。
1、机器语言(machine language)是一种指令集的体系。这种指令集,称机器码(machine code),是电脑的CPU可直接解读的数据。
2、汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。
3、高级语言主要是相对于汇编语言而言的,是较接近自然语言和数学公式的编程,基本脱离了机器的硬件系统,用人们更易理解的方式编写程序。编写的程序称之为源程序。
除了机器语言和汇编语言外的所有编程语言,都属于高级语言。所以C语言也是高级语言的一种。