2.3:指令信息的表示

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
格式 操作码θ 间接地址D
D=0030
0060 ...
0060
S
...
S =((D))
13
● 寄存器间址
地址指针
M
R=02 格式 操作码θ 寄存器号R 0040 0040 S S =((R)) R所占位数少;R可提供全字长地址码; 修改R内容比修改M内容快。 指针不变(由指令指定),指针内容可变,使同一指 令可指向不同存储单元,以实现程序的循环、共享, 并提供转移地址。 ... ... ...
... ...
0 1 2 n-1
...
19
D的位数有限,若不能提供全字长地址码,会使 访存空间受到限制。
● 基址寻址 指令给出一个寄存器号和一个地址量,寄存 器内容与地址量之和为有效地址。
格式 操作码θ Rb D
Rb
M 基址寄存器号 位移量
S =((Rb)+ D)
基准地址 相对于基址的位移
4K
... …...
例. 80X86的串传送指令:REP MOVSW 传送次数由
计数器控制
(3)设置寻址方式
在寻址方式的设置上几乎不受限制,能比较
集中地反映指令系统各种寻址方式的实现。
27
2.输入/输出指令
各种信息
主机 外设 设置时需考虑: (1)I/O指令的功能扩展 如何用通用I/O指令实现对各种具体设备的控制? ● I/O指令中留有扩展余地 指令中某些字段编码事先不定义,需要时再约定 其含义。 用于外设种类、数量不多的场合。
(D的位数只需覆盖一个较小 的存储区间) 改变Rb的内容,程序能访问 存储空间中任何一个定长区 间(4K)。
Rb
4K
... …...
20
便于访问两维数组中某类 指定的元素。 变址与基址的区别:
变址:指令提供基准量(不变), R提供修改量(可变);适 于处理一维数组。 基址:指令提供位移量(不变), R提供基准量(可变);用 于扩大有限字长指令的访
6
例.ADD;
执行前: 执行后:
低 低
SP
10 20 46
SP

30 46

7
3. 操作码结构 (1) 定长操作码 各指令θ 的位置、位数固定相同。
(2)扩展操作码
各指令θ 的位置、位数不固定,根据需 要变化。 关键在设置扩展标志。
8
例. 指令字长16位,可含有3、2、1或0个地址, 每个地址占4位。
I/O端口 如何为I/O端口分配地址?
29
● 单独编址 编址到寄存器:为每个寄存器(I/O端口)分配独 立的端口地址; I/O指令中给出端口地址。 I/O地址空间不占主存空间,可与主存空间重叠。 需设置标志区分访问对象,如 M/IO
=1 访问存储器 =0 访问I/O端口
30
● 统一编址 编址到寄存器:为每个寄存器(I/O端口)分配总 线地址; 访问外设时,指令中给出总线地址。 I/O端口占据部分主存空间。 常将存储空间的低端分配给主存单元,高端分配 给I/O端口,以示区分。 (3)I/O指令设置方式 ● 设置专用I/O指令 显式I/O指令 针对单独编址,用I/O指令访问I/O端口。 指令中说明输入/输出操作,并给出端口地址。
15
堆栈的一端是固定的,称 为栈底。栈底是堆栈存储区的 最大地址单元。
主存
00000H
...
栈顶
另一端是浮动的,称为栈顶。 栈底 在任何时刻,栈顶是最后存入信 息的存储单元。栈顶随着堆栈中 存放信息的多少而改变。
已 存 放 堆栈 数 据
为了指示当前堆栈中存放数据位置,通常设置一 个寄存器来指示栈顶位置。其内容就象一个指针一 样,因此被称为堆栈指针SP(Stack Pointer)。 SP的内容始终指向栈顶单元 堆栈中数据进出都由SP来控制
两种指令设计趋势: 复杂指令系统计算机(CISC)
精简指令系统计算机(RISC)
定长指令格式 便于控制
变长指令格式 合理利用存储空间
10
2.3.2 寻址方式 寻址方式是指寻找操作数地址或操作数的方式。
1. 常见寻址方式
(1) 立即寻址 指令直接给出操作数。
定长格式:操作码θ 立即数S 变长格式:基本指令 立即数S

