指令的格式
操作码字段 + 地址码字段,左边为高位,右边为低位。

操作码OP
表示指令对应的操作。操作码字段的长度取决于计算机指令系统的规模。如某指令系统有8条(种)指令,操作码只需3位即可。指令字中的操作码长度可以使固定的也可以是变长的.
等长:指令规整,译码简单,固定长度编码的主要缺点是:信息的冗余极大,使程序的总长度增加。
变长:指令不规整,译码复杂,效率高
地址码AD
根据一条指令中有几个操作数地址,可将该指令称为几操作数指令或几地址指令。
通常指令可以根据操作数地址数量划分为:
三地址指令
二地址指令
一地址指令
零地址指令
零地址指令:只有操作码,没有地址码 | 如停机、空操作、开关中断等
一地址指令:称为单操作数指令,指令中只有一个操作数或者是指令默认以运算器中累加寄存器AC中的数为一个操作数,类似于高级语言函数中的默认参数。符号表达为(AC) OP (A) -> AC,其中OP表示操作,AC和A表示地址。AC为累加寄存器地址。地址加括号表示取地址中的数据,类似于C语言中对指针的解引用
二地址指令:称为双操作数指令。两个地址码表明两个操作数的地址,结果存放在其中一个地址处。符号表达为(A1) OP (A2) -> A1
三地址指令:指令字中有三个操作数地址。符号表达为(A1) OP (A2) -> A3。A1为被操作数地址或源操作数地址。A2为操作数地址或终点操作数地址。A3为存放结果的地址
操作数地址可以是存储器地址, 也可以是寄存器地址:
存储器-存储器(SS)型指令
参与操作的数都在内存里需多次访存. 慢
寄存器-寄存器(RR)型指令
操作数都在寄存器中从寄存器取操作数,结果也存放在寄存器。速度很快,不需要访存,但需要多个寄存器
寄存器-存储器(RS)型指令. 既要访问存储器又要访问寄存器的指令
指令字长度
即指令字中比特的个数
回忆-机器字长:计算机能处理的二进制数据的位数, 决定了计算机的运算精度。
机器字长通常和寄存器的位数一致
指令分类:
单字长指令 (指令字长等于机器
半字长指令 (指令字长等于半个机器
双字长指令
使用多字长指令,地址的位数更多,能够提供更大的地址空间,但是CPU必须两次或多次访问内存才能取出一条指令,降低了CPU的运算速度
定长操作码与扩展操作码 (不定长操作码)
定长操作码指令格式:

显而易见的缺点:地址长度不统一(实际计算机中地址长度是统一的),存在没有被使用的位,浪费空间
所以诞生了变长操作码/扩展操作码:

Ex.

指令助记符
典型的指令助记符
加法
ADD
减法
SUB
传送
MOV
跳转
JMP
转子
JSR
存储
STR
读取
LDA
操作数类型
地址数据: 地址实际上也是一种形式的数据。(无符号) 数值数据: 计算机中普遍使用的三种类型(定点、浮点和十进制数)的数值数据。 字符数据: 文本数据或字符串,目前广泛使用ASCII码。 逻辑数据: 一个单元中有多位二进制bit项组成,每个bit的值可以是1或0。当数据以这种方式看待时,称为逻辑性数据。
ASSIGNMENT
指令格式如下所示,其中OP为操作码,试分析指令格式的特点。

① 单字长二地址指令。
② 操作码字段OP可以指定27=128条指令。
③ RR型指令
④ 常用于算术逻辑运算类指令。

① 双字长二地址指令。
② 操作码字段OP可以指定26=64条指令。
③ RS型指令。(变址寄存器和位移量用于查找主存中的地址
④ 用于访问存储器。
Last updated
Was this helpful?