第一百零五章 opcode(2 / 2)

超脑黑客 疯狂小强 1875 字 2个月前

首先编译器要将程序编译为计算机能够理解的机器语言,然后开始将程序交给cpu来控制,经过提取、解码、执行、写回……等一系列的动作,最终计算出结果,然后再将其显示在显示器中。

这个过程虽然繁杂,但是速度非常快,计算机刚刚诞生的那会儿,速度可能和用算盘计算差不多,但是到了现在,已经只是一瞬间的事情了。

小小的一块芯片里面,蕴含的东西却是非常多的。

在以前,cpu是使用继电器之类的基本开关元器件来实现的,这些元器件不但体积庞大,而且不可靠,很容易破碎。真空管的出现逐渐代替了继电器,直到后来晶体管的出现才是cpu技术的第一次飞跃。

集成电路将大量的晶体管都集中在一个小小的芯片上,大大缩小了cpu的体积,并且不容易损坏,稳定姓也得到了极大的提升。这个时期计算机才真正有了走向千家万户的可能,微型计算机应运而生。

红皮书中,对6502的介绍非常详细,大到cpu芯片各个针脚的功能和作用,小到累加器、指令解码器以及各种各样的寄存器的详细结构都配有详细的插图。

这些插图,全部是手绘的,原作者正是苹果公司的天才计算机工程师沃兹尼亚克。

连线条都有些弯曲的手绘图形出现在计算机手册中,这要是在今天,会给人一种非常不专业的感觉,但是在红皮书出版发行的时候,正是这些手绘插图让全世界所有计算机爱好者和研究人员为之痴迷。

可以说,apple_ii完全是为了计算机爱好者而设计的,包括红皮书,也是为这些专业人士而撰写的,因为其设计者是伍兹尼亚克,一个纯粹的技术人员。

不过苹果公司的ceo乔布斯对此意见很大,他并不是技术人员,他也不希望使用苹果计算机的用户仅仅局限于专业人员和计算机爱好者。

这不是乔布斯想要的产品,所以此后苹果公司后来陆陆续续推出了很多版本其他类型的计算机,不过却一直无法超越apple_ii,并且由于过于保守,最终让公司陷入了面临倒闭的危机边缘,直到很久以后才重新崛起——这是后话。

林鸿对这部分内容看得尤其仔细,对照着cpu里面各部件的电路原理图,他在脑海中模拟着整个cpu的运算流程。原本他还以为自己理解起来会有一定难度,但是后来发现,他很顺利地就理解了整个cpu的运作原理。

算术逻辑单元、累加器、计数器、时钟发生器、寄存器组……

林鸿一方面惊诧于这一块小小的芯片上面竟然集成了这么多复杂的部件,另外一方面又沉迷在这些设计精妙的电路中无法自拔。

无线电台的元器件电路和原理,都是可以看得见摸得着的,可是cpu中的这些东西,却被封装在这么小的一块芯片内,只能通过外部的引脚对其进行艹作,这不得不让林鸿感到非常震惊。

这就一个黑匣子,所有输入输出信号,全靠那几根针脚来实现,通过对针脚上面施加各种高低不同的电平电压,就实现了数据的处理和运算,这种巧夺天工的设计,不得不让人击节赞叹!

通过巧妙的电路处理,计算机科学家们发明了一种被称为“opcode”的机器语言,以此来对cpu进行指令控制,从而实现计算。

机器语言就是指二进制代码语言,是最低级最原始的语言,也是计算机微处理器可以直接理解的语言。例如“0000”表示让cpu加载程序,而“0001”则告诉它要存储东西了。

四位数,每一位都有两种可能,那么则可以表示2x2x2x2总共16种不同的艹作。

16种艹作在刚开始的时候还能满足需求,可是到了后面计算机的cpu越来越复杂,艹作指令也越来越多,这已经无法满足需求了,于是便开始进行扩充,用8位或者12位二进制进行标示。

直接用二进制来编写程序,实在是太让人蛋疼了,满屏幕都是密密麻麻的0和1,眼睛都能看成斗鸡眼去。

后来有猛人们便想出一个法子,将二进制转换为十六进制进行处理,每四位二进制正好对应一个十六进制正好对应,这样就大大简化了对记忆以及输入量的要求。

再到后来,大家觉得记十六进制代码也是一件难以接受的事情,于是开始用字母单词的缩写来对应计算机的艹作指令,机器码助记符和汇编语言便由此而诞生。

例如“mov”指令,就是英文“move”的缩写,意思就是移动,功能也是将一个数据从一个地方移动到另外一个地方。

这个指令很有用,例如想要在显示器上显示字母“a”就只要将a对应的机器语言“mov”到对应的显存位置上去,显示器上就会将“a”显示出来。

红皮书在这个章节里面,详细介绍了6502的opcode机器码,主板上的电路,就是对这些机器码的一个实现。

林鸿直到此刻才算真正理解了,为什么说计算机的世界就是0和1组成的世界。

====

推荐朋友现代修真作品

[bookid=2330003,bookname=《最强仙王》]