指令: 就是要计算机执行某种操作的命令。从计算机组成的层次结构分为:
一台计算机中所有机器指令的集合,称为这台计算机的指令系统。 指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也直接影响到系统软件,影响到机器的适用范围。
出现CISC到RISC转变的原因:,2/8现象(只有20%的指令使用率达到80%),控制器设计难度下降
操作码字段+地址码字段,左边为高位,右边为低位。
设计计算机时,对指令系统的每一条指令都要规定一个操作码。指令的操作码OP表示该指令应进行什么性质的操作。不同的指令用操作码字段的不同编码来表示,每一种编码代表一种指令。组成操作码字段的位数一般取决于计算机指令系统的规模。较大的指令系统就需要更多的位数来表示每条特定的指令,按照操作码长度分为:
根据一条指令中有几个操作数地址,可将该指令称为几操作数指令或几地址指令。
指令字长度:一条指令字包含二进制代码的位数,即操作码+地址码 机器字长:计算机能直接处理的二进制数据的位数。 按照指令字和机器字长的关系分为:单字长指令(指令字长等于机器)、半字长指令(指令字长等于半个机器)、双字长指令。
指令字长度相等的称为等长指令,随指令功能而异的称为非等长指令。
op占7位,可表示的操作数有128条。
只有一行,所以是单字长指令,存在源寄存器和目标寄存器,为二地址指令,为RR型。
op占6位,可表示的操作数有64条。
有两行,所以是双字长指令,存在源寄存器和变址寄存器,为二地址指令,其中,变址寄存器和位移量用于查找主存中的地址,所以为RS型。
由于硬件只能识别1和0,所以采用二进制操作码是必要的,但是我们用二进制来书写程序却非常麻烦。 为了便于书写和阅读程序,每条指令通常用3个或4个英文缩写字母来表示。这种缩写码叫做指令助记符。
地址数据: 地址实际上也是一种形式的数据。(无符号) 数值数据: 计算机中普遍使用的三种类型(定点、浮点和十进制数)的数值数据。 字符数据: 文本数据或字符串,目前广泛使用ASCII码。 逻辑数据: 一个单元中有多位二进制bit项组成,每个bit的值可以是1或0。当数据以这种方式看待时,称为逻辑性数据。
一般格式:
寻址特征为“#”,表示是立即数寻址,形式地址放的就是操作数,执行时无需访存,立即数以补码的形式表示,A的位数限制了立即数的大小。
有效地址直接放在形式地址处,执行阶段进行一次访存,A决定了操作数的寻址范围,操作数的地址不易修改(要先找到这条指令,然后将指令上的有效地址修改,较为麻烦)
其中一个操作数的地址隐含在操作码中,另外一个操作数采用直接寻址的方式给出,指令字中少一个地址字段,可以缩短指令字长。
ACC(累加器)在加法中存放被加数/和,在减法中存放被减数/差,在乘法中存放乘积高位,除法中存储被除数/余数,ACC存在与ALU中。
4. 间接寻址
有效地址由形式地址间接提供,分为一次间址,和多次间址,有效地址在主存中的地址存在A中,在主存中找到有效地址后再次访存找到操作数,故执行指令需要两次访存,优点是可以扩大寻址范围(因为EA可以很长),便于编程(操作数修改方便,只要修改EA即可)。
有效地址为寄存器编号,直接访问寄存器即可得到操作数,执行阶段不访存,执行速度快,并且寄存器个数有限,可以缩短指令字长。
有效地址在寄存器中, 操作数在存储器中,执行阶段访存,便于编制循环程序。
采用专用寄存器作基址寄存器(隐式寻址): 计算机内专门设有一个基址寄存器BR,用户使用时不用明显指出该基址寄存器,只要由指令的寻址特征位反映出基址寻址即可。
BR 为基址寄存器,,A为偏移量,实际有效地址为基址+偏移量,可扩大寻址范围,BR 内容由操作系统或管理程序确定,在程序的执行过程中 BR 内容不变,形式地址 A 可变。用户不必考虑自己的程序存在于主存的那个空间区域,有利于多道程序设计。
问:为什么利于多道程序设计? 用户无需考虑程序存放在主存中的哪里,只要指出哪个寄存器作为某个程序的基址寄存器即可,由操作系统或管理程序自动分配。分别用不同的寄存器表示多道程序的基址寄存器,程序执行时用户不知道程序在主存中的位置,也不可修改基址寄存器的内容,确保系统安全可靠地运行。
采用通用寄存器作基址寄存器: 在一组通用寄存器中,由用户指出哪个寄存器用来作为基址寄存器。
由用户指定哪个通用寄存器作为基址寄存器,基址寄存器的内容由操作系统确定,在程序的执行过程中 R0 内容不变,形式地址 A 可变。
IX 为变址寄存器(专用),通用寄存器也可以作为变址寄存器。可扩大寻址范围,IX 的内容由用户给定,在程序的执行过程中 IX 内容可变,形式地址 A 不变,便于处理数组问题。
为何便于处理数组问题? 答:循环时只要修改寄存器中的内容即可,指令字内存放数组的首地址,只需一个指令就可以完成一次循环操作。如果采用其他的寻址方式,需要不断修改指令字中的形式地址。
A 是相对于当前指令的位移量(可正可负,补码),A 的位数决定操作数的寻址范围,适合程序浮动,广泛用于转移指令。
浮动程序技术是指在多道程序设计的系统中,要求每道程序存放在主存的任何区域都能正确执行,甚至在执行过程中,当程序的存放区域被改变,也要求其执行不受影响。也就是说,程序可以随机地从主存的一个区域移动到另一个区域,程序被移动后仍丝毫不影响它的执行。
问:跟随指令改变地址,如何保证操作数的准确性? 偏移量A是不停变化的,随着PC的跳转,A也相应加减,使得PC+A指向的数据不变。
若用 SP 表示堆栈指示器,指向栈顶,Msp表示堆栈指示器指定的存储器的单元,A 表示通用寄存器
入栈操作描述为:(A)−>Msp,(SP−1)−>SP,表示先将A中的数据存入到栈顶的存储单元中,然后将SP指针向上移动(堆栈默认栈底地址高,栈顶地址底)
出栈操作描述为:(SP+1)−>SP,(Msp)−>A,表示先将指针向下移动一位,然后将其中的数据放入寄存器A中.
20%和80%规律:CISC中大约有20%的指令使用频率高,占据了80%的处理机时间,而有80%的不常用指令只占用处理机的20%时间。
VLSI工艺要求规整性,而大量复杂指令控制逻辑极其不规整,给VLSI工艺造成了很大的困难。
现在用微程序实现复杂指令与用简单指令组成的子程序相比,没有多大的区别。因为现在控制存储器和主存的速度差缩小。
CISC中,通过增强指令系统的功能,简化了软件,增加了硬件的复杂程度。然而指令复杂了,指令的执行时间必然加长,从而使整个系统的执行时间反而增加,因而在计算机体系结构设计中,软硬件的功能分配必须恰当
三大最大特点:
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有