×

汇编指令集 汇编指令 操作系统

机器码、CPU指令集、汇编指令集、操作系统、API接口、C标准库的关系?如何安装多个操作系统

admin admin 发表于2022-05-25 12:07:48 浏览149 评论0

抢沙发发表评论

机器码、CPU指令集、汇编指令集、操作系统、API接口、C标准库的关系


你好,我来初步解释你所提的问题,仅供参考。

1、不同的CPU肯定对应不同的机器码,其实这种说法不规范,应该是不同的机器码集,或机器指令集,因为汇编指令和机器指令是一一对应的,也可以说成是汇编指令集。我们编写的程序最后都是处理(这里的处理根据不同的高级语言,可能是解释、预编译、编译、链接等等)成由汇编指令集里面的指令构成的指令序列,然后调入内存,再一条条由知道这每条指令干什么用的CPU来执行的。
你说的“+”号,其实就是加法指令,当然不可能是“010101”,因为没有6位的指令,只可能是4位、8位、16位、32位、64位。
位数相同不同型号的CPU,指令集略有不同的,但绝大多数指令应该是相同的。比如类似你说的“+”等算术运算,当然还有更多的其它指令,都是相同的二进制编码。这就是你的同一台电脑可以使用INTEL的CPU,也可以使用AMD的CPU的原因,并不会因为你换了CPU,电脑就不能运行了。
那么32位的CPU还能执行16位的指令吗?那么64位的CPU还能执行32位、16位的指令吗?这就看CPU是否向下兼容了。如果你的程序(exe文件)很老,一运行就出错,或者蓝屏了,呵呵,就不兼容了。CPU不再认识你的程序里的那些“老”指令了。
2、这个问题在回答1里已经说的很清楚了,机器码就是CPU的指令,CPU的指令集就是机器码的集合,说白了,就是CPU的API(应用程序编程接口),只不过这里的应用指的是汇编语言。
3、和2是同一个问题,汇编指令集当然和CPU指令集是一一对应的。一种新的CPU生产出来后,它的指令集就是固定的。生产厂家就会推出对应的新的汇编系统,与其指令集相配套。然后那些编译系统开发商们也会对他们的系统进行升级,增加新的特性。
4、C标准库也是机器指令构成的程序,当然和CPU指令集有关系。所谓的标准,不是针对机器语言来说的,而是针对C语言的编码来说的。比如sin(x);这个函数,在不同的电脑(PC机、苹果机甚至手机、单片机等),用C语言编写代码时,都是sin(x),不会是别的(比如sn(x))。诸如此类的所有函数形成的集合就是一个标准库。所以我们编写的标准C程序,可以再PC机上编译成PC机能运行的机器指令,也可以再苹果机上编译成苹果机能运行的机器指令,PC机上有PC机的“翻译“,苹果机上有苹果机的“翻译”,他们将这个你编写的这个相同的C程序翻译成不同的机器指令,但最终程序的运行结果是一样的。这就是可移植性,因为遵循了标准。标准不光指的标准库,还包括数据类型、关键字、运算符、语法等。标准库的实现当然和你所使用的计算机的CPU的指令集是紧密相关的。C的编译器的实现可以是机器语言、汇编语言,也可以是C语言实现。呵呵,这个好像不太好理解。所谓的编译,就是将你的由字符构成的源程序转化成机器能理解的二进制,二进制无非是0、1构成的一串符号,先存在硬盘,再调入内存运行。机器语言、汇编语言、C语言都能处理二进制,都能生成那个最终的二进制文件,明白了吧。
C库函数和windows api基本没有关系。windows有自己的一套库函数,就是API,事实上,C的标准库已经没有多大意义了。如果我们编写没有图形界面的某些应用程序,如控制台应用程序,可能还会用到标准库。
5、windows如果不知道CPU的指令集,如何发挥windows的最佳效率?而汇编语言、C语言和CPU联系的最紧密,当然要用它们来写。
所谓封装,就是隐藏其实现,暴露其接口。正如CPU一样,我们知道ADD A,B是计算A加B,怎么计算的,不用知道。CPU指令集就是这台裸机(无操作系统)给我们的一个API。
一台安装了windows系统的计算机,其实是一台建立在裸机基础上的“虚拟机”。这就好比一个初生儿和一个成人一样,初生儿其实具备了一个人的所有特征,但你无法和他交流(即使是机器语言也不行,呵呵),但他的确什么都会,你能说一个初生儿不会说英语吗,他会的,他已经具备了说英语的所有条件,因为他有嘴巴、会发音,有嘴巴就会说。但是让初生儿说英语实在是太难了,也就是这个API不好弄。一个成人就是安装了操作系统的长大了的初生儿,他的功能更多了。比如肌肉发达了(相当于外设增加了),能很看懂英语和说英语了(高级语言有了)。但最终还是要和初生儿一样用嘴巴说英语!只不过说的更好听而已,也就是API更丰富罢了。但不论你吃的是什么山珍海味,还是五谷杂粮,最终都转换成氨基酸、葡萄糖、微量元素和水供肠胃吸收。不论你用什么语言编写的程序,最终都是CPU执行的二进制机器指令。
API本质上一个windows系统调用的集合,调用windows给我们提供的所有功能,比如创建一个窗口。如果windows没有提供这个集合,那么windows还有用吗?至于windows是怎么提供这个API的,API是怎么实现的,这个就要问microsoft了。

