第七章 指令系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ALU
操作数
可扩大寻址范围 IX内容由用户给定
在程序的执行过程中IX内容可变,形式地址A不变 便于处理数组问题
例 设数据块首地址为D,求N个数的平均值
直接寻址
LDA D
变址寻址
LDA #0
ADD ADD
D+1 D+2
LDX
M ADD INX
#0
X,D
X为变址寄存器 D为形式地址 (X)+1 X (X)和#N比较
字符 ASCII 逻辑数 逻辑运算
二、数据在存储器中的存放方式
字地址 低字节 字地址 低字节
0 4
3 7
2 6
1 5
0 4
0 4
0 4
1 5
2 6
3 7
字地址 为 低字节 地址
字地址 为 高字节 地址
三、操作类型
1 数据传送
源 目的 例如 寄存器 寄存器 MOVE 寄存器 存储器 STORE 存储器 寄存器 LOAD 存储器 存储器 MOVE
4位操作码
0000 0001
1110
A3
A3 A3 A3 A3 A3 A3
15条三地址指令
8位操作码
1111 0000 1111 0001 1111 1110
12位操作码
1111 1111 0000 1111 1111 0001 1111 1111 1110
16位操作码
1111 1111 1111 0000 1111 1111 1111 0001 1111 1111 1111 1110
8
6
(A1) OP (A2)
A3
8
(2)三地址
8
8
OP
A1
A2 A3
A3
4次访存
寻址范围28=256
(A1) OP (A2)
若 A3用A1 或A2代替
2 地址码
(3)二地址 或
8 12 12
OP
A1
A2
A1 4次访存
(A1) OP (A2)
(A1) OP (A2)
A2
寻址范围2 =4K
若ACC代替A1(或A2)
ADD DIV
STA
共N+2条指令
……
D+(N-1) #N
ANS
CPX #N BNE M DIV #N STA ANS
共8条指令
结果不为零则转
9 相对地址P318
EA=(PC)+A
A是相对于当前指令的位移量(可正可负、补码)
寻址特征
OP PC 1000
A
主存
1000 OP ……
A 相对距离A
ALU
… … … …
… … … …
… … … …
… … … …
15条二地址指令
15条一地址指令
16条零地址指令
2 地址码
(1)四地址
8 6 6
OP A1
A2
A3
6
A4
6
设指令字长为32位 操作码固定为8位
A1 第一操作数地址 A2 第二操作数地址 A3 结果的地址 A4 下一条指令地址
4次访存
寻址范围2 =64 若PC代替A4
MOVE
PUSH 置“1”, 清“0”
MOVE
POP
三、操作类型
2 算术逻辑操作
加、减、乘、除、增1、减1、求补、浮点运算、十进制运算 与、或、非、异或、位操作、位测试、位清除、位求反 如8086 ADD SUB MUL DIV INC DEC CMP NEG
AAA AAS AAM AAD
AND OR NOT XOR TEST
(2)按字节寻址的相对寻址举例
8 OP 2000 H 位移量 JMP * +8 二字节指令 2000 H 8 OP 06 H
2008 H
2008 H
设 当前指令地址 PC=2000H
转移后的目的地址为 2008H 因为 取出JMP * +8后,PC=2002H 故 JMP +8指令的第二字节为2008H- 2002H=6H *
M值
0 1
寻址方式
立即寻址 直接寻址
指令格式
2
3 4
间接寻址
变址寻址 相对寻址
2、某机的指令格式如下所示:其中 X为寻址特征位 (X=00,直接寻址;X=01指用变址寄存器Rx1寻址; X=10指用变址寄存器Rx2寻址;X=11指相对寻址)。 设 ( PC ) =5431H , ( Rx1 ) =3515H , ( Rx2 ) =6766H,请确定下列指令中的有效地址:
意外事故的中断
一般不提供给用户直接使用 在出现事故时,由CPU自动产生并执行(隐指令)
设置供用户使用的陷阱指令
如8086 INT TYPE 软中断
提供给用户使用的陷阱指令,完成系统调用
5 输入输出
入 出 端口地址 如 IN AX,n AL,n CPU的寄存器 如 OUT n,AX OUT n,AL
15 X
SP
POP A 前
POP A 后
(3)SP的修改与主存编址方法有关
① 按 字 编址
进栈(SP)-1 出栈(SP)+1 SP SP
② 按 字节 编址
存储字长 16 位 进栈(SP)-2 出栈(SP)+2 存储字长 32 位 进栈(SP)-4 SP SP SP
出栈(SP)+4
SP
练习题: 1、某计算机的字长为16位,存储器按字编址,访内存指 令格式如图所示。其中OP是操作码,M定义寻址方式,见 下表,A为形式地址。设PC和RX分别为程序计数器和变址 寄存器,字长为16位,问: (1)该格式能定义多少种指令? (2)各种寻址方式的寻址范围为多少字? (3)写出各种寻址方式的有效地址EA的计算式。 15 1110 8 7 OP M A 0
数据的寄存器寻址方式的寻址过程
指令
寄存器
寄存器
数据
6 寄存器间接寻址
EA=(Ri)
寻址特征
有效地址在寄存器中
Ri
主存
OP
R0
… …
… …
Ri

