1700413762
计算机是怎样跑起来的 本章重点
1700413763
1700413764
本章的目标是通过编写程序使诸位亲身体验计算机的运行机制。为了达到这个目的,就需要使用一种叫做“汇编语言”的编程语言来编写程序,然后再把编好的程序通过手工作业转换成CPU可直接执行的机器语言。
1700413765
1700413766
这样的转换工作叫做“手工汇编”(Hand Assemble)。也许会有人觉得听起来就很麻烦,事实上也的确如此,但还是希望所有和计算机相关的技术人员都能亲身体验一下汇编语言和手工汇编。
1700413767
1700413768
这次体验应该能加深对计算机的理解,使诸位犹如拨云见日,找到长期困惑着自己的问题的答案,不仅能因“我能看懂程序了”而获得成就感,更能因发现“计算机原来很简单啊”而信心倍增。虽然本章的主题稍有些复杂,但笔者会放慢讲解的步伐,还请诸位努力跟上
1700413769
1700413770
1700413771
1700413772
1700413774
计算机是怎样跑起来的 3.1 从程序员的角度看硬件
1700413775
1700413776
为了体验手工汇编,下面我们就为在第2章制作的微型计算机编写一个程序吧。因为程序的作用是驱动硬件工作,所以在编写程序之前必须要了解微型计算机的硬件信息。然而真正需要了解的硬件信息只有以下7种(如图3.1所示),所以没有必要在编程时还总是盯着详细的电路图
1700413777
1700413778
图3.1 编写程序之前需要了解的硬件信息
1700413779
1700413780
1700413781
1700413782
1700413783
[CPU(处理器)信息]
1700413784
1700413785
CPU的种类
1700413786
1700413787
时钟信号的频率
1700413788
1700413789
[内存信息]
1700413790
1700413791
地址空间
1700413792
1700413793
每个地址中可以存储多少比特的信息
1700413794
1700413795
[I/O信息]
1700413796
1700413797
I/O的种类
1700413798
1700413799
地址空间
1700413800
1700413801
连接着何种周边设备
1700413802
1700413803
可以使用哪种机器语言取决于CPU(也称处理器)的种类。所谓机器语言就是只用0和1两个二进制数书写的编程语言。即便是相同的机器语言,例如01010011,只要CPU的种类不同,对它的理解也就不同。有的CPU会把它解释成是执行加法运算,有的CPU会把它解释成是向I/O输出。这就好比同样是man这个词,有的人会理解成“人”,有的人会理解成“男人”
1700413804
1700413805
由于微型计算机上的CPU是Z80 CPU,所以就要使用适用于Z80 CPU的机器语言。顾名思义,机器语言就是处理器可以直接理解(与生俱来就能理解)的编程语言。机器语言有时也叫做原生代码(Native Code)
1700413806
1700413807
所谓时钟信号的频率,就是由时钟发生器发送给CPU的电信号的频率。表示时钟信号频率的单位是MHz(兆赫兹=100万回/秒)。我们的微型计算机使用的是2.5MHz的时钟信号,时钟信号是在0和1两个数之间反复变换的电信号,就像滴答滴答左右摆动的钟摆一样。通常把发出一次滴答的时间称为一个时钟周期
1700413808
1700413809
在机器语言中,指令执行时所需的时钟周期数取决于指令的类型。程序员不但可以通过累加时钟周期数估算程序执行的时间,还可以仅在特定的时间执行点亮LED(发光二极管)等操作
1700413810
[
上一页 ]
[ :1.700413761e+09 ]
[
下一页 ]