嵌入式系统与应用-6指令系统

2022.6.23 🚮 2022.10.11

目录

6.1指令格式

一、指令操作码与地址码

1、操作码(OP)

2、地址码(A)

3、操作数类型

二、指令字长和操作码扩展

1、指令字长度

2、指令操作码扩展

6.2寻址方式

一、指令寻址

1、顺序寻址方式

2、跳跃寻址方式

二、数据寻址

6.3指令类型

1.数据传送指令

2.算术逻辑运算指令

3.移位操作指令

4.程序控制类指令

5.堆栈操作指令

6.输入输出指令

7.处理器控制指令

8.特权指令

6.4指令系统(待补充)

6.5本章小结


6.1指令格式

一、指令操作码与地址码

指令是由操作码和地址码两部分组成的:

操作码字段(OP)地址码字段(A)

1、操作码(OP)

用来指明该指令所要完成的操作,如加法、减法、传送、移位、转移等。

位数反映了机器的操作种类,也即机器允许的指令条数,如果操作码有n位二进制数,则最多可表示2^n种指令。

操作码长度固定:将操作码集中放在指令字的一个字段内。

这种格式便于硬件设计,指令译码时间短,广泛应用于字长较长的、大中型计算机和超级小型计算机以及RISC(Reduced Instruction Set Computer)中。如IBM370和VAX-11系列机,操作码长度均为8位。

操作码长度不固定:指令操作码分散在指令字的不同字段中。

这种格式可有效地压缩操作码的平均长度,在字长较短的微机中被广泛采用。如PDP-11,Intel8086/80386等。

2、地址码(A)

用来寻找运算所需要的操作数(源操作数和目的操作数)。

地址码包括:源操作数地址、目的操作数地址和下一条指令的地址。

地址含义:主存的地址、寄存器地址或者I/O设备地址。

(1)三地址指令:

(A1)OP(A2)→A3;

OPA1A1A3

(2)二地址指令:

(A1)OP(A2)→A1;A1:目的操作数;A2:源操作数;

OPA1A2

(3)单地址指令:

(ACC)OP(A)→ACC;OP(A)→A;单目操作:如NEG(取反,即加负号)、INC(自增1)等指令;

OPA

(4)零地址指令

不涉及操作数:如NOP、HLT指令;操作数隐含:如PUSH、POP指令

对于寄存器类型的操作数,地址A指寄存器编号。

OP

3、操作数类型

按照指令处理的操作数存放位置分:

存储器类型:操作数存放在主存中,A为其地址信息;

寄存器类型:操作数存放在CPU的通用寄存器中,A为寄存器号;

立即数类型:操作数存放在指令(地址字段)中;

按照指令处理的操作数性质分:

地址(addresses):存储器地址,是无符号整数;

数字(numbers):整数、浮点数、十进制数;

字符(characters);

逻辑数据:真假两种状态;

二、指令字长和操作码扩展

1、指令字长度

机器指令是用二进制机器字来表示的,表示一条指令的机器字,就称为指令字。一条指令中所包含的二进制码的位数,称为指令字长度指令字长。它主要取决于操作码的长度、操作数地址的长度和操作数地址的个数。不同机器的指令字长是不相同的。

按指令长度固定与否可以分为:

固定指令字长的指令:所有指令的字长均相等,一般等于机器字长。

可变指令字长的指令:指令字长不固定,通常取字节的整数倍。

按照指令字长与机器字长的关系分类:

短格式指令:指令字长小于或等于机器字长。

长格式指令:指令字长大于机器字长。

一个机器的指令系统中,短格式指令和长格式指令可以并存,通常将最常用的指令设计成短格式指令,可以节省存储空间、提高指令的执行速度。

2、指令操作码扩展

固定操作码长度的格式和可变操作码长度格式

在设计操作码不固定的指令系统时,应安排指令使用频度高的指令占用的操作码,对使用频度低的指令可占用较长的操作码,这样可以缩短经常使用的指令的译码时间

采用扩展操作码技术,使操作码的长度随地址数的减少而增加,即不同地址数的指令可以具有不同长度的操作码,从而可以有效地缩短指令字长。指令操作码扩展技术是一种重要的指令优化技术,它可以缩短指令的平均长度,增加指令字所能表示的操作信息。但指令操作码扩展技术需要更多的硬件支持,它的指令译码更加复杂,使控制器设计难度增大。

eg:

6.2寻址方式

一、指令寻址

1、顺序寻址方式

控制器中使用程序计数器PC来指示指令在内存中的地址。在程序顺序执行时,指令的地址码由PC自加1得出。

指令在内存中按顺序存放,当顺序执行一段程序时,根据PC从存储器取出当前指令,PC自动+1,然后执行这条指令;接着又根据PC指示从存储器取出下一条指令,PC自动+1,执行......。

2、跳跃寻址方式

当程序执行转移指令时,程序不再顺序执行,而是跳转到另一个地址去执行,此时,由该条转移指令的地址码字段可以得到新指令地址,然后将其置入PC中。

二、数据寻址

指令的地址码字段,通常都不代表操作数的真实地址,把它称作形式地址,记为A。操作数的真实地址称为有效地址,记作EA,它是由寻址方式和形式地址共同来确定的。

 

6.3指令类型

1.数据传送指令

包括寄存器与寄存器、寄存器与存储单元、存储单元与存储单元之间的传送。

2.算术逻辑运算指令

实现算术运算(加、减、乘、除等)和逻辑运算(与、或、非、异或)。有些计算机还设置有位操作指令,如位测试(测试指定位的值)、位清零、位求反指令等。

3.移位操作指令

可分为算术移位、逻辑移位和循环移位。

4.程序控制类指令

5.堆栈操作指令

6.输入输出指令

它完成从外设端口读入一个数据到CPU的寄存器内,或将数据从CPU的寄存器输出到某外设的端口中。  

7.处理器控制指令

包括等待指令、停机指令、空操作指令、开中断指令等。

8.特权指令

特权指令只能给操作系统或其他系统软件,而不能提供给用户使用,以防止破坏系统或其他用户信息 。

6.4指令系统

6.5本章小结

机器指令由操作码字段和地址码字段组成。扩展操作码技术实现指令优化,但也增加了硬件设计难度。

指令的寻址方式包括指令寻址和数据寻址,指令寻址主要是顺序和跳跃两种方式;数据寻址有许多种寻址方式,其目的是获得本条指令执行所需要的操作数。

根据指令的功能,可将指令分类为数据传送、算术逻辑运算类、移位操作类、转移类、堆栈操作类、输入输出类等指令。

指令系统的设计应满足完备性、有效性、规整性、兼容性四个方面的要求。CISC指令系统庞大的指令集及其存在问题,RISC指令以它简洁、高效等特点而得到快速地发展。

通过两种指令系统例子,细述了模型机指令系统设计方法,使读者结合实际理解和掌握指令系统的设计方法。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值