计算机组成原理 学习笔记

指令系统

指令系统的发展与性能需求

计算机的指令有微指令,机器指令和宏指令之分
微指令是程序级的命令,它属于硬件;
宏指令由若干条机器指令组成的软件指令,它属于软件;
机器指令则介于微指令与宏指令之间通常简称为指令,每一条指令可完成一个独立的算数运算或逻辑运算操作
1,指令系统的性能要求
一个完备的指令系统应满足以下四点
①完备性:完备性是指用汇编语言编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件来实现
②有效性:有效性是指利用该指令系统所编写的程序能够高效率的运行。高效率主要表现在程序占据存储空间小,执行速度快。
③规整性:规整性包括指令系统的对成性,匀齐性,指令格式和数据格式的一致性。对称性是指:在指令系统中所有的寄存器和存储单元都可同等对待,所有的指令都可以使用各种寻址方式;
匀齐性是指:一种操作性值的指令可以支持各种数据类型;
指令格式和数据格式的一致性是指:指令长度和数据长度有一定的关系方便处理和存取.
④兼容性:系列机各机种之间具有相同的基本结构和共同的基本指令系统,因而指令系统是兼容的,即各机种上基本软件可以通用。
2,低级语言与硬件结构的关系
高级语言看不见机器的硬件结构,因而不能用它来编写直接访问机器硬件资源(如某个寄存器或存储单元)的系统软件或设备控制软件。
机器语言程序员看到的计算机的属性就是指令系统体系结构,简称ISA(Instruction Set Architecture)
指令系统体系结构包括:寄存器组织,存储器的组织和寻址方式,I/O系统结构,数据类型及表示,指令系统,中断机制,机器工作状态的定义与切换,以及保护机制等

指令格式

机器指令是用机器字来表示的。表示一条指令的机器字,就是指令字,通常简称指令
1,操作码
组成操作码的字段的位数一般取决于计算机指令系统的规模。较大的指令系统就需要更多位数来表示每条特定的指令。
例如:一个指令系统只有8条指令,则有3位操作码就够了(2^3=8),如果有32条指令,那么就需要5位操作码。一般来说,一个包含n位的操作码最多能够表示2 ^n条指令
2,地址吗
根据一条指令中有几个操作数地址,可将该指令称为几操作数指令或几地址指令。一般的操作数有被操作数,操作数,及操作结果这三种数,因而就形成了三地址指令格式,这是早期计算机指令的基本格式。
(1)零地址指令中的指令字中只有操作码,而没有地址码。例如停机指令就不需要地址码,因为停机操作不需要操作数
(2)以抵制指令只有一个地址码,它指定一个操作数,另一个操作数地址是隐含的。
(3)二地址指令常称为双操作数指令,它有两个地址码字段A1和A2,分别指明参与操作的两个数在内存中或运算器中通用寄存器的地址,其中地址A1兼作存放操作结果的地址。
(4)三地址指令中有三个操作数地址A1,A2,A3,其数学含义未:A3<–(A1)OP(A2)
其中A1为被操作数地址,也称为源操作数地址;A2为操作数地址字,也称为终点操作数地址;A3为存放操作结果的地址
3,从操作数的物理位置来说,又可归为三种类型:
(1)第一种是访问内存的指令格式,我们成这类指令为存储器存储器(SS)型指令。这种指令操作时都是设计内存单元,即参与操作的数都放在内存里。从内存某单元中取操作数,操作结果存放至另一单元中,因此机器执行这种指令需要多次访问内存。
(2)第二种:是访问寄存器的指令格式,我们称这类指令为寄存器寄存器(RR)型指令。机器指令这类指令过程中,需要多个通用寄存器或个别专用寄存器,从寄存器中取操作数,把操作结果放到另一寄存器。机器执行寄存器-寄存器型指令的速度更快,因为执行这类指令不需要访问内存。
(3)第三种类型为:寄存器-存储器(RS)型指令,执行此类指令时,既要访问内存单元,又要访问寄存器.
4,指令字长度
一个指令字中包含二进制代码的位数,称为指令字长度。而机器字长是指计算机能直接处理的二进制数据的位数,他决定了计算机的运算精度。机器字长通常与主存单元的位数一致。指令字长度等于机器字长度的指令,称为单字长指令;指令长度等于半个机器字长度的指令,称为半字长指令;指令长度等于两个机器字长度的指令,称为双字长指令
5,MIPS R4000指令格式
字长32位,字节寻址。指令格式简单,指令数量少,通用寄存器32个
在这里插入图片描述
16位字段address提供取指令字指令(IW),存指令字指令(sw)访问存储器长度基值地址码(也称位移量)
6,ARM的指令格式
在这里插入图片描述
7,Pentium指令格式
Pentium机的指令长度是可变的:从1B到12B,1B表示1字节
在这里插入图片描述
指令本身由操作码字段,Mod-R/M字段,SIB字段,位移量字段,立即数字段组成。除操作码字段外,其它四个字段都是可选字段(不选时取0字节)
SIB字段由比例系数S,变址寄存器号I,基址寄存器号B组成
在这里插入图片描述

