计算机原理(二)、指令系统

概述

指令系统是所有指令的集合。而指令是指计算机执行某个基本操作的集合。

设计原则

  1. 完备性

  2. 有效性(简单、无歧义)

  3. 规整性(对齐、一致)

  4. 兼容性

    向上(下)兼容:某一机器编制的程序,不加修改可以在比他高(低)档的机器里运行。

    向前(后)兼容:某一时期的程序,不加修改可以用在该时期之前(之后)的机器里运行。

指令种类

image-20200423212746188

两种指令系统

CISC(复杂指令集计算机) RISC(精简指令集计算机)
image-20200423212921763 image-20200423212944590

现在两种类型的指令系统逐步融合。

指令格式

操作码(一个)+地址码(可以是多个)

指令的长度:定长指令与变长指令

操作码的设计

定长操作码 扩展操作码
译码简单,有信息冗余 缩短指令长度、减少程序位数、增加指令代表的信息

一般采用扩展操作码。以下就是扩展操作码的实例。

image-20200423215707309

地址码结构

指令的地址个数一般为0-3个。

image-20200423220432965 image-20200423220609521 image-20200423220623823

寻址方式

寻址方式决定了地址码的编码。寻址方式就是找到操作数存放位置的过程

指令寻址 操作数寻址
简单,pc自增 复杂,来源多、数据结构多样

通常指的是操作数寻址。

立即数寻址

操作数直接放在指令里。指令执行时间短,不需要访问存储。缺点是操作数大小受地址位数限制,广泛使用。

存储器直接寻址

操作数放在存储器中,指令地址字段给出存储器中的地址。

寄存器直接寻址

操作数放在寄存器中,指令地址字段给出寄存器编号。

image-20200423223609749

存储器间接寻址

image-20200423223636765

寄存器间接寻址

image-20200423223716566

偏移寻址

直接寻址+寄存器间接寻址

image-20200423223844832

堆栈寻址

image-20200423223944607

对比

image-20200423224018470

此外,还有复合寻址方式。

数据表示

能被计算机直接识别的数据类型。计算机的指令可以直接调用。

真值:机器数的真正值

机器数:用0和1表示的序列

数据宽度:

image-20200424212410897

定点数

规定小数点的位置固定不变,就是定点数。

image-20200424220058420

定点整数就是整数,定点小数就是存小数。

0的补码是一致的。

浮点数

小数点的位置是可以变的。常用科学计算法表示。

image-20200424220539132

尾数和指数组成想要的实数。

规格化形式:小数点前只有一位非0数。

为了提高精度,对浮点数进行规格化。

image-20200424220739011

浮点数的标准IEEE 754:

image-20200424220901754

符号s:0为正,1位负

尾数f:用原码表示,尾数=1+signficand(0<signficand<1)。因为规格化尾数最高位总是1,省1位

​ 尾数精度=尾数位数+1

阶码:用移码来表示阶码。移码就是将每一个数加上一个偏移常数来表示。

​ 单精度的浮点数的偏移为:127 (阶码范围:00000001-11111110)

​ 双精度的浮点数的偏移为:1023

image-20200424221600295

下面是一个例子:

image-20200424221703058 image-20200424221727655

对于阶码全0、全1的特殊化表示:

image-20200424222055829

十进制数

十进制数的二进制编码表示有两种:ASCII码和BCD码。

ASCII码

即十进制0-9对应30H-39H。1位十进制数用8位二进制数表示。

符号位的表示:

​ 1.前分隔字符串:+号用2BH,-号用2DH。

​ 2.后嵌入数字串:即在最低位数字的ASCII码的高4位进行操作,+号不动,-号改为0111

可以看出第二种方法可以节省一个字节。

BCD码

用4位2进制数表示。

image-20200424224145815

字符表示

西文字符:个数比较少,常用7位ASCII码来表示。

汉字:个数可达6万个,编码形式如下:

image-20200424224544688

数据度量与存储

采用字节编址。

数据的存储有两种方式:大端方式和小端方式

image-20200425161935099

存储方式不同的数据需要进行顺序交换才可以交互。

数据对齐:按边界对齐和不对齐

如果不对齐会增加访存次数,但不对齐可以节省空间。

基本指令

数据传送指令:实现寄存器之间,或者寄存器和存储单元、存储单元间的数据传送

算术运算指令:将数据传给ALU,并返回到目的地址单元中。

逻辑运算指令

输入输出指令

系统控制指令

程序控制指令:

​ 转移指令:改变CPU指令执行顺序,分为有条件和无条件转移。

​ 子程序调用指令:主程序调用子程序。

ps:子程序调用指令是有返回,可嵌套和递归的。转移指令不要求返回。

​ 转移指令是同一程序内的转移、子程序调用是程序间的转移。

​ 返回指令

MPIS指令

所有mpis指令都是32bit,按字地址(4字节)对齐。

类型

image-20200425165845913

op:操作码 rs:第一个源操作数寄存器 rt:第二个源操作数寄存器 rd:结果寄存器 shamt:偏移量 funct:表示具体操作 immediate:立即数或者偏移地址 target address:无条件转移地址

寻址方法

R类型:直接寻址

I类型:立即数寻址或者基址寻址

J类型:伪直接寻址(通过高四位补PC值,低两位补零来形成32位目标地址)

posted @ 2020-04-27 21:09  0325YH  阅读(572)  评论(0)    收藏  举报