一、机器指令
每一条 机器语言 的指令叫 机器指令
全部机器指令的 集合 叫机器的 指令系统
指令由 操作码 和 地址码 组成,指令字长 与操作码长度、操作数地址长度、操作数地址个数有关。
- 操作码:指明该指令要完成的操作、对什么类型的数据进行操作(有的指令系统还在此处说明了操作数的寻址方式),其长度可以固定,也可变化,操作码位数随地址数减少而增加。
- 地址码:指出指令操作数地址、结果地址、下一条指令地址。
注:
- 操作吗并非一定如上图所示,集中在一个区域,可以分散在指令不同字段中。
- 使用频率高的指令用短操作码,使用频率低的用长操作码,可缩短编译时间
(1)四地址指令
格式:
在执行过程中,访存 4 次,指令直接寻址范围太小
由于程序计数器 PC 有计数功能,可自动形成下一条指令地址,故可得三地址指令。
(2)三地址指令
格式:
在执行过程中,访存 4 次。
若将中间计算结果放入 CPU 寄存器中(而不放入主存),则可省去结果地址,得到二地址指令。
(3)二地址指令
格式:
在执行过程中,访存 3 次。
若将一位操作数直接放于运算器 ACC 中,则得到一地址指令。
(4)一地址指令
格式:
在执行过程中,访存 2 次。
(5)零地址指令
无地址码,如 进栈出栈指令。
二、操作数类型和操作类型
1.操作数类型
- 地址:无符号整数
- 数字:定点数、浮点数、十进制数
- 字符:ASCII
- 逻辑数据
2.数据存放方式
- 任意位置开始:浪费存储空间,访存时间短
- 每次从一个字起始位置开始
- 按“边界对准”存储:从地址整数倍位置开始访问。如下图:
3.操作类型
- 数据传送
- 算数逻辑运算
- 移位:分算术移位、逻辑移位、循环移位
- 转移
- 输入输出(对于 I/O 单独编址的计算机,才有输入输出指令)
- 其他:如等待指令、停机指令等
转移:
分无条件转移、条件转移、调用与返回、陷阱与陷阱指令
- 调用与返回指令通常配合使用
- 陷阱指令通常不提供给用户,作为隐指令,在有意外故障时由 CPU 自动产生并执行。
三、寻址方式
寻址方式指确定本条指令的数据地址,以及下一条指令的地址的方法。
分为:
- 指令寻址
- 数据寻址
1.指令寻址
- 顺序寻址:PC 自动加 1 ,形成下一条指令地址(注意,此处 “1”的含义,若指令字长 32 字节,存储单元 8 字节,则此时 PC+4)
- 跳跃寻址:由转移指令指出
2.数据寻址
(1)立即寻址
特点:形式地址 A 不是地址,而是操作数本身,又称为立即数。
执行阶段不必访存。
(2)直接寻址
特点:形式地址 A 就是有效地址
执行阶段只访存 1 次,但是必须通过修改 A 的值才可修改操作数地址。
(3)隐含寻址
特点:指令字中补明显给出操作数地址,地址隐含于操作码或某个寄存器。
其中,寻址特征部分为隐含寻址,A 为直接寻址。
有利于缩短指令字长。
(4)间接寻址
分为一次间址(如上图)、多次间址(A 所指的还不是最终地址)。
扩大了操作数寻址范围,利于编址程序,缺点为访存时间长。
(5)寄存器(直接)寻址
A 为寄存器编号,操作数在 A 所指寄存器中。
执行时无需访存,执行时间短。
(6)寄存器间接寻址
A 为寄存器编号, A 所指寄存器中存有效地址。
执行阶段仍需访存,便于编写循环程序。
(7)基址寻址
采用专门寄存器做基址寄存器,有效地址 EA = 基址寄存器 BR 中地址 + A
(8)变址寻址
有效地址 EA = 变址寄存器 IX 中地址 + A
与基址寻址不同:
- 基址寄存器的内容由操作系统、管理程序确定,A 可变。
- 变址寄存器内容由用户确定,A 不可变。,主要用于处理数组问题。
(9)相对寻址
其有效地址为程序计数器 PC 中的地址,与指令字中的形式地址 A 相加而得。
(10)堆栈寻址
堆栈寻址指令字中没有形式代码字段,属于零地址指令。
四、RISC 技术
- RISC 精简指令系统计算机
- CISC 复杂指令系统计算机
本文中图片除第一张外均为刘宏伟教授在中国大学MOOC上的课件截图
来源:CSDN
作者:Lintongzg
链接:https://blog.csdn.net/weixin_42107217/article/details/104071132