操作数类型

1,一般的数据类型
地址数据:地址实际上也是一种形式的数据。多数情况下,对指令中操作数的引用必须完成某种计算,才能确定他们在主存中的有效地址。此使地址将被看作无符号整数
数值数据,计算机中普遍使用的三种类型的数值数据是①顶点整数或定点小数;②浮点数③压缩十进制数,1字节用2位BCD码表示
字符数据,也称文本数据或字符串,目前广泛使用的ASCⅡ码。
逻辑数据,一个单元由若干二进制位项组成,每个位的值都可以是1或0.
2,Pentium数据类型
3,Power PC数据类型
是精简指令系统计算机,能处理8位(字节),16位,32位和64位。处理器能识别如下数据类型:

指令和数据的寻址方式

当采用地址指定方式时,形成操作数或指令地址的方式,称为寻址方式。 寻址方式分两类,指令寻址方式和数据寻址方式
1,指令的寻址方式
①顺序寻址方式
必须使用程序计数器(又称1指令寄存器)PC来计数指令的顺序号,该顺序号就是指令在内存种的地址。
②跳跃寻址方式
当程序转移执行的顺序时,指令的寻址就采取跳跃寻址方式。所谓跳跃,是指下条指令的地址码不是由程序计数器给出的,而是由本条指令给出。
2,操作数基本寻址方式
操作数来源一般由三个
①由指令中的地址码部分直接给出操作数,虽然简单便捷,但是操作数是固定不变的;
②将操作数存放在CPU内的通用数据寄存器中,这样可以快速获取操作数,但是可以存储的操作数的数量有限;
③更一般化的方式是将操作数存放在内存的数据区中。而对于内存寻址,既可以在指令中直接给出操作数的实际访问地址(称为有效地址),也可以在指令的地址字段给出所谓的形式地址,在指令执行时,将形式地址一句某种方式变换为有效地址在取操作数。
3,基本寻址方式
在这里插入图片描述

寻址

1,隐含寻址
这种类型的指令,不是明显地给出操作数地地址,而是在指令中隐含着操作数地地址
2,立即寻址
指令地地址字段指出的不是操作数地地址,而是操作数本身,这种寻址方式称为立即寻址。指令中地操作数称为立即数。立即寻址方式地特点是指令中包含地操作数立即可用,节省了访问内存地时间
3,直接寻址
直接寻址是一种基本地寻址方法,其特点是:在指令格式地地址字段中直接指出操作数在内存地地址A。由于操作数地地址直接给出而不需要经过某种变换,所以称在种寻址方式为直接寻址方式。
指令字中地A就是操作数地有效地址EA。因此通常把形式地址A又称为直接地址。D=(A)
4,间接寻址
间接寻址是相当于直接寻址而言地,在间接寻址地情况下,指令地址字段中地形式地址A不是操作数D
地真正地址,而是操作数地址地指示器。
若寻址特征位I=0,表示直接寻址,这时有效地址EA-A;若I=1,则表示间接寻址,这时有效地址EA=(A)
5,寄存器寻址
当操作数不再内存中,而是放在CPU地通用寄存器中时,可采用寄存器寻址方式。EA=R。指令结构中RR型指令,就是采用寄存器寻址方式地例子
6,寄存器间接寻址
与寄存器寻址地区别就是,指令格式中地寄存器内容不是操作数,而是操作数地址,该地址指明地操作数在内存中
7,偏移寻址
是直接寻址和寄存器间接寻址方式地结合,它有几中形式,我们称它位偏移寻址
有效地址计算公式为:EA=A+®
①相对寻址
隐含引用地专有寄存器是程序计数器(PC),即EA=A+(PC),他是当前PC地内容加上指令地址字段中A的值。
②基址寻址
被引用的专用寄存器含有一个存储器地址,地址字段含有一个相对于该地址的偏移量(通常是无符号整数)。
③变址寻址
地质与引用一个主存地址,被引用的专用寄存器含有对那个地址的正偏移量。这2意味着主存地址位数大于寄存器中的偏移量位数,与基址寻址刚好相反。
8,段寻址
9,堆栈寻址
不论是寄存器堆栈,还是寄存器堆栈,数据的存取都与栈顶地址打交道,为此需要一个隐式或显示的堆栈指示器(寄存器)
在这里插入图片描述
考完试了,不太会,不更了。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

祈愿lucky

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值