地址 … 寄存器
操作数
Rn
有效地址在寄存器中,操作数在存储器中,执行阶段访存 便于编制循环程序
数据的寄存器间接寻址方式的寻址过程
指令 寄存器
寄存器 EA
指令地址寻址方式 1000 1001 1200 7 2000 2001 2500 1100 顺序寻址 顺序寻址 顺序寻址
跳跃寻址 顺序寻址

二、数据寻址
操作码 寻址特征 形式地址A
形式地址 有效地址 约定
指令字中的地址 操作数的真实地址 指令字长=存储字长=机器字长
1 立即寻址
形式地址A就是操作数
7.1.1 指令的一般格式
操作码字段 地址码字段
1 操作码
(1)长度固定 用于指令字长较长的情况,RISC 如 IBM 370 操作码 8 位 (2)长度可变
操作码分散在指令字的不同字段中
(3) 扩展操作码技术
OP A1
A1 A1 A1
A2
A2 A2 A2 A2 A2 A2
A3
A3 A3
操随 作地 码址 的数 位的 数减 少 而 增 加

栈底

栈底
(2)堆栈寻址举例
主存
ACC SP 15 200H 栈顶 200H 栈底 X ACC SP 15 1FFH
主存
栈顶 1FFH 200H 栈底 15 X
PUSH A 前
PUSH A 后
主存
主存
ACC 15 200H 栈顶 200H 栈底 15 X
ACC SP
Y 1FFH
栈顶 1FFH 200H 栈底
(3)调用和返回
2000
2100 2101
地址
主程序
CALL SUB1 …… …
2400 2500 2501 2560 2561
子程序SUB1
CALL SUB2 CALL SUB2 RETURN … … …
2700
子程序SUB2
RETURN ……
主存空间分配
程序执行流程
(4)陷阱(Trap)与陷阱指令
CPU的寄存器 IN AX,DX IN AL,DX 端口地址 DX,AX OUT DX,AL
7.3 寻址方式
寻址方式
确定 本条指令 的 操作数地址 下一条 欲执行 指令 的 指令地址 指令寻址 寻址方式 数据寻址
7.3.1 指令寻址
顺序 跳跃
PC +1
(PC)+1 PC 由转移指令指出
指令地址 0 1 2 3 4 5 6 7 8 9 指令 LDA ADD DEC JMP LDA SUB INC STA LDA
操作数
A的位数决定操作数的寻址范围 程序浮动 广泛用于转移指令
(1)相对寻址举例
LDA #0 LDX #0 ADD X,D INX CPX #N BNE M DIV #N STA ANS
M M+1 M+2 M+3
*-3
*相对寻址特征
M 随程序所在存储空间的位置不同而不同 而指令BNE *-3 与指令 ADD X,D 相对位移量不变 指令BNE *-3 操作数的有效地址为 EA=(M+3)-3=M
(1)8341H(2)1438H(3)8134H(4)6228H
15
10 9 8 7 X
0
操作码OP
位移量D
指令格式
7.4 指令格式举例
一、设计指令格式时应考虑的各种因素
指令
存储器 数据
EA
3 隐含寻址
操作数地址隐含在操作码中
寻址特征 主存
ADD
A A
操作数
ACC ALU
另一个操作数 隐含在ACC中
如8086 MUL指令 MOVS指令
ACC
被乘数隐含在AX(16位)或AL(8位)中 源操作数的地址隐含在SI中 目的操作数的地址隐含在DI中
指令字中少了一个地址字段,可缩短指令字长
10 堆栈寻址P319
(1)堆栈的特点
堆栈 硬堆栈 软堆栈 多个寄存器 指定的存储空间 栈顶地址由SP指出 出栈 (SP)-1 SP
SP 1FFF H 2000 H 2000 H 1FFF H 出栈 栈顶 栈顶 栈顶 栈顶 +1
先进后出(一个入出口) 进栈 (SP)-1 SP
SP 1FFF H 2000 H 2000 H 1FFF H 进栈 -1
第七章 指令系统
教学目标:
1、了解指令格式、操作数类型和操作类型
2、掌握数据寻址方式 3、了解RISC和CISC的特点 重点: 理解数据寻址方式的原理
第七章 指令系统
7.1 机器指令 7.2 操作数类型和操作类型 7.3 寻址方式 7.4 指令格式举例 7.5 RISC技术
7.1 机器指令
7.1.1 指令的一般格式 7.1.2 指令字长
存储器 数据
7 基址寻址
(1)采用专用寄存器作基址寄存器
EA=(BR)+A
寻址特征
BR为基址寄存器
主存
OP
BR
A
ALU
操作数
可扩大寻址范围 便于程序搬家 BR内容由操作系统或管理程序确定 在程序的执行过程中BR内容不变,形式地址A可变
(2)采用通用寄存器作基址寄存器
寻址特征
OP R0 R1
三、操作类型
3 移位操作
算术移位 逻辑移位 循环移位(带进位和不带进位)
4 转移
(1)无条件转移 JMP (2)条件转移 如 结果为零转 (Z=1)JZ 结果溢出转 (O=1)JO 结果有进位转 (C=1)JC 跳过一条指令 SKP 300 … 完成触发器
305 SKP DZ D=0 则跳 306 307

