计原与汇编笔记-- 指令系统(一)

第四章 指令系统(一)

指令格式

一、操作码结构设计

固定长度操作码结构

操作码集中存放在指令的一个字段内,其长度是定长的
优点:译码时间短,便于硬件的设计和实现(MIPS指令的操作码字段为6位定长操作码结构

可变长度操作码结构 P83

特点:以16位指令字长为例,将最高四位o’b0000~o’b1110设置为三地址指令,剩下的o’b1111作为扩展标志,以接下来四位作为实际指令。
除了这种扩展方式,还可以有其他扩展方法。例如可以设计成15条三地址、14条2地址、31条1地址指令

二、地址码结构的设计

1. 四地址指令

共有五个字段。从高位到低位:OP, A1, A2, A3, A4
OP: 操作码,表示操作性质
A1:第一操作数地址(源操作数地址)
A2:第二操作数地址(源操作数地址)
A3:存放结果地址;
A4:下一指令的地址
指令的意义为:

(A1)OP(A2)->A3

优点: 结构简单。
缺点:地址码占用了指令子的大量信息,降低了信息的有效利用率。
改进: 大部分程序顺序执行,因此可以设计程序计数器 PC(programme counter),程序预存储,计算机自动执行,故可将地址4去掉

2. 三地址指令(OP|A1|A2|A3)

指令意义:(A1)OP(A2)->A3
特点与四地址完成同样操作。但后续指令地址不在指令中,而是由PC发出。
优点 缩短一个长度,在指令执行后,第一、第二操作数不会被破坏,可以共后续指令继续使用
缺点占用地址字段长
用途:中型机或大型机器

3. 二地址指令(OP|A1|A2)

指令意义:

(A1)OP(A2)->A2
或者
(A1)OP(A2)->A1

会破坏一个操作数
用途:小型机或者中型机

4. 一地址指令(OP|A1)

· 单操作数:OP(A1)->A1
·双操作数:(REG)OP(A1)->(REG)
REG地址在设计指令系统是是预先隐含设定的

5. 零地址指令

两种类型:
1) 置零不需要操作码。例如停机置零、空造作指令(只占用CPU时钟周期和存储空间)
2)指令的操作数是隐含指定的(例如8086的出栈指令)

三、指令助记符与机器指令代码

四、指令格式举例

1. Intel 80x86指令格式(这一部分没咋讲,书上写的看不懂)

计原与汇编笔记-- 指令系统(一)_第1张图片

第零字节:段超越前缀(1byte, 8bit)

|001 |SEG| 110| | 001   | S E G |   110 |
||2|110 | 标 志 | 寄 存 器 的 2 位 编 码 | 110

五、寻址方式

1. 指令寻址

· 顺序寻址方式 (PC) + 1 -> PC
其中,1 并不是每一台计算机的情况
如果内存单元编制单位是字节,每一条指令为四个字节,则每次加的就是4.
· 跳跃寻址转移指令(JMP)指出
计原与汇编笔记-- 指令系统(一)_第2张图片

2. 数据寻址

这里写图片描述
形式地址:指令字中的地址
有效地址:操作数的真是地址
1) 立即寻址
形式地址A就是操作数。在取指令的过程中,需要执行的书已经被取入到CPU中。
计原与汇编笔记-- 指令系统(一)_第3张图片
指令执行阶段不需要放存
2)直接寻址(有效地址即为形式地址)
计原与汇编笔记-- 指令系统(一)_第4张图片

3)隐含寻址(操作数隐含在操作码中)
计原与汇编笔记-- 指令系统(一)_第5张图片
减少了一个地址码字段,可以缩短指令字长
4)间接寻址
有效地址有形式地址间接提供。
指令中的地址码字段存放的是存放操作数有效地址的贮存单元地址(操作数地址的地址)
计原与汇编笔记-- 指令系统(一)_第6张图片
5)寄存器间接寻址
在指令的地址码部分给出寄存器编号,在给定的寄存器中存放操作数所在主存单元的地址。按照地址去访问操作数。
优点:字长较短,可以通过修改寄存器中的内容来访问不同的主存地址,利于编程
6)寄存器寻址
指令中的操作数存放在寄存器中。指令的地址码直接给出寄存器编号。访问此编号的寄存器得到操作数。
7)基址寻址
采用专用寄存器作为基址寄存器

EA=(BR)+A

计原与汇编笔记-- 指令系统(一)_第7张图片
优点:扩大寻址范围、有利于多道程序(程序动态定位)
注意: BR内容由操作系统或者管理程序确定,用户不可自己修改;
在程序执行过程中,BR内容不变,形式地址A可变
**采用通用寄存器作为基址寄存器
计原与汇编笔记-- 指令系统(一)_第8张图片**
可以由用户指定那个通用寄存器作为基址寄存器
基址寄存器内容有管理程序确定
8)变址寻址
与基址寻址类似,由IX变址寄存器和形式地址相加得到操作数地址。
不同点: IX(变址寄存器)内容可以由用户指定
便于处理数组问题

//DIRECT ADDRESSING
LDA D
ADD D+1
ADD D+2
...
ADD D+(N-1)
DIV #N
STA ANS



// INDEXED ADDRESSING
LDA

参考文献

[1] 易小林,鲁鹏程.计算机组成原理与汇编语言.清华大学出版社.9787302193319

你可能感兴趣的:(笔记)