导航

指令系统总结

一.指令格式
指令由操作码和地址码组成
1.操作码:指明要完成的操作,如:加减乘除
操作码的长度可以是固定的也可以是变化的
定长操作码:将操作码集中放在指令的一个字段内。便于硬件设计,译码时间短

变长操作码:操作码分散在指令字的不同字段中。有效压缩操作码长度但增加译码分析难度,使控制器设计复杂
扩展操作码:使操作码的长度随地址数的减少而增加,有效缩短指令字长
指令使用频度高的占用短操作码,低的占用长操作码,缩短译码时间

2.地址码:指出该指令的源操作数地址,结果的地址,下一条指令的地址(主存/寄存器/IO)
程序计数器PC:既能存放当前欲执行指令的地址又有计数功能。程序中大多数指令是按顺序执行的,所以能自动形成下一条指令地址
四地址指令通过程序计数器PC优化为三地址指令
三地址指令:把中间运算结果放到寄存器ACC中不存入主存
二地址指令:让一个字段既能存操作数,也能存运算结果
一地址指令:寄存器ACC既存放操作数,又存放中间运算结果
零地址指令:指令字中无地址码,空操作,停机,中断返回
硬件(PC/ACC):不改变指令字长的前提下扩大指令操作数直接寻址范围;缩短指令字长,减少访存次数

操作类型:传送(存取)类;程序控制类;运算类:输入输出类
指令字长取决于操作码长度,操作码地址长度和操作数地址的个数
操作类型
1.数据传送
LOAD作用:把存储器中的数据放到寄存器中
STORE作用:把寄存器中的数据放到存储器中
2.算术逻辑操作
算术:加、减、乘、除、增1、减1、求补、浮点运算、十进制运算
逻辑:与、或、非、异或、位操作、位测试、位清除、位求反
3.移位操作
算术移位、逻辑移位、循环移位(带进位和不带进位)
4.转移操作
无条件转移JMP
条件转移JZ:结果为0;JO:结果溢出;JC:结果有进位
调用和返回CALL和RETURN
陷阱trap与陷阱指令
5.输入输出操作
CPU寄存器与℃端口之间的数据传送(端口即℃接口中的寄存器)

二.数据存放和指令寻址
计算机中的数据是以字节(Byte)为单位存储的,每个字节都有不同的地址。
寄存器的位数反映出机器字长
机器字长取字节的1248倍,便于字符处理
边界对准:便于硬件实现(不同的机器数据字长不同,每台机器处理的数据字长不统一)
寻址方式分为指令寻址和数据寻址,指令寻址包括顺序寻址和跳跃寻址
按字节编制:每个字节存储单元都有一个地址
按字节寻址:给出一个字节地址,可取出一个字节的数据
按字编址:每个字存储单元都有一个地址
按字寻址:给出一个字地址,可取出一个字的数据
大端存储:将数据的低位(比如 1234 中的 34 就是低位)放在内存的高地址上,而数据的高位(比如 1234 中的 12 就是高位)放在内存的低地址上。地址由小到大增加,而数据从高位往低位存放
小端存储:将数据的低位放在内存的低地址上,而数据的高位放在内存的高地址上。高地址存放数值较大的部分,低地址存放数值较小的部分
机器字长:CPU一次性能处理的二进制数据的位数
指令字长:一条指令中包含二进制代码的位数
存储字长:一个存储单元存储二进制代码的长度
边界对齐:是处理器为了提高处理性能而对存取数据的起始地址所提出的一种要求,让数据地址按照其数据类型大小的整数倍进行储存,目的在于使得数据能以最少的次数连续读取。用空间换取时间的策略,降低主存空间的实际利用率来换取存储的高效率。起始地址是字长的整数倍

三.数据寻址
数据寻址方式种类较多,在指令字中必须设一字段来指明属于哪一种寻址方式。指令的地址码字段通常都不代表操作数的真实地址,把它称为形式地址,记作AO操作数的真实地址称为有效地址,记作EA,它是由寻址方式和形式地址共同来确定的。

