《微型计算机原理与应用》电视教学系列片的3、4两集与电视教材中的第三、四两章是相对应的,本次复习是围绕这两章的内容来进行。
第三章所介绍的是微型机中的另一重要部件——存储器。大家都知道,计算机的存储器有内存(又叫做主存)和外存之分,而内存通常可用磁芯存储元件或者半导体存储元件来构成。但是,自从七十年代以来,随着大规模集成电路技术的发展,半导体存储器在计算机中的应用得到了飞速的发展,并逐步取代了磁芯存储器。因此,我们讨论微型机主存也就只讨论半导体存储器。
基于半导体存储器的基本知识已在《计算机概论》系列片的第三章作了介绍,在此基础上学习本章内容是不会有太多的困难了。那么,我们复习中还应该注意哪些问题呢?
首先,这一章增加了一些常用的芯片,除了已学过的2114芯片外,增加了4116和2716。即,除了静态随机存取存储器态片外,还介绍动态随机存取存储器的芯片和可擦洗只读存储器的芯片。复习时要求搞清这些芯片的工作原理、章片的引脚信号名称与功能,以及芯片的存储容量和读、写周期的有关参数。因为,这些都是使用芯片所必须掌握的。
其次,应注意有关半导体存储器的连接问题。其中包括:存储器本身进行扩充的连接问题以及存储器与CPU如何连接的问题。前者是指如何用位数较少、容量较小的芯片去构成具有规定字长和较大容量存储器时的扩接问题(教材中给出了进行位数的扩充和地址扩充的两个例子);后者是讨论由存储芯片组成的存储器如何与CPU进行连接的问题。具体地说,在连接中应考虑的主要问题有:
1、CPU的时序和存储器的存取速度之间的配合问题。从第二章§2、1、4已知,CPU在取指令和存储器读或写操作时,有其固定的时序,它对存储器的存取速度有一定的要求,或者选用可满足CPU时序要求的存储芯片,或者考虑可实现插入必要的Tw周期的措施。
2、存储器的地址分配和选片问题。内存中的RAM和ROM地址分配应作统一的考虑,其中还包括对RAM中的系统区和用户区的地址分配问题等。对于由多芯片组成的存储器来讲,要增加产生选片信号的逻辑电路。
3、CPU总线的负载能力问题。一般CPU输出线的直流负载能力为可带一个TTL负载,因此组成较大的系统时,要考虑CPU能否带得动的问题,需要时应增加缓冲器来带负载。此外,在数据线连接时应考虑存储芯片的数据输入输出的结构方式,以决定是否需要增加三态门与CPU数据总线相连。
由此可见,在存储器与CPU连接时有一系列问题是必须考虑到。作为入门学习,大家应抓住主要一些概念,除复习本章练习题中的第3题外,在此还给出以下填空题供思考
2-1存储器芯片4116是——RAM芯片,其容量为16K×1位,地址线引脚——根,采用了地址线——技术。若要组成64K×8位的内存,需用4116共——片。
2-2存储器芯片2716是———存储器。若向2716芯片写入程序,应使V\(_{pp}\)为——伏,CS-为—电平,在PD/PGM端加上———宽的正脉冲,便可将数据线上的数据写入由地址线所指定的地址单元。
以上是第三章的主要内容,下面复习第四章寻址方式和指令系统。
每一台计算机在设计时,对于能执行什么样的指令,能执行多少条指令,怎样表示操作码和具有什么样的寻址方式都有自己的规定。我们在应用计算机时要用机器指令,或汇编语言来编写程序,必须对机器的指令系统十分了解。虽然各种计算机的指令系统各不相同,但它们要执行哪些基本指令,它们的寻址方式等是有共同性的,而且Z80的指令系统功能较强,较齐全,所以我们以Z80的指令系统为例来分析是有代表性的。
指令是规定计算机完成一定操作的指示和命令。一台计算机所具备的全部指令就统称为这台机器的指令系统。指令系统不仅可供我们了解微处理器的具体功能和内部结构,还可供我们在某些应用的场合,用它来编写解决问题的程序。可见,掌握好这一章的内容就很有必要了。在书中我们是从了解Z80指令系统的功能、结构、特征和简单应用的角度,对Z80的指令系统作了介绍,目的是从Z-80机器的例子出发,了解计算机的指令和功能。
复习中,建议围绕以下三个内容来进行:①指令的基本概念和表示法;②寻址方式;③Z80的指令系统。其重点是Z80的指令系统。
在此,提醒大家注意二个问题:一是目前微型计算机的存储器一般采用以字节为单位进行编址的方法(一个字节是8个二进制位),因而指令通常使用变字长的格式,也就是说指令长度是不固定的。而且,由于计算机采用具有两个稳定状态的电子器件来构成,这就使得机器指令必然是以二进制编码形式来表示。当然,这种表示形式书写起来是很长的一串机器码,为了便于书写,通常使用十六进制表示法来压缩指令的机器码。
另一个问题是关于指令中的操作数的地址形成,也就是所谓寻址方式问题。初学者往往会感到指令中为何采用多样化的寻址方式,对此不理解,其原因是缺乏编程实践,这有待于通过下一章汇编语言程序设计的学习来加深理解。事实上,为了方便程序设计,通常总希望机器指令具有灵活、多样化的寻址方式。
由于指令通常是对指定的数进行操作,而这些数可存放在微机系统的CPU内部的寄存器组,或是存放在内存或I/O区域中,为此本系列片主要介绍在上述三个区的不同寻址方式。在复习中,要求大家弄清这些寻址方式的不同含义,并熟悉不同寻址方式的各种符号表示法。其中包括寄存器寻址方式;立即寻址方式;直接寻址方式;寄存器间接寻址方式;变址寻址方式以及相对寻址方式等等。
下面着重复习Z80的指令系统。Z80的指令功能是比较强的,指令类型也比较齐全,是八位微机的典型。由于指令类型与指令条数比较多,在复习时应把注意力集中在指令的功能及其符号的表示上。
例如,传送指令其功能较简单,是把数据从一个地方传送到另一个地方,也就是说从源地址向目标地址传送数据,目标地址又叫目的地址。在指令的符号表示法中,它使用了助记符LD,是英文load的缩写,并规定:目的地址应写在逗号前,而源地址写在逗号后,使用时千万别违反这个规定,否则机器执行的结果将会与自己的原意完全不同。
Z80是八位字长的微处理器。所以,一般地说它加工、处理的数据是八位的(当然也有多字节运算)。但是,为了能寻址整个内存,它的地址线有16位。因此数据一般用八位数传送(当然也可以用寄存器对来传送两个8位数,或多字节数)。而地址总是用16位数传送的。
学习传送指令时有一个问题很值得注意,即,哪些地址单元之间可直接传送,哪些是不能直接传送的。为了帮助大家掌握它,教材中特地给出图4.14供复习时使用,其中实线表示可进行8位数据的传送,虚线表示可进行16位数据传送,但切不可想当然地在没有引向线的场合要求机器做传送操作,因为指令系统中没有设置此指令。
栈传送指令可能是初学者的难点。这就要求首先把栈的含义搞清楚。栈是指堆栈,它是一种特殊的数据结构,它很象货栈中堆放货物时的情景。所谓“后进先出”规则,我们可连系日常生活中碗的叠放与使用。例如,洗碗时总是把一个个干净的碗自下而上重叠起来,最后放入的碗处于这一叠的最顶上的一只,但在用餐取碗时,又总是从这一叠碗的最顶上的一只碗取出使用,所以后放上去的被先取走,最底下的一只碗是最先放入的却最后被取走。
在计算机中可用若干寄存器或者使用存储器中的一个区域来构成这样的栈,栈底是预先设定的,即应把它的地址置入SP(堆栈)指示器中,栈顶是在栈中存放内容时所形成的,它在不断的变化。而且SP总是指向最后放入的位置。
这种形式的堆栈,由于地址是从底到顶部递减的所以称它为向下延伸的栈(反之,是向上延伸的栈,在此不作讨论)。每压入一个数据(即PUSH),(SP)要自动减1,而每弹出(即POP)一个内容,则(SP)自动加1。把堆栈的含义搞清楚后,就不难理解PUSH和POP指令了。
在学习指令时还需注意以下二点:一是指令执行的结果是否会影响标志寄存器的状态的问题;另一点,要有意识地注意不同寻址方式之间的差别。
关于标志寄存器F,它的每一位都是独立使用的一个寄存器,用它可以指示微处理器执行当前指令的结果和运行状态,F的各位含义已在第二章介绍过,请予以及时回顾。传送指令一般执行结果不影响F的内容,而运算指令和其它指令绝大部分都会对F有影响,具体的可参阅电视教材中的附录2。
当你按照电视教材中指令分类顺序复习之后,还会感到许多指令记不住,这不用急燥,通过指令的使用(编写程序)会使你很快地记住它们,这是我们下一次所要复习的内容。本章应着重把有关的基本概念掌握好,并学习利用附录2查阅有关指令的方法。为此给出以下题目供思考。
2-3是非题□若要把寄存器C中的内容(数据)传送到地址为1010H的内存单元中去,可用Z80指令LD(1010H),C。
2-4无条件转移指令JPn\(_{1}\)n2可实现转向___________中的任意位置; 而指令JR e只能转向离开当前指令地址的___之间距离的范围内。
2-5指令PUSH DE是16位___指令,指令长度为__字节,操作码是_____,指令执行时需要_____个T状态。(唐肖光)