第四章--指令系统(new)
第四章 指令系统[一]
译码开始
4:16译码器 : 译码器
4:16译码器 : 译码器
4:16译码器 : 译码器
4:16译码器 : 译码器
…
15条三地址指令 15条三地址指令
…
14条二地址指令 14条二地址指令
…
31条一地址指令 31条一地址指令
…
16条零地址指令 16条零地址指令
图4.1 指令译码逻辑图
•
注意事项: 注意事项: • 短操作码不能与长操作码 的前面代码部分相同; 的前面代码部分相同; • 各指令的操作码一定不能重复,而且各类指令的 各指令的操作码一定不能重复, 格式安排应统一规整. 格式安排应统一规整.
例1(P151.题2):假设某计算机指令长度为20位,具有双操作 1(P151.题2):假设某计算机指令长度为20位 假设某计算机指令长度为20 单操作数、无操作数三类指令形式, 数、单操作数、无操作数三类指令形式,每个操作数地址 规定用6位表示, 规定用6位表示,问: 若操作码字段固定为8 现设计出m条双操作数指令,n 若操作码字段固定为8位,现设计出m条双操作数指令,n 固定为 条无操作数指令,在此情况下, 条无操作数指令,在此情况下,这台计算机最多可以设计出 多少条单操作数指令? 多少条单操作数指令? 解 : 2 8 - m - n条
(1) 三个容易混淆的基本概念
• 指令字长:一条指令中包含二进制代码的位数. 指令字长:一条指令中包含二进制代码的位数. • 存储字长:存储单元中二进制数的位数. 存储字长:存储单元中二进制数的位数. • 机器字长:计算机能直接处理的二进制数据的 机器字长: 位数,通常与主存单元的位数一致. 位数,通常与主存单元的位数一致.
例:设某机器的指令字长为16位,包括基本操作码4位 设某机器的指令字长为16位 包括基本操作码4 16 和三个地址字段,每个地址字段长4 其格式为: 和三个地址字段,每个地址字段长4位,其格式为: 15 12 11 A1 OP 8 7 A2 4 3 A3 0
微机原理 第四章 微型计算机指令系统
例: 已知: DS=2000H; SI=1000H 指令: MOV [SI+disp],AX
青岛理工大学琴岛学院
寄存器间接相对寻址过程示意图
CPU
寄存器间接相对 SI=1000H
MOV [SI+20H] 程序 ,AX
CS 偏移1000H
DS
SS
ES
位移20H
青岛理工大学琴岛学院
寄存器相对寻址过程示意图
真正数据所在的地址
青岛理工大学琴岛学院
错误指令举例: 6)基址变址寻址: MOV [BX+CX],AX ; CX不能做变址寄存器 MOV [BX+BP],AX ; BP不能作为变址寄存器 操作数的有效地址 EA等于一个基址寄存器( BX或 MOV [BX+DI],ARRAY; BP)与一个变址寄存器( SI或DI)的内容之和;
总时间=基本执行时间+计算EA的时间+执行总线读/写周期的时间
指令的基本执行时间随指令类型的不同差异很大,访问存 储器既要执行总线的读/写周期,又要计算操作数的有效地址 EA,计算EA的时间又与指令的寻址方式有关。
青岛理工大学琴岛学院
4.2 8086/8088指令系统
数据传送类指令
算术运算类指令 位操作类指令 串操作类指令 控制转移类指令 处理器控制类指令
21000H 20 位 物 理 地 址 真正数据所在的地址 Memory DS … 20000H
…
78H 21000H 56H
青岛理工大学琴岛学院
4)寄存器间接寻址:
此方式的操作数存放在存储器单元中,指令给出的 16位寄存器值就是该操作数所在存储单元的EA。
例: 已知: (DS)=2100H,(DI)=2000H 指令: MOV AX,[DI] ;(AX) ((DI)) 注:使用BX、SI、DI,操作数在DS段;BP时在SS段 其中寄存器只能是BX、SI、DI、BP
计算机原理 第四章指令系统
4. 寄存器间接寻址方式
指令给出寄存器号,寄存器中存放着操作数的地址。
优点:寄存器的位数 较长(一般为机器字 长),足以访问整个 内存空间,这样既有 效地压缩了指令长度, 又解决了寻址空间太 小的问题。
主存单元 例: ADD (R1),(R2) R0 1000H 1000H 3A00H
R1
2C00H+ 3B00H → 3000H单元 R2
计 算 机 组 成 原 理
指令扩展举例 1
16位指令字 三地址指令范围 xxxx
0000 1110 1111 1111 1111 1111 1111 1111
xxxx xxxx xxxx
A1 A1 0000 1110 1111 1111 1111 1111 A2 A2 A1 A1 0000 1110 1111 1111 A3 A3 A2 A2 A1 A1 0000 1111
2.变长操作码,定长指令码。
操作码长度不固定,但指令码的长度固定。这种设计当操作码变 长时,地址码就缩短(地址个数变少),但指令字总长不变。 〔例〕 设某机器的指令长度为16位,包括基本操作码4位和三个 地址字段,每个地址字段长4位,其格式为: 15 14 13 12 OP 11 10 9 8 AD1 7 6 5 4 AD2 3 2 AD3 1 0
第四章
§4.1 指令格式
指令系统
(P148)
§4.2
寻址方式
§4.3 指令类型 §4.4 § 4.5 CISC和RISC 实验模型机的指令系统汇总表
§4.1 指令格式
计算机指令是计算机硬件能够识别并直接执行的操作命令,又称为 机器指令。
一、指令格式
一条指令应包括两方面的信息:操作码信息和地址码信息。 操作码OP 地址码AD
第4章 指令系统
存取。
二、对指令系统性能的要求三
4、兼容性:
系列机各机种之间具有相同的基本结 构和共同的基本指令集,因而指令系统是 兼容的,即各机种上基本软件可以通用。但 由于不同机种推出的时间不同,在结构和性 能上有差异,做到所有软件都完全兼容是不 可能的,只能做到“向上兼容”,即低档机 上运行的软件可以在高档机上运行。
a、CISC:70年代后,大多数计算机的指 令系统多达几百条。我们称这些计算机 为复杂指令系统计算机(CISC)。
b、RISC:但是如此庞大的指令系统难以 保证正确性,不易调试维护,造成硬件 资源浪费。为此人们又提出了便于LSI技 术实现的精简指令系统计算机(RISC) 返回
二、对指令系统性能的要求一
4.4、指令和数据的寻址方式
一、指令的寻址方式 二、操作数寻址方式
三、寻址方式举例
一、指令的寻址方式一
1、寻址方式:形成操作数有效地址或指令 有效(偏移)地址的方式。 2、寻址方式分为两类,既指令寻址方式和 数据寻址方式。 3、指令的寻址方式有两种,一种是顺序寻 址方式,另一 种是跳跃寻址方式。 4、操作数或指令在存储器中的地址:某个 操作数或某条指令存放在某个存储单元 时,其存储单元的编号就是地址。请看 图示
答案:
退 出 上一页 下一页 上一节 下一节 返回节目录
例三答案:
三、低级语言与硬件结构的关系
高级语言 低级语言
Visual c++、foxpro、java
与软件结构和指令系统无关 编写的程序可在不同机器上 运行
汇编语言、二进制语言
与机器、指令系统密切相关 编写的指令系统不同,不同
机器用不同汇编语言编写程 序,机器唯一可识别的是二
计算机组成原理-第4章_指令系统
7. 段寻址方式(Segment Addressing)
方法:E由段寄存器的内容加上段内偏移地址而形成。
应用:微型机采用段寻址方式,20位物理地址为16位 段地址左移四位加上16位偏移量。
分类:① 段内直接寻址; ② 段内间接寻址; ③ 段间直接寻址; ④ 段间间接寻址;
9 堆栈寻址方式
堆栈:是一组能存入和取出数据的暂时存储单元。
*** 指令字长度
概念 指令字长度(一个指令字包含二进制代码的位数) 机器字长:计算机能直接处理的二进制数据的位数。 单字长指令 半字长指令 双字长指令
多字长指令的优缺点
优点提供足够的地址位来解决访问内存任何单元的寻址问题 ; 缺点必须两次或多次访问内存以取出一整条指令,降低了CPU的运 算速度,又占用了更多的存储空间。
*** 指令系统的发展与性能要求
*** 指令系统的发展
指令:即机器指令,要计算机执行某种操作的命令。
指令划分:微指令、机器指令和宏指令。
简单
复杂
指令系统:一台计算机中所有指令的集合;是表征
计算机性能的重要因素。
系列计算机:基本指令系统相同、基本体系结构相同 的一系列计算机。
*** 对指令系统性能的要求
(2)立即数只能作为源操作数,立即寻址主要用来给寄存 器或存储器赋初值。以A~F开头的数字出现在指令中时,前 面要加0。
(3)速度快(操作数直接在指令中,不需要运行总线周期)
(4)立即数作为指令操作码的一部分与操作码一起放在代 码段区域中。
(5)指令的长度(翻译成机器语言后)较长,灵活性较差。
【例】MOV AX, 10H 执行后(AX)=? 其中:这是一条字操作指令,源操作数为立即寻址 方式,立即数为0010H,存放在指令的下两个单元。
计算机组成原理(白中英)第4章指令系统
计算机组成原理(白中英)第4章指令系统指令系统概述寻址方式指令系统20XX年3月15日10时45分概述指令:是指示计算机某种操作的命令。
微指令,机器指令,宏指令指令系统:一台计算机中所有机器指令的集合。
它是机器硬件设计的依据,也是软件设计的基础。
它决定了一台计算机硬件的主要性能和基本功能。
是硬件和软件间的界面。
系列计算机:有共同的指令集,相同的基本体系结构。
CISC和*****X年3月15日10时45分2一个完善的指令系统应满足:1.完备性:指令丰富,功能齐全,使用方便。
1.完备性:指令丰富,功能齐全,使用方便。
完备性 2.有效性程序占空间小,执行速度快。
有效性: 2.有效性:程序占空间小,执行速度快。
3.规整性对称性,匀齐性,规整性:3.规整性:对称性,匀齐性,指令格式和数据格式的一致性。
据格式的一致性。
4.兼容性兼容性:4.兼容性:向上兼容”----系列机中低档机上运行“向上兼容”----系列机中低档机上运行的软件可以在高档机上运行。
的软件可以在高档机上运行。
20XX年3月15日10时45分计算机语言与硬件结构的关系高级语言的语句和用法与具体机器的指令系统无关;低级语言分机器语言和汇编语言,他们和具体机低级语言分机器语言和汇编语言,器的指令系统密切相关。
器的指令系统密切相关。
汇编语言与硬件的关系密切,编写的程序紧凑、汇编语言与硬件的关系密切,编写的程序紧凑、占内存小、速度快,占内存小、速度快,特别适合与编写经常与硬件打交道的系统软件;打交道的系统软件;而高级语言不涉及机器的硬件结构,通用性强、编写程序容易,件结构,通用性强、编写程序容易,特别适合与编写与硬件没有直接关系的应用软件。
编写与硬件没有直接关系的应用软件。
20XX年3月15日10时45分4概述机器指令的要素C C C C 操作码源操作数目的操作数下一条指令的引用指令字(简称指令)即表示一条指令的机器字。
指令字(简称指令)即表示一条指令的机器字。
计原与汇编4
第四章 指令系统
(4)一地址指令 格式:
OP A
意义:单操作数指令 OP(A)→A 双操作数指令 (AX) OP (A)→AX
缩短指令长度的方法:
①结果存放在目的操作数地址中。
②用CPU中的寄存器隐含一个OP数。
③把地址隐含在寄存器中。
第四章 指令系统
(5)零地址指令
格式
OP
用于:①空操作指令、停机指令等。
01B50H 01F50H 021A0H 031ACH 被访问存储单元 段基址
FFFFFH 逻辑地址 物理地址
4、与数据相关的寻址方式
(一)寄存器寻址
• 指令中所需的操作数放在CPU内的某通用寄存器 中,由指令给出该寄存器的地址。 指令(地址码部分):通用寄存器的地址,R#
操作数地址形成: 操作数: R# 在通用寄存器中,( R#)
(二)操作码结构 操作码:指令中表示机器操作性质和种类的部分。
操作码长度:决定了指令系统中完成不同操作的指
令条数。
操作码设计方法:
1. 固定长度操作码 2. 可变长度操作码(扩展操作码)
(三)地址码结构
地址码结构包括:
指令中需要几个地址——指令格式;
地址如何给出——寻址方式;
地址码长度 指令格式分类: (1)四地址指令 格式
0H
正在执行的指令 下一条指令
IP(指令指针)是指令的地址指针。
(4)标志寄存器FR(Flags Register)
记录程序执行时的状态,存储PSW(16位长),有9个标志位。
OF DF IF TF SF ZF AF PF CF
进位位 奇偶位 辅助进位位 零值位 符号位 单步标志位 中断允许位 方向位 溢出位
第四章指令系统习题参考答案
1.ASCll码是7位,如果设计主存单元字长为32位,指令字长为12位,是否合理?为什么?解:指令字长设计为12位不是很合理。
主存单元字长为32位,一个存储单元可存放4个ASCII 码,余下4位可作为ASCII码的校验位(每个ASCII码带一位校验位),这样设计还是合理的。
但是,设计指令字长为12 位就不合理了,12位的指令码存放在字长32位的主存单元中,造成19位不能用而浪费了存储空间。
2.假设某计算机指令长度为20位,具有双操作数、单操作数、无操作数三类指令形式,每个操作数地址规定用6位表示。
问:若操作码字段固定为8位,现已设计出m条双操作数指令,n条无操作数指令,在此情况下,这台计算机最多可以设计出多少条单操作数指令?解:这台计算机最多可以设计出256-m-n条单操作数指令3.指令格式结构如下所示,试分析指令格式及寻址方式特点。
解:指令格式及寻址方式特点如下:① 单字长二地址指令;② 操作码OP可指定=64条指令;③ RR型指令,两个操作数均在寄存器中,源和目标都是通用寄存器(可分别指定16个寄存器之一);④ 这种指令格式常用于算术逻辑类指令。
4.指令格式结构如下所示,试分析指令格式及寻址方式特点。
解:指令格式及寻址方式特点如下:① 双字长二地址指令;② 操作码OP可指定=64条指令;③ RS型指令,两个操作数一个在寄存器中(16个寄存器之一),另一个在存储器中;④ 有效地址通过变址求得:E=(变址寄存器)± D,变址寄存器可有16个。
5.指令格式结构如下所示,试分析指令格式及寻址方式特点。
解:指令格式及寻址方式特点如下:① 单字长二地址指令;② 操作码OP可指定=16条指令;③ 有8个通用寄存器,支持8种寻址方式;④ 可以是RR型指令、SS型指令、RS型指令、6.一种单地址指令格式如下所示,其中I为间接特征,X为寻址模式,D为形式地址。
I,X,D 组成该指令的操作数有效地址E。
第四章-指令系统PPT课件
指令字结构简单,且指令字长度是不变的 ;
采用非等长指令的的优点:各种指令字长度随指令功能而异,结
构灵活,能充分利用指令长度,但指令的控制较复杂 。
.
16
五、指令助记符
由于硬件只能识别1和0,所以采用二进制操作 码是必要的,但是我们用二进制来书写程序却 非常麻烦。
指令前缀 段取代 操作数长度取代 地址长度取代
操作码 Mod Reg或操作码 R/M S I B 位移量 立即数
.
19
七、 Pentium指令格式
指令前缀中的重复前缀指定串的重复操作,这样使 Pentium处理串比软循环快得多。
LOCK前缀用于多CPU环境中对共享存储器的排他性 访问
段取代用于改变默认段寄存器的情况
提供一个常数。
.
31
3、直接寻址
指令中地址码字段给出的地址A就是操作数的 有效地址EA(Effective Address),即EA=A。
.
32
3、直接寻址
操作数地址是不能修改的,与程序本身所在的位置 无关,所以又叫做绝对寻址方式
在早期的计算机中,主存储器的容量较小,指令中 地址码的位数要求不长,采用直接寻址方式简单快 速,也便于硬件实现,因此,常被作为主要的寻址 方式。
本章所讨论的指令,是机器指令。 一台计算机中所有机器指令的集合,称为这台计算机的指令系
统。 指令系统是表征一台计算机性能的重要因素,它的格式与功能
不仅直接影响到机器的硬件结构,而且也直接影响到系统软件, 影响到机器的适用范围
.
3
4.1 指令系统的发展与性能要求
3、发展情况
复杂指令系统计算机,简称CISC。但是如 此庞大的指令系统不但使计算机的研制周期 变长,难以保证正确性,不易调试维护,而 且由于采用了大量使用频率很低的复杂指令 而造成硬件资源浪费。
第4章 指令系统
OP
这种指令有两种可能: 指令不需要操作数,如停机指令(HALT)、空操作指令(NOP)等。 所需的操作数是默认的,如默认在堆栈中。
注:上述的地址格式是针对同一种性质的操 作在不同的机型上可以采取的不同的实现方案 , 在具体的某种机型的指令系统中,根据操作类 型的不同,又可以采用不同的地址格式。
位利用率高,但控制器复杂。在字长较短的微型机上广泛使用。 例:如某机器的指令系统有 15 条 3地址指令、 15条 2 地址指令、 15条1地址指令、16条零地址指令,共61条。该机器指令长度是16 位,包括4位基本操作码字段和3个4位地址码字段,其格式如下:
OP(4位) A1(4位) A2(4位) A3(4位)
通常用于跳转指令中
24
指令寻址
顺序寻址
通过程序计数器PC加1,自动形成下一条指令的地址
跳跃寻址
跳跃寻址是通过转移指令来实现 , 转移地址的形成方式有3种:直接、相 对和间接寻址,如:
26
4.3 RISC技术
CISC:复杂指令集计算机(Complex Instruction Set Computer)。
直接寻址
形式地址就是操作数的有效地址,即:EA=A
例:OP 1000, Rx 特点:简单,但地址的位数受到指令字长的限制
19
常用的数据寻址方式
间接寻址
形式地址是操作数的有效地址的地址,即:EA=(A ) 特点:扩大了寻址范围 ,但至少需要访问两次主存, 降低了指令的执行速度
通常用于字符串处理、数组运算等成批数据处理中
22
常用的数据寻址方式
基址寻址
有效地址EA=(基址寄存器Rb)+D 例:OP addr(Rb),Rj 通常用于多用户计算机系统中,逻辑地址到物理地址的转换
汇编语言第四章:指令系统和寻址方式
第四章 第一章 指令系统和寻址方式 基础知识
第四章 第一章 指令系统和寻址方式 基础知识
第四章 第一章 指令系统和寻址方式 基础知识
根据d的不同进行选取
第四章 第一章 指令系统和寻址方式 基础知识
d=1时的操作
第四章 第一章 指令系统和寻址方式 基础知识
d=0时的操作
第四章 第一章 指令系统和寻址方式 基础知识
如果2000H单元在附加段,指令为: MOV AX, ES:[2000H] 段跨越前缀: 段寄存器名: —— 改变默认使用的段寄存器
第四章 第一章 指令系统和寻址方式 基础知识
可以使用属性操作符 type PTR 来进行属性说明
第四章 第一章 指令系统和寻址方式 基础知识
(4)寄存器间接寻址方式 (Register Indirect Addressing ) 特点: (寄存器) = 操作数的偏移地址 计算操作数物理地址的公式:
next
(7)相对基址变址寻址方式 ( Relative Based Index Addressing ) 特点:(基址寄存器) + (变址寄存器)+位移量 = 操作数的偏移地址
例:设 ( SS ) = 3000H ( BP ) = 2000H ARRAY = 0250H ( SI ) = 1000H MOV AX, ARRAY[BP][SI] 要访问的存储单元物理地址为: 30000H+2000H +0250+1000H 30000H = 33250H
第四章 第一章 指令系统和寻址方式 基础知识
第四章 第一章 指令系统和寻址方式 基础知识
第四章 第一章 指令系统和寻址方式 基础知识
Байду номын сангаас
王道计算机组成原理第四章指令系统思维导图脑图
根据操作码的长度不同分类
定长操作码:指令系统中所有指令的操作码长度都相同 可变长操作码:指令系统中各指令的操作码长度可变
n位→2n 条指令 控制器的译码电路设计简单,但灵活性较低 控制器的译码电路设计复杂,但灵活性较高
LOAD 作用:把存储器中的数据放到寄存器中
1. 数据传送
STORE 作用:把寄存器中的数据放到存储器中
x86处理器中程序计数器PC通常被称为IP
选择语句的机器级表示
设计思路:一条指令完成一个复杂的基本功能。
代表:x86架构,主要用于笔记本、台式机等
设计思路:一条指令完成一个基本“动作”;多条指令组合完成一个复杂的基 本功能
代表:ARM架构,主要用于手机、平板等
CISC: Complex Instruction Set Computer RISC: Reduced Instruction Set Computer
概念
存储字长:一个存储单元中的二进制代码位数(通常和MDR位数相同)
半字长指令、单字长指令、双字长指令 ——指令长度是机器字长的多少倍
根据指令长度分类
指令字长会影响取指令所需时间。如:机器字长=存储字长=16bit,则取一条双 字长指令需要两次访存
定长指令字结构:指令系统中所有指令的长度都相等
变长指令字结构:指令系统中各种指令的长度不等
隐含寻址
优点:有利于缩短指令字长 缺点:需增加存储操作数或隐含地址的硬件 形式地址A就是操作数本身,又称为立即数,一般采用补码形式
#表示立即寻址特征
一条指令的执行:取指令,访存1次;执行指令,访存0次;
暂不考虑存结果,共访存1次
优点:指令执行阶段不访问主存,指令执行时间最短
缺点:A的位数限制了立即数的范围,如A的位数为n,且立即数采用补码时,可 表示的数据范围为-2n−1 ~2n−1 -1
第四章 指令系统74页PPT
能有效压缩操作码的平均长度,控制复杂,指令译码、分析较难
操作码
因此,现代计算机中多采用不等长操作码——不同 类的指令,其操作码的长度不同
不等长操作码对于缩短操作码的平均长度具有明显 好处
实现不等长操作码可以通过扩展操作码法实现。
扩展操作码
实现不等长操作码可以通过扩展操作码法实现 操作码的长度随地址码的减少而增加 对于一部分不需要操作数的指令可以将指令操作码扩 展到操作数字段 不同地址的指令可以具有不同长度的操作码 在不增加指令长度的情况下,能充分利用指令的各个 字段扩展操作码的长度,使它可以表示更多的指令 通过等长扩展、不等长扩展两种方式实现
扩展操作码
0000 0001 0111
同样的要求还可采用4-5-9不等长扩展 7条使用频度最高的指令操作码
10000
10001 11110
15条使用频度稍低的指令操作码
111110000 111110001
16条使用频度稍低的指令操作码
111111111
不允许短码 是长码的前缀,各条指令的操作码一定不能重复
等长扩展
扩展操作码
每次扩展的操作码的位数相同。例如:4-8-12扩展法、 3-6-9扩展法、4-6-8扩展法
不等长扩展
指每次扩展的操作码的位数不相同。例如:4-6-10扩展 法、3-6-10扩展法
两种扩展方式很难证明哪一种肯定优于另外一种 实际中采用哪种方式,应考虑其他因素,比如,使用频度
扩展操作码
操作码用来表明本条 指令要求计算机完成 的操作
地址码用来给出参加 本次运算的操作数和 运算结果所在的地址
操作码
指令系统的每一条指令都有一个操作码 不同的指令用操作码字段的不同编码来表示 操作码的长度可以是固定,也可以是变化的 操作码长度固定:操作码集中在指令字的一个字段内
计算机组成原理(第三版)第 4 章 指令系统汇编
内存
有效地址 EA=[D]; [EA]= DATA; • 例如: ADD A,@[3050H] MOV A,@[3050H]
… EA … DATA
EA
INFO DEPT@ZUFE HANGZHOU.CHINA
5、寄存器寻址方式 ( Register Addressing )
寄存器寻址:操作数存放于指令的操作码所规定的寄存 器中即操作数位于寄存器中,操作数所在的寄存器编号 存放在指令的REG字段中。 • →速度快、指令短,操作数在CPU中; • 指令格式:
内存
有效地址 EA=[PC或IP]+D; [EA]=DATA (指令);
EA→
…
指令 …
D • 例如:JR SUB1-$
INFO DEPT@ZUFE HANGZHOU.CHINA
;
10、堆栈寻址 ( Stack Addressing )
• 操作数位于存储器中,操作数所在的存储器地址 EA由堆栈指针寄存器SP隐含指出,通常用于堆栈 指令。 • 堆栈是由若干个连续主存单元组成的先进后出( first in last out,即FILO)存储区,第一个放 入堆栈的数据存放在栈底,最近放入的数据存放 在栈顶。栈底是固定不变的,而栈顶是随着数据 的入栈和出栈在时刻变化。栈顶的地址由堆栈指 针SP指明。 • 一般计算机中,堆栈从高地址向低地址扩展,即 栈底的地址总是大于或等于栈顶的地址,称为堆 栈向上生成;堆栈寻址主要用来暂存中断和子程 序调用时现场数据及返回地址。
OP* MOD REG CPU 寄存器组
R0 … Ri
有效地址 EA=REG; [REG]= DATA; • 例如: EA→ ADD A, Ri ; MOV A, Ri ;
第四章 指令系统1
5、寄存器寻址方式 方法: 方法:指令中给出的操作数地址不是内存 单元的地址,而是通用寄存器的编号。 单元的地址,而是通用寄存器的编号。 有效地址E=Ri , S=(Ri) 有效地址
例: MOV AX, R1
特点:可以缩短指令字长,不访问内存, 特点:可以缩短指令字长,不访问内存, 所以速度快. 所以速度快
例: MOV AX, [8000H]
4、间接寻址 方法: 方法:指令地址字段中给出的不是操作数 的真正地址,而是操作数地址的指针 地址的指针, 的真正地址,而是操作数地址的指针, =(D) 即E=( )S= ( (D) ) =( 特点: 特点:间接寻址方式可以扩大寻址范 但由于两次访存, 围,但由于两次访存,影响指令执行 速度
4.4 指令和数据的寻址方式 一、寻址方式 1、寻址方式概念:当采用地址指定方式, 寻址方式概念:当采用地址指定方式, 在存储器中写入或读出操作数或指令字 形成操作数或指令地址的方式, 时,形成操作数或指令地址的方式,称 为寻址方式。
一、寻址方式
2、寻址方式分类 寻址方式分为:指令寻址方式和数据寻 指令寻址方式和数据寻 址方式,前者比较简单,后者比较复杂。 址方式,前者比较简单,后者比较复杂。 3、两个定义: 两个定义:
第四章 指令系统
本章提要: 本章提要: 指令系统概述(发展、作用); 指令系统概述(发展、作用); 指令格式; 指令格式; 指令类型; 指令类型; 寻址方式; 寻址方式; CISC和RISC. 和
4.1 指令系统的发展和性能要求 一、指令系统的发展 1.指令: 1.指令:就是要计算机执行某种操作的 指令 命令。 命令。 从计算机组成的层次结构来说, 从计算机组成的层次结构来说,计 算机的指令有微指令 机器指令和 微指令、 算机的指令有微指令、机器指令和宏指 之分。 令之分。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.立即寻址(immediate addressing):所需的操作数 在指令中直接给出,即操作数包含在指令内,称为 立即数。 优点:取指令的同时操作数、操作码同时取出, 不必再次访问存储器,指令的执行速度快。 缺点:由于指令字的长度有限,限制了立即数 所能表示的数据范围,不能修改,适宜操作数固定 不变的场合。灵活性最差。一般情况下用于给某一 个寄存器或存储单元赋予一个初值或提供一个常数。 例如:Intel8086 中的立即寻址指令。
4.3 寻址方式
寻址方式:指令中如何提供操作数或操作数地址及指令地 址的方法。分为指令寻址方式和操作数寻址方式。
4.3.1 指令的寻址方式:确定本条指令地址及下条要执行指令地址的方法
1.顺序寻址方式 +1 PC 2.跳跃寻址方式 PC
地址
0 1 2
内存
LDA 200 ADD 201
INC
内存 地址 3 JMP 6 4 LDA 206 5 SUB 207 6 INC 7 LDA 20相加存入 累加器AX中
2.直接寻址(Memory direct addressing):指令的地址 码部分给出操作数的地址。 主存 直接寻址的逻辑表达式为: EA=A
… OP … A A 操作数 …
特点:只需一次访问内存,就能取到 操作数
特点: 简单、直观、硬件实现容易。只能访问固定的存储单元。 例: INTEL8086/8088指令:MOV AX,[1000H]的寻址方式为?
(1)三地址指令
操作码 A1
源操作数1
A2
源操作数2
A3
目的操作数
A1、A2、A3既可是存储单元地址,也可寄存器地址。
例如: ADD X,Y,Z 将x+y的结果存放在Z中。
指令功能: (A1) OP (A2) A3 下一条指令的地址由PC提供
(2)二地址指令
操作码 A1
目的操作数
A2
源操作数
指令功能: (A1) OP (A2) A1 下一条指令的地址由PC提供 例如:ADD X,Y 将X+Y的结果存放在A1中。
第四章 指令系统
指令(instruction): 计算机硬件能识别和执行 的操作命令(如加、减、传送、转移等),即机 器指令(Machine Instruction)。每条指令都明 确规定了计算机必须完成的一套操作。 指令系统:一台计算机或计算机系统能执行 的各种指令的集合。
指令系统既是计算机硬件设计的主要依据,又是计算机软 件设计的基础,所以,一台计算机指令系统的优劣直接影 响着计算机系统的性能。指令系统越丰富,处理功能越强。
(2)为缩小机器语言与高级语言的语义差异,便于操作 系统的优化和减轻编译程序的负担,采用了让机器指令 语义和功能向高级语言的语句靠拢,用一条功能更强的 指令代替一段程序的方法,使得指令本身功能不断增强, 指令系统规模不断加大。
3、70年代末期—随着LSI和VLSI的出现,计算机结构 愈加复杂,计算机指令系统多达几百条指令,称之为复 杂指令集计算机,简称CISC.
8
7
LDA 200
按顺序执行指令,用PC记录顺序号,顺序 号即指令在内存中的地址。
不按顺序执行指令,下条指令由本条给出,跳 转后按新的顺序执行,PC也作相应改变、跟踪 新的指令地址。条件转移或无条件转移。
4.3.2 操作数寻址方式(Addressing modes)
操作数寻址的目的:CPU根据指令约定的寻址 方式对地址字段的有关信息做出解释,以找到操 作数。 • 形式地址(D):也称偏移量,是指令地址字段中 给定的地址.
4.1 指令系统的发展与性能要求
一、指令系统的发展
1、50年代—计算机技术水平较低,使用的元件体 积大、功耗高、价格高,故硬件结构简单,指令系统 的功能也相对简单,其中只有加减及逻辑运算、数 据传送、转移等十几至几十条指令,寻址方式简单;
2、60年代后期--由于集成电路(IC) 出现,硬件结构越 加复杂,对指令系统功能的要求也越来越高,增设了 乘除运算、浮点运算、十进制运算、字符串处理等指 令,指令数目达一二百条,寻址方式趋于多样化,引入了 各种数据类型,指令系统不断扩大;
引入系列机的概念:基本指令相同、基本体系结构相同的 一系列计算机,如IBM 370系列、VAX-11系列、IBM PC 系列等。
(1)为软件兼容的需要,使已经开发的软件能够被继承, 在同一系统的计算机中,新开发机型的指令系统需要包 含先前开发的机器的所有指令和寻址方式。这样,导致 计算机指令系统越来越庞大,某些机器的指令系统包含 几百种指令,如DEC公司的VAX-11/780有18种寻址方式, 9种数据格式,303种指令。
(3)一地址指令
操作码 A
源操作数
指令功能: (AC) OP (A) AC 另一个操作数(目的操作数)隐含在累加器 AC中,操作结果存放在累加器中。
(4)零地址指令
操作码
指令中只有操作码,没有地址码,分两种:
1、不需要操作数的控制类指令,如空操作指令、停机指令。 2、隐含操作数的指令,如堆栈结构计算机运算指令等。
具体做法:在指令中有一个固定长度的字段表示 基本操作码,而对于一部分不需要某个地址码的 指令,把它们的操作码扩充到该地址字段,也称 扩展操作码技术。
例1:设某机器的指令字长为16位,包括基本操作码4 位和三个地址字段,每个地址字段长4位,其格式为: 15 12 11 8 7 4 3 0 OP A1 A2 A3
5.指令系统的性能要求:
(1) 完备性:指令系统提供的指令足够使用。指令系统丰富、 功能齐全、使用方便。 (2) 有效性:该指令系统编制的程序高效地运行。程序占空 间小,执行速度快。 (3) 规整性:包括指令的对称性、匀齐性、指令格式和数据格 式的一致性。
对称性指在指令系统中所有的数据存储单元(如寄存器、主存单元等) 被同等对待,所有的指令都可以使用各种寻址方式; 匀齐性指同一操作性质的指令可以支持各种数据结构,无须考虑数据 类型; 指令格式和数据格式的一致性指指令长度与数据长度有一定关系(指 令长度一般取字节的整数倍),以便于存取和处理。
例: 某机主存容量为 16MB,若按字节编址,其地址码为多少位? 解:16MB=224B ,所以地址码为24位.
3.寄存器寻址(Register direct addressing):指令的地 址码部分给出通用寄存器的地址,操作数就在的寄 存器中。 寄存器 EA= R
… OP … R R 操作数 …
例如:IBM 370的指令长度有16位(半字)、32位(单字)及 48位(一个半字).
2.指令格式分类
源操作数地址:指明源操作数存放处,不同指令所需源操作 数可能不同。 操作结果数地址:存放运算结果。 设计指令的地址码格式时需解决: • 一条指令中指明几个地址(与指令所涉及的操作数个数有 关 ); • 如何给出地址(显地址--地址信息明显地给出;隐地址--地址 信息依据某种事先约定, 用隐含的方式给出)。 • 地址码应选多长(与存储单元容量、编址单位大小和寻址方 式有关)。
(1)CISC特点:
• 指令系统复杂庞大,指令数目一般多达200-300条; • 寻址方式多; • 指令格式多; • 指令字长不固定; • 各种指令使用频率、执行时间相差很大; • 大多数采用微程序控制器
4.精简指令集计算机
(1)提出:20世纪70年代在美国加州大学伯克利分 校的RISC I、RISC II、斯坦福大学的MIPS机基础上诞 生了RISC。 (2)RISC目的: 希望用20%左右的简单指令来组合实现不常用的 80%指令的功能。不是简单地将指令系统简化,而 是通过简化指令系统,使计算机的结构更加简单合 理,从而提高处理速度。 (3) RISC特点:
特点:指令简单、存取速度快;缩短指令长度, 节省存储空间,提高指令执行速度。
4.间接寻址(Indirect addressing):地址码不是 操作数的地址,而是另一个地址的地址时, 称为间接寻址方式。 (1)存储器间接寻址:指令中给出存放操作数 地址的存储单元的地址,助记符为@。存放 操作数地址的存储单元称为间址单元,也叫 地址指针。EA=( D ) 主存
特点:简单规整,由于定长的操作码在指令字中所占的位数、位臵 固定,所以指令译码简单,有利于简化硬件设计。
(2) 扩展操作码:操作码长度可变,不同指令的操作码长度 不完全相同,操作码位数不固定,分散地位于指令字的不 同位臵上。 特点:可以在指令字长有限的前提下仍保持较丰富的指 令种类.但由于操作码的位数不固定且位臵分散,故增加了 指令译码与分析的难度,使硬件设计复杂化。
3.操作码格式
指令系统中的每一条指令都有一个唯一确定的操作 码,不同指令有不同的操作码。
若指令系统中有m位操作码,即指令系统中可包含 2m条指令。常见两种操作码编码方式:定长和扩展 操作码。
(1) 定长操作码:所有指令的操作码长度一致,均为n位操作码, 集中位 于指令字的固定字段中,最多能2n条指令。
CPU中通用寄存器数量较多以减少访存,一般至少32个; 为提高指令执行速度,以硬布线控制为主,不用或少用 微指令码控制; 除LOAD/STORE指令外,其他指令都以流水方式工作, 从而可在一个机器周期内完成。采用流水方式之后,下 一条指令不必等到上一条指令执行完毕才开始执行,而 是可以提前执行。 重视编译优化工作,高效地支持高级语言实现,生成优 化的机器指令代码。
简化的指令系统。具体表现为选取使用频率最高的一些简 单指令,以及很有用但不复杂的指令组成指令系统;指令 长度固定,指令格式种类少(2-3种),寻址方式种类少(2-3 种 ); 以寄存器-寄存器方式工作。只有取数/存数(LOAD/STORE) 指令访问存储器,其余指令的操作都在寄存器之间进行;
(3) RISC特点: