网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
作者:Magicianlyx
链接:https://www.zhihu.com/question/23474438/answer/39173229
先回答4个问题,
1,处理器架构即微结构,指令集架构决定微结构的一部分(解码逻辑和执行单元)
2,指令集决定微结构的一部分硬件逻辑设计
3,mips有多个意思,既是一个公司;也可以是一个单位,百万指令每秒。
4,汇编指令是让人看得懂的,只是指令集的另外一种表示形式。
指令集ISA:他是CPU的一个特性,决定CPU的解码电路和执行单元,但并不存储在CPU内部。是微结构提供给上层一个接口,类似于程序员写码是用到的api。某CPU能执行哪个指令集的所有指令就称为兼容此指令集。
我打个比方,一个人买回来一个电灯,他使用时并不需要知道电灯发光的原理,只要看说明书使用方法:怎样接线就能实现发光的效果。这里电灯就像是CPU,说明书就像是指令集,使用电灯的人做汇编程序员的角色。
指令集包括汇编语言形式和二进制机器码格式,CPU执行的是二进制代码(这叫机器指令,机器能理解的),汇编就是给人看的,人能理解的。每条汇编指令都有对应的机器码指令。完成汇编语言和二进制机器码的转换时汇编器(现在都和编译器打包在一起了)。
微结构:每个cpu都有他的微结构,他描述cpu的一切逻辑。前端怎么实现取指令啊,解码怎么让其他部件的得知将要执行的指令,怎样分发指令,执行,写回,操作数旁路转移,预取指令,分支预测,分支出错流水线中指令如何回退,如何恢复,寄存器怎样实现存储等等还有很多很多,写都写不完。
——补——
汇编器,负责汇编代码——>机器码的转换,集成在编译器中。软件实现。
我以mips为例
汇编代码add
s
0
,
s0,
s0,s0转换成mips32机器码就是000000 00000 00000 00000 00000 100000 (共32位)每一段有其意义,分别是『操作码 第一个操作数寄存器号 第二个操作数寄存器号 目的寄存器号 shamt funct』
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**