如何安装多个操作系统


多操作系统的安装

一、先安装Windows 98/ME再安装Windows 2000
多操作系统较为普遍的一种方式就是Windows 98/ME和Windows 2000双系统共存,Windows
98主要用于平时的休闲娱乐,而Windows
2000着重于办公软件和各种程序开发。
1、硬盘分区
Windows 98和Windows
2000虽然都同出一族,但是由于它们之间存在的一些根本的差异,使之在安装时候也要非常小心。Windows
2000采用的是NT系统的内核,所以它支持NTFS的分区格式,但是考虑到要在同一个硬盘中安装Windows
98,这样会导致在运行Windows 98
的时候无法访问有Windows 2000的硬盘分区,所以建议经验不足的朋友还是采用原有的FAT32格式。
注意:在进行多系统安装时,有一个基本原则,即最好把不同的操作系统分别安装在不同的磁盘分区之内。
2、系统安装
首先安装Windows 98操作系统。等到Windows 98安装完毕,在Windows
98环境下插入Windows 2000的光盘,会出现“是否升级到
Windows 2000”的提示,在这里我们选择“否”,即不升级到Windows 2000。
在接下来的弹出窗口中单击“安装Windows 2000”,然后选择“安装新的Windows
2000(全新安装)”。
在后来的出现的弹出窗口中,要注意选中“安装过程中选择安装磁盘分区”这一选项。否则,安装程序会默认把Windows
2000安装
在C盘之中,这样就会造成和Windows 98共同存在同一分区的局面,对于系统的稳定性有一定的影响。
接下来的安装就和安装单操作系统Windows 2000的过程类似...
在安装完成后重新启动计算机,便会直接进入到双启动画面,这时可以选择要进入的操作系统了。
值得一提的是,NTFS的分区格式对于Windows
2000的稳定性还是有着较大的影响的,如果你想要系统更稳定更安全,不妨把Windows
2000的分区在安装过程中格式化为NTFS(在安装过程中会有自动提示)。
二、先安装Windows 98/ME再安装Windows XP
Windows 98/ME和Windows XP双系统共存,也是多操作系统较为普遍的一种方式。
Windows 98/ME和Windows XP双系统的安装方法与Windows 98/ME和Windows
2000双系统安装基本上差不多,因为Windows XP和
Windows 2000都是采用Windows NT内核的,所以除了在安装界面中有所不同之外,所进行的选择完全相同。
提示:
在安装过程中会询问是否获得更新的安装程序文件,我们一般选择“否,跳过这一步继续安装Windows”,这样可以加快安装的速度。
三、先安装windows 98/ME再安装Windows 2003
Windows 98/ME和Windows 2003双系统的安装方法与Windows 98/ME和Windows
2000双系统的安装方法一样,在此也不再作详细说明...
四、先安装Windows 2000再安装Windows 98/ME
要注意的是采用这种方法的时候硬盘的C盘绝对不能为NTFS格式。首先通过光盘启动的方式引导计算机来安装Windows
2000到C盘。
注意:系统安装完成后,你是不能在Windows 2000里运行windows 98/ME的安装程序的。
重新启动计算机进入DOS环境,插入Windows 98/ME的安装光盘,在DOS环境下继续安装Windows
98/ME到硬盘的其它分区。它的安装
和安装单一的Windows 98/ME操作系统一样...
在Windows
98/ME安装完成后,重新启动计算机,我们会发现系统并没有出现双启动菜单,而是直接进入了刚刚装好的Windows 98/
ME中。这是因为Windows 98/ME本身并不支持多操作系统,所以在安装完成后它会改写位于C盘中的引导信息。
解决方法很简单,只需要再次通过Windows
2000的光盘启动计算机,选择“全部修复”命令,任务完成后即可得到双启动菜单了。
五、先安装Windows XP再安装Windows 98/ME
如果您已经先安装好了Windows XP,这时您想回到Windows 98/ME环境中,却又对Windows
XP难以割舍,那就Windows XP和Windows
98/ME双系统共存吧。
由于在Windows XP中执行Windows
98/ME的安装程序时会被终止,所以我们只能在DOS下安装Windows 98/ME,安装成以后是没有又启
动菜单的,这时我们可以用以下方法解决:
第一步:
在安装好的Windows 98/ME下执行Windows XP的安装程序,前面的步骤同“先安装Windows
98/ME再安装Windows XP”中可完全相同。
第二步:
当电脑复制完Windows XP的安装文件,重新启动时千万要注意:一旦出现多启动菜单,不要选择“Microsoft
Windows XP
Professional安装程序”,这一步要手快,你要选择启动Windows 98/ME的选项。
第三步:
在Windows 98/ME环境下,在C盘要目录下查找boot.ini文件。
提示:如果在C盘中没有发现boot.ini文件,不要慌,只不过是它的属性被设置为隐藏。取消隐藏方法如下:
打开“我的电脑” --》 单击“工具--文件夹选项” --》 在“文件夹选项”中 单击“查看”选项卡 --》
取消“隐藏受保护的操
作系统文件(推荐)”前面的钩,最后单击“确定”即可。
用记事本打开boot.ini,应该是类似于下面的内容:
[boot loader]
timeout=5
default=c:\$win_nt$.~bt
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS=“Microsoft
Windows“
c:\$win_nt$.~bt=“Microsoft Windows XP Professional 安装程序“
这里面有两部分内容:第一部分[boot
loader]包含了超时规定和操作系统的默认路径;第二部分[operating systems]包含了安装