1.立即寻址:操作数本身在指令字内,形式地址A不是操作数的地址,而是操作数本身,又称之为立即数。数据是采用补码形式存放的。优点在于只要取出指令,便可立即获得操作数,这种指令在执行阶段不必再访问存储器。显然A的位数限制了这类指令所能表述的立即数的范围。

2.直接寻址:指令字中的形式地址A就是操作数的真实地址EA,即EA=A;优点是寻找操作数简单,不用专门计算操作数的地址,在指令执行阶段对主存只访问一次。它的缺点在于A的位数限制了操作数的寻址范围,而且必须修改A的值,才能修改操作数的地址。

3.隐含寻址:指令字屮不明显地给出操作数的地址,其操作数的地址隐含在操作码或某个寄存器中。例如,一地址格式的加法指令只给出一个操作数的地址,另一个操作数隐含在累加器ACC中,这样累加器成了另一个数的地址。由于隐含寻址在指令字中少了一个地址,因此,这种寻址方式的指令有利于缩短指令字长。

4.间接寻址:指令字中的形式地址不直接指出操作数的地址,而是指出操作数有效地址所在的存储
单元地址,也就是说,有效地址是由形式地址间接提供的,即为间接寻址,即EA=(A);优点是扩大操作数寻址范围,便于编制程序(子程序返回)
间接寻址的缺点在于指令的执行阶段需要访存两次(一次间接寻址)或多次(多址),致使指令执行时间延长。

5.寄存器寻址:地址码字段直接指出了寄存器的编号,即EA=R;其操作数在由R所指的寄存器内。由于操作数不在主存中,故寄存器寻址在指令执行阶段无须访存,减少了执行时间。由于地址字段只需指明寄存器编号(计算机中寄存器数有限),故指令字较短,节省了存储空间,因此寄存器寻址在计算机中得到广泛应用。
6.寄存器间接寻址:有效地址不是存放在存储单元中,而是存放在奇存器中,故称其为寄存器间接寻址,它比间接寻址少访存一次。

7.基址寻址:设有基址寄存器BR,其操作数的有效地址EA等于指令字中的形式地址与基址寄存器中的内容(称为基地址)相加,即EA=A+(BR)基址寄存器可采用隐式的和显式的两种。所谓隐式,是在计算机内专门殳有一个基址寄存器Br,使用时只需指令的寻址特征位反映出基址寻址即可。显式是在一组通用寄存器里,由用户明确指出哪个寄存器用做基址寄存器,存放基地址。
基址寻可以扩大操作数的寻址范围,因基址寄存器的位数可以大于形式地址A的位数。将主存空间分为若干段,每段首地址存于基址寄存器中,段内的位移量由指令字中形式地址A指出,这样操作数的有效地址就等于基址寄存器内容与段内位移量之和,只要对基址寄存器的内容作修改,便可访问主存的任一单元。
基址寻址在多道程序中极为有用。用户可不必考虑自己的程序存于主存的哪一空间区域,完全可由操作系统或管理程序根据主存的使用状况,赋予基址寄存器内一个初始值(即基地址),便可将用户程序的逻辑地址转化为主存的物理地址(实际地址),把用户程序安置于主存的某一空间区域。在程序执行过程中,用户不知道自己的程序在主存的哪个空间,用户也不可修改基址寄存器的内容,以确保系统安全可靠地运行。

8,变址寻址:有效地址EA等于指令字中的形式地址A与变址寄存器IX的内容相加之和,即EA=A+(IX);只要变址寄存器位数足够,也可扩大操作数的寻址范围
变址寻址与基址寻址的区别:
基址寻址主要用于为程序或数据分配存储空问,故基址寄存器的内容通常由操作系统或管理程序确定,在程序的执行过程中其值是不可变的,而指令字中的A是可变的。
变址寻址中,变址寄存器的内容是由用户设定的,在程序执行过程中其值可变,而指令字中的A是不可变的。变址寻址主要用于处理数组问题,易形成数组中任一数据的地址,特别适合编制循环程序。
变址寻址可与基址寻址合用
变址寻址还可与间接寻址合用

