基本概念
- 程序:由一系列指令和数据构成
- 指令:使计算机执行一定操作的命令
- 微指令:是微程序级的命令,属于硬件
- 宏指令:由若干机器指令组合形成的软件指令,属于软件,可理解为高级语言代码
- 命令:通过控制部件发送的操作要求
- 操作:接受命令后执行的动作
- 指令系统:一台计算机中所有机器指令的集合,是表征一台计算机性能的重要因素,其格式与功能直接影响机器的硬件结构、软件、适用范围等。
指令格式
- 指令格式:操作码OP+地址码A
- 指令长度:以储存字长为单位,一般有半字长指令、单字长指令、双字长指令,对于定长指令字结构+可变长操作码,可扩展操作码指令格式
- 操作码OP:指令的操作性质和功能,可定长可扩展,其长度取决于指令系统中的指令条数
- 地址码A:给出操作数地址或操作数本身,若A为某个主存地址,则(A)表示A所指向的地址中的内容
- 零地址指令:只有操作码,无需操作数,如空指令操作、停机指令、关中断指令
- 一地址指令:
操作码OP 操作数地址A1
只有操作码和一个地址码,地址码表示的既是操作数地址也是操作结果的存储地址,如自增自减求反求补- 单目:OP(A1)→A1 完成一条指令需要3次访存:取指、读A1、写A1
- 双目:(ACC)OP(A1)→ACC 完成一条指令需要2次访存:取指、读A1
- 二地址指令:
操作码OP 目的操作数地址A1 源操作数地址A2
有操作码和两个地址码,- (A1)OP(A2)→A1 完成一条指令需要4次访存:取指、读A1、读A2、写A1
- 分类有SS(两个操作数都在内存,多次访存速度慢)、RR(两个操作数都在寄存器,无需访存速度快)、RS(操作数一个在内存一个在寄存器,需访存)
- 三地址指令:
操作码OP 源操作数地址A1 源操作数地址A2 目的操作数地址A3,
有操作码和三个地址码,- (A1)OP(A2)→A3 完成一条指令需要4次访存:取指、读A1、读A2、写A3
寻址方式 考点
告诉计算机如何获取指令和操作数。即如何提供指令所在存储单元的物理地址和操作数所在存储单元的物理地址、或者操作数所在内部寄存器的编号。
指令寻址
下一条欲执行的指令,始终由程序计数器PC指出
- 顺序寻址:(PC)+1→PC
- 跳跃寻址:由无条件转移指令JMP指出
数据寻址
确定本条指令的地址码所指明的真实地址(需要在指令格式中加入寻址特征判断是哪种数据寻址方式)
操作码 寻址特征 形式地址A
A:形式地址,(A):位于该地址的内容,EA:有效地址
分类:
- 隐含寻址:访存0次,不明确指出操作数地址,而是隐含在程序中
比如ADD指令隐含第二个操作数由ACC提供,因此累加器对单地址指令来说是隐含寻址 - 立即寻址:形式地址A就是操作数本身,访存0次
寻址特征为#,A的位数限制了立即数的范围 - 直接寻址:
EA=A,访存1次
形式地址A就是操作数的真实地址EA,A的位数限制了操作数的寻址范围
- 一次间接寻址:
EA=(A),访存2次
形式地址A是操作数有效地址所在的储存单元的地址,也就是操作数地址的地址,扩大了寻址范围,便于编制程序
- 寄存器寻址:
EA=Ri,访存0次
指令字中直接给出操作数所在的寄存器编号,操作数在Ri所指的寄存器内,无需访存,指令字短且执行速度快,支持向量矩阵运算
- 寄存器间接一次寻址:
EA=(Ri),访存1次
寄存器Ri中给出的不是操作数,而是操作数所在主存单元的地址,比一般间接寻址速度快
- 相对寻址:
EA=(PC)+A,访存1次
程序计数器PC中的内容加上形式地址A形成操作数的有效地址,A是相对于PC所指地址的位移量,单位是B,补码表示 - 基址寻址:
EA=(BR)+A,访存1次 CPU中基址寄存器BR中的内容加上形式地址A形成操作数的有效地址,常用扩大了操作数寻址范围,适用于多道程序设计,常用于为程序或数据分配储存空间 - 变址寻址:
EA=(IX)+A,访存1次
变址寄存器IX中的内容加上形式地址A形成操作数的有效地址,类似基址寻址,面向用户,主要用于处理数组问题,A不变,适合编制循环程序
常用指令
- CISC:指令条数多、结构形式复杂多样、寻址方式种类繁多、功能复杂多样、翻译执行效率低、很多指令难得用到。CISC使计算机的研制周期长,难以保证正确性,大多采用微程序控制器,不易调试、维护,大量使用频率很低的复杂指令浪费了系统硬件资源。
- RISC:精简指令系统,选取使用频率最高的一些简单指令,指令条数少,复杂功能通过宏指令实现:指令长度、格式、结构形式、寻址方式种类少,翻译执行效率高;只有取数/存数指令访问存储器,其余指令的操作均在CPU内部寄存器之间进行。RISC可缩短计算机的研制周期、易于保证正确性、调试、维护,系统硬件资源使用效率高。