源地址
目的地址
设置时需考虑: (1)规定传送范围 例. DJS-100系列: R 80X86:R M, R IBM370: R M,R
M R R, M
M
26
(2)指明传送单位 例. 用操作码说明(VAX-11): MOVB MOVW 8 16 用地址量说明(80X86): MOV AL,BL MOV AX,BX MOV EAX,EBX MOVL 32 8 16 32
控制/状态字格式:
15 14 12 7 6 2 1 0
出错 故障

完成 允许中断
维护 校验 启动
主机调用输入机: 启动: 主机 控制字(启动位为1) 177550 测试: 主机 取数: 主机
传送指令 状态字 传送指令 数据 传送指令
31
例. 80X86I/O指令设置 输入:IN IN AL,n; (n)
端口地址
AL
(直接端口寻址)
AL,DX; ((DX))
间接端口地址
AL(间接端口寻址) n
输出:OUT OUT
n,AL;(AL) DX,AL; (AL)
(直接端口寻址)
(DX) (间接端口寻址)
32
● 用传送指令实现I/O操作 隐式I/O指令 针对统一编址,用传送指令访问I/O端口。 不设专用I/O指令。 例. 某机I/O接口中设置 控制/状态寄存器CSR,其总线地址为177550(8进制) 数据缓冲寄存器DBR,其总线地址为177552
下条指令地址 转移时,用转移 地址修改PC内容。
目的/源
(D1)θ (D2) 功能: (PC) + 1
D2/D1 PC
5
●一地址结构指令 格式: θ D1
隐含约定
功能: 双操作数:(D1)θ (A) A (PC) + 1 PC 单操作数:θ (D1) D1 (PC) + 1 PC ●零地址结构指令 格式: θ 功能:用于堆栈或特殊指令操作。
● 相对寻址 指令给出位移量,PC内容与位移量之和为有 效地址。 或隐含指定 位移量
格式 操作码θ PC
±D
S =((PC)±D)
有效地址相对PC 上下浮动,给编程 带来方便。 22
● 页面寻址 指令给出位移量,PC的高位部分与位移量拼 接,形成有效地址。
格式 操作码θ PC D
位移量 或隐含指定
2.3 指令信息的表示
指令:指示计算机执行某类操作的信息的集合。 指令系统:一台计算机拥有的全部指令 本节主要讨论:一般指令格式 常用寻址方式 面向用户的指令类型 2.3.1 指令格式
一条指令一般应包含以下信息: 操作码:指示操作的类型,即要求计算机执行的操作, 如加、减、乘、除等。
1
操作数或操作数地址:指令中应给出参与运算的数据 或指出这些数据的存放位置。 存放结果的地址:运算完成后所得结果的存放位置。 后续指令地址:在一个由指令序列构成的程序中,执 行完一条指令后,需要指出下一条要执行的指令的存 放位置。 因此在一条指令中应包含一个操作码和一个或多 个地址码。
操作数 地址
D3
D4
结果 下条指 地址 令地址
(D1)θ (D2) D3 功能: (D4) 下条指令 用指令计数器PC指示指令地址。
4
●三地址结构指令 格式: θ D1 D2
操作数 地址
D3
结果 地址
(D1)θ (D2) 功能: (PC) + 1 ●二地址结构指令 格式: θ D1 D2
源/目的
D3 PC
操作码
15~ 12 11~ 8
地址码
0000
... ... ...
X
7~ 4
Y
Y Y
3~ 0
Z
1110 X 1111 0000
... ... ...
Z Z
...
三地址指令 二地址指令
15条 15条
1111 1110 Y 1111 1111 0000
...
1111 1111 1110 Z 1111 1111 1111 0000
16
...
在堆栈中存取数据的规则是:“先进后出FILO” (First-In Last-Out)。即最先送入堆栈的数据要到最 后才能取出,而最后送入堆栈的数据,最先取出。
堆栈寻址格式: 操作码θ 堆栈指针SP SP 0070
栈顶
M
S =((SP))
压栈: SP自动减1,再存数。 -(SP),自减型间址。 先取数,SP再自动加1。 出栈: (SP)+,自增型间址。
01:RX型指令,寄存器-变址寻址
10:SI型指令,基址-立即寻址 11:SS型指令,基址-基址寻址
24
(2)指令中设置专门字段说明寻址方式
例.某机指令的每个地址字段中各设置一个 3位的寻址方式字段。
3位 3位
操作码θ 寻址方式
R
寻址方式
R
源地址字段
目的地址字段
25
2.3.3 指令功能及类型 1.传送指令
S
... ... ...
17
SP既可出现在指令中,也可隐含约定。
(4)变址、基址寻址及其变化 ● 变址寻址
指令给出一个寄存器号和一个地址量,寄存 器内容与地址量之和为有效地址。
格式 操作码θ RX D
形式地址
变址寄存器号
S =((RX)+ D)
修改量 基准地址
18
例. 用变址方式访问一组连续区间内的数组元素。 D为存储区首址;(RX)为所 访单元距离首址的长度; RX初值为0,每访问一个单 元,(RX)+1。 D=首址 D+1 D+2 D+n-1
指令基本格式 操作码OP
一个
地址码 A
一个或几个
2
存储单元地址码 指令中提供的地址数 寄存器编号 (1)指令提供地址的方式 直接或间接给出 显地址方式 :指令中明显指明地址。
2. 地址结构
隐地址方式 :地址隐含约定,不出现在指令中。
使用隐地址可以减少指令中的地址数,简化 地址结构。
3
(2) 地址结构的简化 ● 四地址结构指令 格式: θ D1 D2
12
D的位数有限, 访存范围受限
操作数S =(D)
● 寄存器直接寻址 (寄存器寻址)
格式 操作码θ 寄存器号R
S =(R)
ቤተ መጻሕፍቲ ባይዱ
R所占位数少; 访问R比访问M快
用于访问固定的存储单元或寄存器。
(3)间接寻址 指令给出操作数的间接地址。
存储单元号 (数在M中) 寄存器号 (数在M中)
间址单元 地址指针
M
● 存储器间址
S =((PC)H,D)
页号 页内地址
...
例. M为64KB,划分 为256页,每页256B。
PC 0165H 017CH
7C S
...
用于页式管理存储系统。 寻址速度快,适于组织程序模块, 有效利用存储空间。
...
23
2. 对寻址方式的说明
(1)操作码隐含说明不同寻址方式 例.某机指令操作码最高两位 00:RR型指令,寄存器-寄存器寻址
● I/O接口中设置控制/状态寄存器
28
主机用输出指令或传送指令将具体设备的控制命令 按约定的代码格式送往接口中的控制寄存器,向外 设发出命令。 外设的状态信息也以某种格式放在接口的状态寄存 器中,主机用输入指令或传送指令从状态寄存器中 取出有关信息进行查询、分析。 如何设置控制/状态寄存器是接口设计的关键。 (2)主机对外设的寻址方式 寻找I/O接口中的寄存器的方式。
操作数在指令中, 其长度固定、有限。
操作数在基本指令之 后,其长度可变。
11
立即寻址主要用来提供常数、设置初值等。
(2) 直接寻址 指令直接给出操作数地址。
存储单元号(数在M中) 寄存器号 (数在R中)
● 存储器直接寻址 (直接寻址)
定长格式 操作码θ 有效地址D 变长格式 基本指令 DL DH D的位数可覆盖 整个存储空间
...
... ...
...
Z Z
...
一地址指令
零地址指令
15条
16条
9
1111 1111 1111 1111
...
...
...
4. 指令字长
指令字的位数越多,所能表示的操作信息和地 址信息也就越多,指令功能将更丰富。而位数多, 指令所占的存储空间就多,读取指令所需要的时间 也增长,指令约复杂执行时间也就越长。反之,指 令字长固定,格式简单,则读取与执行时间就短。
Rb
4K
M
学生姓名 性别 年龄
D=2
... …...
Rb
学生姓名 性别 年龄
4K
D=2
... …...
存空间。
21
● 基址加变址 指令给出两个寄存器号和一个地址量,寄存 器内容与地址量之和为有效地址。
格式 操作码θ RX Rb D
位移量
变址寄存器号 基址寄存器号
S =((RX)+(Rb)+ D)
便于处理两维数组。
14
● 堆栈寻址 堆栈的基本概念
堆栈是一种特殊的存储器,访问该存储器必须 按照指定的规则进行操作。 用途:主要用于暂存数据以及在过程调用或处 理中断时保存断点信息。 堆栈一般分为:专用堆栈存储器 和 软件堆栈 按堆栈的工作方式专门设计的存储器 专用堆栈存储器: 软件堆栈: 由程序设计人员用软件在主存储器中划出的 一块存储区作为堆栈来使用。
相关文档
最新文档