9.相对寻址:有效地址是将程序计数器PC的内容(即当前指令的地址)与指令字中的形式地址A相加而成,即EA=(PC)+A;操作数的位置与当前指令的位置有一段距离A
相对寻址常被用于转移类指令,转移后的目标地址与当前指令有一段距离,称为相对位移量,它由指令字的形式地址A给出,故A又称位移量。位移量A可正可负,通常用补码表示。特点:转移地址不固定,它可随PC值的变化而变,因此,无论程序在主存的哪段区域,都可正确运行,对于编写浮动程序特别有利。相对寻址也可与间接寻址配合使用

10.堆栈寻址:
堆栈:是一个特殊的存储区,位于存储器或寄存器组中。特殊在于要想读/写该区域,必须通过特定的寄存器(堆栈指针SP)给出的地址才行。
堆栈寻址:操作数存放在堆栈中,隐含使用堆栈指针(sp)作为操作数地址。
堆栈寻址要求计算机中设有堆栈。堆栈既可用寄存器组(称为硬堆栈)来实现,也可利用主存的一部分空间作堆栈(称为软堆栈)。堆栈寻址也可视为一种隐含寻址,其操作数的地址总被隐含在SP中。也可视为寄存器间接寻址,因SP可视为寄存器,它存放着操作数的有效地址。
堆栈的运行方式为先进后出或先进先出两种,先进后型堆栈的操作数只能从一个口进行读或写。以软堆栈为例,可用堆栈指针SP指出栈顶地址,也可用CPU中一个或两个寄存器作为SP。操作数只能从栈顶地址指示的存储单元存或取

四.指令设计——CISC和RISC
CISC复杂指令系统计算机
设计思路:一条指令完成一个复杂的基本功能。典型程序中80%的语句仅仅使用处理机中20%的指令
代表:×86架构,主要用于笔记本、台式机等
例如:设计一套输出单词的指令集,输出一个单词需要一条对应的指令,一条指令需要一个专门电路完成,一共有17万个单词,也就需要17万个电路
缺点:
1.CISC的指令系统复杂庞大,各种指令使用频度相差很大
2.指令字长不固定,指令格式多,寻址方式多
3.可以访存的指令不受限制
4.CPU中设有专用寄存器
5.绝大多数指令需要多个时钟周期方可执行完毕
6.采用微程序控制器
7.难以用优化编译生成高效的目标代码

RISC精简指令系统计算机
设计思路:一条指令完成一个动作,多条指令组合完成一个功能。
代表:ARM架构,主要用于手机、平板等
例如:设计一套输出单词的指令集,每个字母的输出由一条指令完成,多条指令组合完成一个单词,26个字母需要26个电路。“并行”、“流水线”
特点:
1.选取使用频度较高的一些简单指令以及一些很有用但又不复杂的指令,让复杂指令的功能由频度高的简单指令的组合来实现。
2.指令长度固定,指令格式种类少,寻址方式种类少。
3.只有取数/存数指令访问存储器,其余指令的操作都在寄存器内完成。
4.CPU中有多个通用寄存器。
5.采用流水线技术,大部分指令在一个时钟周期内完成。采用超标量和超流水线技术,可使每条指令的平均执行时间小于一个时钟周期。
6.控制器采用组合逻辑控制,不用微程序控制。
7.采用优化的编译程序。
优点:
1.充分利用VLSI芯片的面积
CISC机的控制器大多采用微程序控制,其控制存储器在CPU芯片内所占的面积为50%以上。而RISC机控制器采用组合逻辑控制,其硬布线逻辑只占CPU芯片面积的10%左右。可将空出的面积供其他功能部件用
2.提高计算机的运算速度
3.便与设计,成本低,可靠性高
4.有效支持高级语言程序(优化编译)

posted on 2022-03-13 05:49  理想主义者的长征路  阅读(381)  评论(0)    收藏  举报