计算机组成原理_ 指令系统_
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 指令字中少了一个地址字段,可缩短指令字长
三、数据寻址方式
4. 间接寻址
EA=(A) 有效地址由形式地址间接提供
寻址特征
主存
寻址特征
主存
OP
A
OP
A
A EA
A 1 A1
一次间址
EA 操作数
多次间址
A1 0 EA
• 执行指令阶段 2 次访存 • 可扩大寻址范围 • 便于编制程序
EA 操作数
多次访存
(4) 陷阱(Trap)与陷阱指令 意外事故的中断
• 一般不提供给用户直接使用 在出现事故时,由 CPU 自动产生并执行(隐指令)
• 设置供用户使用的陷阱指令 如 8086 INT TYPE 软中断 提供给用户使用的陷阱指令,完成系统调用
三、操作类型
5. 输入输出
入
端口地址
如 IN ALX,,n
出 CPU 的寄存器 如 OUT n, AXL
... ... … ... …
(3) 调用和返回
地址 2000 2100 2101
主程序 CALL SUB1
子程序SUB1 2400
2500 CALL SUB2
2501
.
2560 CALL SUB2
2561
RETURN
子程序SUB2 2700
...
RETURN 主存空间分配 程序执行流程
三、操作类型
高字节
低字节
字地址
低字节 字地址低字节
0 102H 341H56H2 78H3 4 4567
0 708H56H1 34H212H3 44567
字地址 为 高字节 地址
字地址 为 低字节 地址
二、数据在存储器中存放方式
存储器按字节编址,存储字长64位,机器字长32位,
可访问的类型有字节、半字、字、双字
循环移位(带进位和不带进位)
三、操作类型
4. 转移 (1) 无条件转移 JMP (2) 条件转移 结果为零转 (Z = 1) JZ 结果溢出转 (O = 1)JO 结果有进位转(C = 1)JC 跳过一条指令 SKP
如 300
完成触发器
…
305 SKP DZ D = 0 则跳 306 307
三、操作类型
0 LDA
1 1 ADD
2 2 DEC
3 3 JMP
4 LDA
5 SUB
6 INC
7 STA
8 LDA
9
...
1000 1001 1200
7 2000 2001
2500 1100
指令地址寻址方式
顺序寻址 顺序寻址 顺序寻址
跳跃寻址 顺序寻址
三、数据寻址方式
操作码
寻址特征 形式地址 A
形式地址
指令字中的地址
2. 算术逻辑操作 加、减、乘、除、增 1、减 1、求补、浮点运算、十进制运算 与、或、非、异或、位操作、位测试、位清除、位求反
如 8086 ADD SUB MUL DIV INC DEC CMP NEG
AAA AAS AAM AAD AND OR NOT XOR TEST
3. 移位操作Fra Baidu bibliotek算术移位
逻辑移位
第7章 指令系统 7.2 操作数类型和操作类型
一、操作数类型
机器中常见的操作数类型有:
地址 数字 字符 逻辑数
无符号整数 有符号整数 定点数、浮点数、十进制数 ASCII 逻辑运算
二、数据在存储器中存放方式
当存储数据占多个字节时,有两种字节次序:
例:1 2 3 4 5 6 7 8 H 的存放方式
双字(地址48) ▲ 双字
字(地址40) ✓
16 24
32
双字(地址64) ▲ 双字
40 48 56
64 72
三、操作类型
1. 数据传送
源
寄存器
目的 寄存器
例如 MOVE
置“1”,清“0”
寄存器 存储器
STORE MOVE PUSH
存储器 寄存器
LOAD MOVE POP
存储器 存储器
MOVE
三、操作类型
1.任意位置开始
地址(十六进制)
00 字节(1B) 半字( 2B)
双字( 5B/8B)
08
双字( 3B/8B)
字(4B)
半字(1B/2B)
10 半字(1B/2B)
字(4B)
…
优点:不浪费存储资源 缺点:除了一个字节之外,访问任何类型数据,可能花费两个存储 周期,读写控制复杂。
二、数据在存储器中存放方式
CPU 的寄存器 端口地址
小结
操作数 类型
数据存放 方式
操作 类型
第7章 指令系统 7.3 寻址方式
一、寻址方式
寻址方式
确定 本条指令 的 操作数地址 下一条 欲执行 指令 的 指令地址
指令寻址
寻址方式
数据寻址
二、指令寻址方式
顺序 跳跃
+1
( PC ) + 1
PC
由转移指令指出
指令地址
指令
PC
有效地址
操作数的真实地址
约定 指令字长 = 存储字长 = 机器字长
三、数据寻址方式
1. 立即寻址 形式地址 A就是操作数
立即寻址特征
OP # A 立即数 可正可负 补码
• 指令执行阶段不访存 • A的位数限制了立即数的范围
三、数据寻址方式
2. 直接寻址 EA=A 有效地址由形式地址直接给出
寻址特征
数据按字节编址,存储字长64位,机器字长32位, 可访问的类型有字节、半字、字、双字 2. 从一个存储字起始位置开始
地址(十六进制)
00 字节(1B) 08
字( 4B)
10 半字(2B)
18
双字( 8B)
优点:任何类型数据访问都可在一个周期内完成,读写控制简单 缺点:浪费宝贵存储资源
二、数据在存储器中存放方式
二、数据在存储器中存放方式
边界对准
地址(十进制)
字(地址 4) ✓
字(地址 0)✓
0
字节 字节 字节 字节 字节 字节
字节 字节 8
半字(地址22) 半字(地址20) 半字(地址 18) 半字(地址 16) 半字(地址30) 半字(地址28) 半字(地址 26) 半字(地址 24)
字(地址44)✓
主存
LDA
A
A 操作数
ACC
• 执行阶段访问一次存储器 • A的位数决定了该指令操作数的寻址范围 • 操作数的地址不易修改(必须修改A)
三、数据寻址方式
3. 隐含寻址 操作数地址隐含在操作码中
寻址特征
主存
ADD
A
ACC
A 操作数
另一个操作数 隐含在 ACC 中
ALU
如 8086
暂存
MUL 指令 被乘数隐含在 AX(16位)或 AL(8位)中
三、数据寻址方式
数据按字节编址,存储字长64位,机器字长32位, 可访问的类型有字节、半字、字、双字 3. 边界对准方式-从数据长度的整数倍位置开始存储
地址(十六进制)
00 字节(1B) 字节(1B)
08
字( 4B)
10 半字(2B) 18
半字(2B) 双字( 8B)
数据存放的起始地址是数据长度的整数倍。 前两种方案的折中,一个周期可完成存储访问,空间浪费也不严重