您好、欢迎来到现金彩票网!
当前位置:2019欢乐棋牌 > 指令集 >

关于CPU指令集帮我理一下思路。

发布时间:2019-06-24 21:57 来源:未知 编辑:admin

  今天看小甲鱼的汇编视频,知道了有个东西叫汇编指令集。然后我知道汇编可以做系统,可以写软件,那么汇编跟WINDOWS系统相比,汇编是老子,系统是儿子,程序就是小儿子了。所以汇编比他...

  今天看小甲鱼的汇编视频,知道了有个东西叫汇编指令集。然后我知道汇编可以做系统,可以写软件,那么汇编跟WINDOWS系统相比,汇编是老子,系统是儿子,程序就是小儿子了。所以汇编比他们都大,汇编的程序指令集有多丰富,这个系统的指令就多丰富,因为他们都是汇编弄出来的。这样想对不对?

  然后,我就想,是不是我把汇编指令集的100多条命令背会了,就能写出各种程序,通过程序控制电脑的一切。

  小甲鱼老师说系统内存中的某些地方时受保护的,禁止查看,里面有不可告人的目的。于是我就在网上找资料,资料上说汇编可以实现机器语言几乎所有的功能。看到这里,我有些困惑了,那些汇编实现不了的,机器语言能办到的,是不是就是那些不可告人的地方?

  然后又查出一个CPU指令集,我就更纳闷了。不是说机器语言是最底层的语言吗?怎么又冒出一个CPU指令集。那CPU指令集跟汇编指令集什么关系呀?

  我猜CPU指令集和汇编指令集都是从机器语言中挑出来的吧!他们是优质的有意义的机器语言。就好像把6000多个国际通用汉字两两组合可以得到所有的双字词,然后经过筛选可以得到优质的双字词库一样。

  那这么说,CPU指令集就是爷爷咯。CPU指令集对应的机器码可以写出一个小的系统,然后写出一个最初的汇编程序,用汇编可以做一个大大的系统,再做出更高级的程序设计语言,比如C,VC++

  怎么得到我这个CPU的这种CPU指令集?有比CPU指令集更底层的吗?CPU指令集怎么做出来的?CPU指令集有做不到的事情吗?

  一个CPU能识别的机器指令有没有一个底限,到底有多少个?或者多少种元素?就像现代汉字通用标准一样,我就敢说现代汉语所有通用的词语,都是这六千多个字组合来的。这个大框架就把所有的词都套进去了。大不了有三三组合的,四四组合的。只要我耐心挑选,一定能做出一个很优秀的词库。

  现在谁能给我一个大框架把所有的机器语言命令都套住,大不了我两两组合,一对一对调试,寻找那些汇编程序做不到的机器指令,留着到关键的时候用。

  比如地址总线个地址嘛!最后一个地址是32个1。这太透明了,里面钻进去一个苍蝇我都能看出来。

  就是这个CPU指令集把我的思维打乱了。还有CPU以外的机器码在找啊?求指点。展开我来答

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  ———————————————————————————————————————————————————————————————————————————————————

  先说指令集,指令集是一个CPU和软件之间的接口。他不是一个实物,只是CPU提供给上层软件的一个抽象。

  所以程序员在编程时并不需要了解芯片的布局,只需要知道根据那些指令能完成怎样的功能就行了(这些指令由CPU执行)。

  为了方便理解,我做个比喻会好一些,就像你买来一个灯泡你并不需要知道灯泡里面的电路时如何布局的,只是简单的看看说明书,怎样装上,怎样通电就能实现发光的供能了。灯泡好比CPU,ISA就是说明书,人就当程序员(编译器)的角色。

  再来说汇编指令,机器指令的关系,CPU执行的是二进制代码(这叫机器指令,机器能理解的),汇编就是给人看的,人能理解的,如add,sub指令。

  每条汇编指令都有相应的二进制代码。完成他们之间的转换是汇编器(现在的汇编器和编译器是打包在一起的)。

  不同的指令集有不同的指令,汇编指令对应的机器码也不同。在一个指令集中,一条汇编指令对应一条二进制机器码(图,mips指令集汇编指令对应的机器指令)

  现在的程序都是由高级语言编写的,如C,C++,C#,等等,这个明显比用汇编语言去编程高效得多,高级语言到二进制代码的转换时有编译器去完成,当然编译器还有优化代码的功能,使代码执行起来更有效率。(图,手迹,一条C语句对应的mips指令和机器所执行的二进制代码,感受一下高级语言编程的高效)

  系统是介乎在应用程序层和硬件之间的,作用我也不太清楚,应该是为应用程序分配硬件资源,用哪段内存,什么时候要使用CPU执行这样吧??

  CPU的指令集所包括含的指令取决于程序员需不需要这些指令,这些指令能不能代替以往的指令使程序执行起来更有效率,说白了就是这条指令有没有存在的价值。

  ———————————————————————————————————————————————————————————————————————————————————

  “汇编是老子,系统是儿子,程序就是小儿子了。” ——完全没有这个关系,他们不再同一个层面上。完成的工作也不同。

  “是不是我把汇编指令集的100多条命令背会了,就能写出各种程序” ——现在编程都用高级语言了。

  “系统内存中的某些地方时受保护的,禁止查看,里面有不可告人的目的。于是我就在网上找资料,资料上说汇编可以实现机器语言几乎所有的功能。看到这里,我有些困惑了,那些汇编实现不了的,机器语言能办到的,是不是就是那些不可告人的地方?” ——汇编的攻击性的确很强,因为他可以用指令直接操作硬件。但系统就是为了不让指令操作某些内存段,因为这段内存里面放着一些重要的系统文件,一旦被破坏就会造成系统崩溃。

  “我猜CPU指令集和汇编指令集都是从机器语言中挑出来的吧!”——上面说了,CPU指令集是一个抽象,他是两个层面之间的接口,表现给下层硬件的是二进制的机器码,表现给应用层面的是汇编指令。一条汇编指令对应一条机器指令。

  “CPU指令集对应的机器码可以写出一个小的系统,然后写出一个最初的汇编程序,用汇编可以做一个大大的系统,再做出更高级的程序设计语言,比如C,VC++

  这么想对吗?”——系统和应用程序也是由高级语言编写,因为高级语言开发(编写)更有效率,代码读起来更容易理解

  “地址总线个地址嘛!最后一个地址是32个1。”——地址总线位是CPU设计决定的,系统32位是系统的事,不能浑然一谈。

http://azetaline.com/zhilingji/73.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有