当前位置:首页 > 软考教材分享:程序员考试考前串讲
程序员 http://www.educity.cn/jiaocheng/zg14.html
11101101.
2.4 指令系统
本知识点主要考查指令的执行过程、寻址方式等。 2.4.1 寻址方式
在计算机中,CPU都会定义出自己特定的指令系统,不过都遵循着统一的标准格式。指令的基本格式是由操作码和地址码两部分组成。操作码指出该指令要完成什么操作,地址码则是提供原始的数据。指令系统中定义操作码的方式可以分为规整型(即定长编码)和非规整型(变长编码)两种,如表2-7所示。
表2-7 指令系统中的操作码
在指令系统中用来确定如何提供操作数或提供操作数地址的方式称为寻址方式(编址方式)。操作数可以存放在CPU中的寄存器(用寄存器名操作)、主存储器(指出存储单元地址)、堆栈(先进后出的存储机制,用栈顶指针SP来标出其当前位置)、外存储器或外围设备中。不过在运算时,数据均在主存储器中,操作数可以采用以下几种寻扯方式: (1)立即寻址:直接给出操作数,而非地址。
(2)直接寻址:直接给出操作数地址或所在寄存器号(寄存器寻址)。 (3)间接寻址:给出的是指向操作数地址的地址,称之为间接寻址。
(4)变址寻址:给出的地址需与特定的地址值累加从而得出操作数地址,称之为变址
程序员 http://www.educity.cn/jiaocheng/zg14.html
寻址。
通过采用不同的寻址方式,能够达到缩短指令长度、扩大寻址空间和提高编程灵活性等目的。
例如,某计算机字长为16位,运算器为16位,有16个16位通用寄存器,8种寻址方式,主存容量为64K字。指令中地址码由寻址方式字段和寄存器字段组成,采用单字长指令。则要表示8种寻址方式需要3位,要表示16个通用寄存器则需要4位,所以地址码一共需要7位,而又采用单字长指令,字长为16位,因此,操作码的位数就只有16-7=9位。也就是说,可以表示的指令种类是29条,即512条。因为每个寄存器是16位的,所以,可以表示的地址范围是216字,即64K字。
2.4.2 指令的执行过程
在CPU的控制部件中,程序计数器(PC)的功能是用于存放指令的地址。程序执行时,PC的初值为程序第一条指令的地址,在顺序执行程序时,控制器首先按程序计数器所指出的指令地址从内存中取出一条指令,然后分析和执行该指令,同时将PC的值加1指向下一条要执行的指令。在逻辑上,以PC加1表示指向下一条指令的地址。具体实现时,则因存储器编址方式、指令长度等因素的差异而不同。若存储器按字节编址,则16位长的指令占用2个字节的空间,因此,当前指令地址到下一条指令地址之间的偏移量等于2.故每执行一条指令该寄存器的值增加2.
某计算机的地址线、数据线均为8位,一条两字节的相对寻址的无条件转移指令,存于内存20H和21H单元中,指令操作码存放在20H中,存放在21H中的位移量为15H.则取该指令时PC的值为20H,该指令执行结束时PC的值为25H.因为相对寻址是用PC提供基址,指令中的为位移量,因此无条件跳转到的指令地址就是20H+15H=25H.
程序员 http://www.educity.cn/jiaocheng/zg14.html
2.5 存储体系
计算机中,用于存放程序或数据的存储部件有CPU内部寄存器、高速缓冲存储器(Cache)、主存储器(内存储器、内存)、辅存(外存储器、外存)。它们的存取速度不一样,从快到慢依次为寄存器->Cache->内存->辅存。一般来讲,速度越快,成本就会越高。因为成本高,所以容量就会越小。严格来说,CPU内部寄存器不算存储系统。因此,在计算机的存储系统体系中,Cache是访问速度最快的层次。 本知识点主要考查内存及编址、内存容量、磁盘等待时间等。
2.5.1 主存储器 常见的存储器种类如下:
(1)RAM:随机存储器,可读写,断电后数据无法保存,只能暂存数据。 (2)SRAM:静态随机存储器,在不断电时信息能够一直保持。 (3)DRAM:动态随机存储器,需要定时刷新以维持信息不丢失。
(4)ROM:只读存储器,出厂前用掩膜技术写入,常用于存放BIOS和微程序控制。 (5)PROM:可编程ROM,只能够一次写入,需用特殊电子设备进行写入。
(6)EPROM:可擦除的PROM,用紫外线照射15~20分钟可擦去所有信息,可写入多次。
(7)E2PROM:电可擦除EPROM,可以写入,但速度慢。 (8)闪速存储器:现在U盘使用的种类,可以快速写入。
内存需对每个数据块进行编码,即每个单元有个地址,这就是所谓的内存编址问题。内存一般按照字节编址或按照字编址,通常采用的是十六进制表示。例如,假设某内存储器按
程序员 http://www.educity.cn/jiaocheng/zg14.html
字节编址,地址从A4000H到CBFFFH,则表示该存储器有(CBFFF-A4000)+1个字节(28000H字节),也就是163 840个字节(160KB)。
要注意的是,编址的基础可以是字节,也可以是字(字是由1个或多个字节组成的),要算地址位数,首先应计算要编址的字或字节数,然后求2的对数即可得到。例如,上述内存的容量为160KB,则需要18位地址来表示(217=131 072,218=262 144)。 在内存这个知识点的另外一个问题,就是求存储芯片的组成问题。实际的存储器总是由一片或多片存储器配以控制电路构成的。设其容量为W?B,W是存储单元的数量,B表示每个单元由多少位组成。如果某一芯片规格为W?B,则组成W?B的存储器需要用(W/w)×(B/b)块芯片。例如,上述例子中的存储器容量为160KB,若用存储容量为32K×8bit的存储芯片构成,因为1B=8b(一个字节由8位组成),则至少需要(160K/32K)×(1B/8)=5块。
2.5.2 高速缓冲存储器
Cache的功能是提高CPU数据输入输出的速率,突破所谓的\冯·诺依曼瓶颈\即CPU与存储系统间数据传送带宽限制。高速存储器能以极高的速率进行数据的访问,但因其价格高昂,如果计算机的内存完全由这种高速存储器组成则会大大增加计算机的成本。通常在CPU和内存之间设置小容量的高速存储器 Cache.Cache容量小但速度快,内存速度较低但容量大,通过优化调度算法,系统的性能会大大改善,仿佛其存储系统容量与内存相当而访问速度近似Cache. 1.Cache基本原理
使用Cache改善系统性能的依据是程序的局部性原理。依据局部性原理,把内存中访问概率高的内容存放在Cache中,当CPU需要读取数据时就首先在Cache中查找是否有
共分享92篇相关文档