在计算机上操作系统的路径,其中multi(0)是适配器的顺序号,disk(0)是磁盘参数信息,rdisk(0)是连接到适配器上的磁盘的顺序号,
partition(2)是分区号。
第四步:
这时你要修改boot.ini文件的内容为:
[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS=“Microsoft
Windows“
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=“Microsoft
Windows XP Professional“
即修改第二行和第五行的“\$win_nt$.~bt”为“multi(0)disk(0)rdisk(0)partition(1)\WINDOWS”
第五步:
保存文件后退出,重新启动计算机,你会发现双启动菜单已经出来了,你可以在两个系统中自由切换了。
提示:Windows XP
Professional在安装时会在C盘根目录下创建两个临时文件夹“$win_nt$.~bt”和“$win_nt$.~ls”,大概会占
用几百MB的空间,当你找回双启动菜单以后,删掉它们吧。
六、先安装Windows 2003再安装Windows 98/ME
解决方法和在Windows XP下安装Windows 98/ME一样...
七、先安装Windows 2000再安装Windows XP
1、先安装Windows 2000
安装windows 2000用Windows
2000的安装光盘引导系统,安装过程中选择安装到C盘,可以选择“使用NTFS格式格式化硬盘”(因为
Windows 2000和Windows
XP都支持NTFS格式,而且这种文件系统确实有其优秀的特性,你也可以通过安装NTFS对其进行新知识的学习,当
然你也可以个习惯进行选择),以后根据屏幕提示即可完成安装。Windows
2000安装完成后,你也可以在资源管理器中把其他分区格式化
成NTFS,当然这也可以你个人的习惯进行选择。
2、再安装Windows XP
和前面“先安装Windows 98/ME再安装Windows XP”一样,在此也不再详述。
八、在已安装Windows XP的计算机中安装Windows 2000
由于Windows XP是比Windows 2000更高一级的操作系统,因此如果先安装Windows
XP以后再安装Windows 2000时,会出现Windows XP

不能启动的问题。因此,我们需要备份引导文件。在C盘根目录下找到“Ntldr”和“Ntdetect.exe”两个文件,并把它们保存在其他文件
夹中(如“D:\XP”文件)。
现在可以安装Windows 2000了。这一步可直接在Windows XP环境下进行,或者利用Windows
2000的安装光盘从CD-ROM启动。
注意:Windows 2000不要和Windows XP安装在同一分区中。
Windows
2000安装完成后,把刚才备份的那两个文件“Ntldr”和“Ntdetece.exe”复制到C盘的根目录下,重新启动计算机,你会
发现双启动菜单已经出来了。
九、在Windows XP下安装Windows 2003
在Windows XP环境下放入Windows 2003安装光盘后,按提示操作。
由于版本的不兼容,因此系统会提示我们选择“全新安装”的模式进行Windows 2003的安装。
安装完成后就可以了。
十、先安装Windows 2003再安装Windows XP
在Windows 2003下安装Windows XP步骤与之前的安装并没有太大的区别。
利用Windows XP安装光盘从CD-ROM中引导计算机,并完成Windows XP的安装。
当安装Windows XP以后,Windows 2003则有可能无法启动,这时可以在Windows
2003安装光盘的i386文件中找到“Ntldr”和
“Ntdetect.exe”两个文件,并复制到C盘的根目录下即可。
十一、实现Windows 98/2000/XP/2003多系统共存
先安装Windows 98,安装完成以后在Windows 98环境下安装Windows 2000。Windows
2000安装完成后就有双启动菜单了,这时你可
以选择在Windows 98或Windows 2000的环境下安装Windows XP,同理Windows
2003的安装也是如此。安装完成后你就可以看到“四启动”
菜单了。
按照Windows 98至Windows 2000再Windows XP最后Windows
2003的顺序安装,系统将不会有任何问题出现,唯一要注意的是把不同
的操作系统安装到不同的分区,以免意外发生。

谁知道图片中这个主图的操作系统源码,文华财经的,真想知道它的真容是什么谢谢指导!


使用这种方法,请留意请点击微信右下角我。微信储存空间管理微信至尊闺女,你的微信长时间未清理,文件较多,围巾要系统在这个过程中会需要较长时间耐心等的。就和我管理当前微信账号聊天程序,点击进入。不是你的微信。我跟你聊天时候就认购单再删除。
-汇编指令集