打字猴:1.700414153e+09
1700414153
1700414154 00001110  OUT (3),A        11010011 00000011
1700414155
1700414156 接下来是IN A,(0),匹配IN A,(num)模式,所以可以先转换成11011011 num,然后把num替换成00000000,即用8位比特二进制数表示的十进制数0,最终得到机器语言11011011 00000000.对于接下来的OUT (1),A,也可以按同样的方法转换
1700414157
1700414158 地址       汇编语言         机器语言
1700414159
1700414160 00010000  IN A,(0)         11011011 00000000
1700414161
1700414162 00010010  OUT (1),A        11010011 00000001
1700414163
1700414164 最后一句JP LOOP匹配模式JP num,所以可以先转换成11000011 num。请注意这里要用16比特的十进制数替代作为内存地址的num。在微型计算机中是以8比特的单位指定内存地址的,但在Z80 CPU中用于设定内存地址的引脚却有16个,所以在机器语言中也要用16比特的二进制数设定内存地址。JP指令跳转的目的地为00010000,即LOOP:标签所标示的语句LD A,0对应的内存地址。把这个地址扩充为16比特就是00000000 00010000。要扩充到16位,只需要把高8位全部设为0就可以了
1700414165
1700414166 还有一点请注意,在将一个2字节的数据存储到内存时,存储顺序是低8位在前,高8位在后(也就是逆序存储)。这样的存储顺序叫做“小端序”(Little Endian),与此相反,将数据由高位到低位顺序存储到内存的存储顺序叫做“大端序”(Big Endian)。根据CPU种类的不同,有的CPU使用大端序,有的CPU使用小端序。Z80 CPU使用的是小端序,因此JP LOOP对应的机器语言是11000011 00010000 00000000
1700414167
1700414168 地址       汇编语言         机器语言
1700414169
1700414170 00010100  JP LOOP          11000011 00010000 00000000
1700414171
1700414172
1700414173
1700414174
1700414175 计算机是怎样跑起来的 [:1700412641]
1700414176 计算机是怎样跑起来的 3.6 尝试估算程序的执行时间
1700414177
1700414178 在本章最后,介绍一下如何通过时钟周期数估算程序的执行时间。请翻到表3.2,找出执行每条汇编语言指令所需的时钟周期,然后把代码清单3.2中所用到的每条指令的时钟周期累加起来。于是可以算出到LOOP标签为止的8条指令共需要7+11+7+11+7+11+7+11=72个时钟周期;LOOP标签之后的3条指令需要11+11+10=32个时钟周期,因为微型计算机采用的是2.5MHz的晶振,也就是1秒可产生250万个时钟周期,所以每个时钟周期是1秒/250万=0.4微秒。72个时钟周期就是72*0.4=28.8微秒,32个时钟周期就是12.8微秒,这段程序是用LED的亮或灭来表示指拨开关的开关状态,所以LOOP标签之后所执行的操作“输入、输出、跳转”每猜测可以反复执行1秒/12.8微秒/次=78125次,可见计算机的计算速度有多么惊人
1700414179
1700414180 比起C语言或BASIC等高级语言,汇编语言的语法简单,指令数少,说不定会更容易学习,可是今天还在使用汇编语言的人却凤毛麟角,使用汇编语言编程时,因为要事无巨细地列出计算机的行为,所以程序会变得冗长繁复,因此大家只需要在纸上体验汇编语言、机器语言以及手工汇编就足够了。只要具备了这些知识,即便是用C语言或BASIC语言等编程语言编程时,也一样能感受到计算机底层的工作方式,也就是说变得更加了解计算机了
1700414181
1700414182 在接下来的第4章中,将介绍条件分支和循环等“程序的流程”,还会稍微介绍一些有关“算法”的内容
1700414183
1700414184
1700414185
1700414186
1700414187 计算机是怎样跑起来的 [:1700412642]
1700414188 计算机是怎样跑起来的 第4章 程序像河水一样流动着
1700414189
1700414190 热身问答
1700414191
1700414192 在阅读本章内容前,让我们先回答下面的几个问题来热热身吧
1700414193
1700414194 初级问题:Flow Chart的中文意思是什么?
1700414195
1700414196 中级问题:说出自然界中河流的三种流动方式
1700414197
1700414198 高级问题:事件驱动是什么?
1700414199
1700414200
1700414201
1700414202
[ 上一页 ]  [ :1.700414153e+09 ]  [ 下一页 ]