80 81 转 子程序 201 转 子程序 202
… …… ……
@间址特征
JMP @A (A)=202 (A)=81
5 寄存器寻址
EA=Ri
有效地址即为寄存器编号
寻址特征
Βιβλιοθήκη Baidu
OP
R0
… …
Ri
… …
Ri

操作数 … 寄存器
Rn
执行阶段不访存,只访问寄存器,执行速度快 寄存器个数有限,可缩短指令字长
小结
当用一些硬件资源代替指令字中的地址码字段后
可扩大指令的寻址范围
可缩短指令字长 可减少访存次数
当指令的地址字段为寄存器时
三地址 OP R1,R2,R3
二地址 OP R1,R2 一地址 OP R1 可缩短指令字长 指令执行阶段不访存
7.2 操作数类型和操作种类
一、操作数类型
地址 数字 无符号整数 定点数、浮点数、十进制数
12
若结果存于acc 3次访存
(4)一地址
8 24
OP
A1 ACC
2次访存 寻址范围2 =16M
24
(ACC) OP (A1)
(5)零地址
无地址码
7.1.2 指令字长
操作码的长度
指令字长决定于 操作数地址的长度 操作数地址的个数
1 指令字长 固定
指令字长=存储字长
2 指令字长 可变 按字节的倍数变化
4 间接地址
EA=(A) 有效地址由形式地址间接提供
寻址特征 主存 寻址特征 主存
OP
A A
EA 操作数
OP
A A
1 A1 EA
一次间址
EA
多次间址
A1 0 EA
操作数
执行指令阶段2次访存 可扩大寻址范围 便于编制程序 多次访存
间接寻址编程举例
主程序 子程序
………… … … ………… … …
立即寻址特征
OP
#
A
立即数 立即数 补码
指令执行阶段不访存 A的位数限制了立即数的范围
2 直接寻址
EA=A 有效地址由形式地址直接给出
寻址特征 主存
OP
A A
立即数
ACC
执行阶段访问一次存储器 A的位数决定了该指令操作数的寻址范围 操作数的地址不易修改(必须修改A)
数据的直接寻址方式的寻址过程
通用寄存器 …
R0
A
主存
R0 作基址寄存器
ALU
操作数
由用户指定哪个通用寄存器作为基址寄存器 基址寄存器的内容由操作系统确定 在程序的执行过程中R0 内容不变,形式地址A可变

Rn-1
8 变址寻址
EA=(IX)+A IX为变址寄存器(专用)
寻址特征
通用寄存器也可以作为变址寄存器 A
主存
OP
IX
相关文档
最新文档