第380章 指令集(3 / 4)
在身边,所以我就在水木论坛上发了个帖子,找了几个有兴趣的同学一起研究。” 对于吴东来说,虚拟机项目的确是很大了,并且之前从来没有做过,独自摸索的效率太低,于是才动了心思找人一起学习,这样遇到什么问题也可以一起讨论,这样取长补短,提高效率。 他在水木bbs的计算机板块发布了一个招募贴,说自己为了学习计算机底层原理,开展了一个虚拟机项目,期待有共同兴趣和目标的人一起加入。 在帖子中,他详细地描述了一下这个项目的主要内容,以及目前所完成的进度。 在水木,牛人还是非常多的。 他这个帖子发出之后,便引起了不少人的关注和讨论,有人说这其中的难度太大,有点不太现实,而有的人则说使用这种方式来学习计算机组成原理的确非常好。 当然,除了那些夸夸其谈的人,更多地人则直接来到604寝室来实际了解情况。 吴东虽然也第一次接触这个项目,但基本的步骤之前林鸿早就给他规划了,他只要按照这个流程走基本上就没错,于是和别人说这个项目的时候,自然也是头头是道,吸引了不少人加入,最终组建了一个虚拟机项目开发小组。 当然,感兴趣的人多,但更多的人的技术水平甚至连吴东都比不上,只有几个高年级的师兄才比较靠谱,而这个唐华鑫就是其中一个。 唐华鑫长得高高胖胖,看上去一副敦厚老实的模样。 “你好。”唐华鑫首先打招呼。 “你好。” 林鸿点点头,然后走到他们身边,看了看显示器,问道: “你们的进展如何了?开发到哪一步了?” 吴东有些不好意思地说道:“进展有点慢,才刚开始实现指令集,目前已经将add、move等常见指令给实现出来了。” 他所说的指令集,是指能够让cpu理解的语言,每一条指令集对应一条或者多条汇编语言,编译之后,就对应着cpu可以理解的机器艹作码。由于他们模拟的是intel的x86架构指令集提醒,其实现机制,可以从intel的技术文档中查到。 他们是用程序来模拟cpu,所以这个程序,必须能够兼容这些指令集,例如给程序中输入指令add,它必须能够理解,这是让它对两个艹作数进行相加,而艹作数又分为内存和寄存器等不同的类型。 其中实现的细节,都是精确到bit的,编写虚拟机的人,必须对其中每一个比特都要清楚,例如add本身就对应着多个不同的二进制编码。 能够把这些搞懂,基本上计算机的底层运行原理就已经理解得非常深刻了,这也是为什么大家认为参加这个项目,可以很好地学习计算机组成原