计算机原理 第四章指令系统
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
2. 算术运算指令。 对数据进行算术操作,包括加法ADD、减法SUB、乘 法MULT、除法
DIV、求反NOT、求补COM、算术移位SHA等。
3. 逻辑运算指令。 对数据进行逻辑操作,包括按位与AND、按位 或OR、逻辑移位SHL和数据转换等。
4. 程序控制指令。 用以控制程序执行的顺序和方向。主要包括转移 指令、循环控制指令、子程序调用指令、返回指令、 程序中断指令等。 5. 输入输出指令。 用于启动外设、检查测试外设的工作状态、读 写外设的数据。有些计算机用专门的输入输出操 作指令,如Intel X86指令中IN、OUT指令。
地址/立即数(16位长)
三、操作码格式
操作码指定机器执行什么样的操作(如:加法,传送等),操 作码位数越多,所能表示的操作种类也就越多。 常见的操作码格式有以下两种编码方式。
1. 定长操作码,地址码变长
操作码的长度固定,占指令最前面几位,称操作码字段。 后面 有可能跟一个地址信息,或二个地址信息。 例如 “ADD”, 加法指令,后面需要两个地址提供“加数”与“被加 数” ; “INC”, 加1指令, 只需一个地址信息,指令就短。 优点: 这种方式的操作码字段规整,有利于简化操作码译码器的设计, 广泛用于指令字长较长的大、中型及超级小型机中。例如当年的IBM370 大型机指令系统,操作码固定在指令最高8位,早前的Intel 8086也是高8 位为操作码。
例: ADD表示加法, SUB表示减法; MOV表示数据传送等 地址码中常用R表示寄存 器,A表示存储单元。
如:ADD R1,A
,
(R1)+(A) →A
计算机中所有指令的助记符的集合以及使用规则构成了汇编语言。 用汇编语言编写的程序可以比较简单地转换成机器指令代码,这种转换 由汇编程序完成。汇编语言是面向计算机硬件的语言,通过它可以了解 计算机的硬件结构。
1、若采用寄存器间址方式读取操作数,指定寄存器R1的内容为3004H,则操 作数是多少? 2、若采用存储器间接寻址读取操作数,指令中给出的地址是3003H,,则操 作数是多少? 3、若采用变址寻址方式X(R2)读取操作数,指令中给出形式地址为2H,变 址寄存器R2内容为3000H,则操作数是多少?
§4.3 指令类型
3. CPU中采用大量的通用寄存器。一般不少于32个,多则几百。
4. 指令采用流水线工作方式 。采用流水线技术可使每一时刻都有多条指令重 叠执行。尽管一条指令的执行仍需要几个周期时间,但从平均效应来看,每 条指令的周期数大大减少,每条指令只需一个周期。只有LOAD和STORE两 条指令不采用流水线方式。
它是按照一定格式编制的二进制代码,所以机器指令由二进制 代码来表示。 操作码OP指明该指令完成何种操作;地址码AD指明操作数的 地址信息。
历史上地址码AD部分出现过四地址指令、三地址指令、 二地址指令和一地址指令系统,目前一般采用的是二地址 指令系统。
操作码OP
源操作数地址A1
目的操作数地址A2
(A1) OP (A2) →A2
15条
4章
二地址指令范围
15条
15条 16条
指 一地址指令范围 令 系 零地址指令范围 统
信息工程学院
总指令条数:15+15+15+16=61
首页
指令扩展举例 2
计 算 机 组 成 原 理
16 位指令字
xxxx
0000 1101
1110 1110 1111 1111 1111 1111 1111 1111
二、指令字长
指令字长=操作码长度+地址码长度(源操作数地址长度与目的操 作数地址长度) 指令字长通常设计成字节(八位二进制)的整数倍。
指令字长长,优点是所能表示的操作码信息和地址码信 息越丰富,可使指令功能丰富。缺点是占存储空间就大,读 取指令时间就增加。 指令长度一般不固定,从一字节到十几个字节不等,多 数指令为短指令,少数复杂指令为长指令。固定长度的指令 现在很少采用。
6. 相对寻址方式
操作数的地址是程序计数器PC的值加上一个偏移量,这个偏移 量在指令地址码中给出。因为访问的数据位置相对于指令的位置, 因此称为相对寻址方式。
例:ADD 100(PC),R1
源操作数在PC+100的内存单元中。
7. 变址寻址方式
操作数的地址是变址寄存器内容与形式地址(地址数值)相加, 变址寄存器由指令给出,形式地址也由指令给出。 完整地址 这种寻址方式适合于 对一组数据进行访问。 只要改变变址寄存器 的值,该指令就可形 成另一个数据元素的 地址。
xxxx xxxx xxxx
A1 A1
0000 1111 0000 1110 1111 1111 1111 1111
三地址指令范围
A2 A2
A1 A1 A1 A1 0000 1110 1111 1111
A3 A3
A2 A2 A2 A2 A1 A1 0000 1111
14条
二地址指令范围
4章
31条
76
指 令 系 统
一地址指令范围
零地址指令范围
15条
16条
信息工程学院
首页
操作码扩展技术是一种重要的指令优化技术,它可以缩短指令的 平均长度,并且增加指令字表示的操作信息。这种方式多用于微、小 型机上。
四、指令助记符
用一些比较容易记忆的文字符号来表示指令中各种信息, 即操作码和操作数地址,这些符号称为助记符。
一台计算机指令系统从二三十条指令到几百条指令不等,指 令少计算机的功能、速度等指标就弱,指令多则代表CPU的硬 件投入大,相应的指标就高。无论指令系统的规模如何,都应具 备基本指令类型功能,常见指令类型包括:
1. 数据传送指令。
将数据在主存与CPU寄存器之间进行传输,即数据从一个地方传送到 另一个地方。 汇编助记符有MOV或LD两套常用符号。 例MOV R1,R2, (R1) →R2 LD R1,(R2) (R1) →((R2)) 。
例1: DEC公司的PDP – 11是16位小型机中的重要代表。它的基 本指令字长16位,占主存两个字节,但有些指令之后紧跟一个 16位的地址或立即数,或是紧跟两个16位地址或立即数,指令 长度变为32位或48位。其格式如下:
(16位长)指令
(16位长)指令
地址/立即数(16位长)
(16位长)指令
地址/立即数(16位长)
RISC的主要技术内容: 1. 简化的指令系统。表现在指令条数较少,基本寻址方式少,指令格式 少,指令字长度一致。指令总数大都不超过100条,寻址方式一般限制 在2~3种,指令格式一般限制在2~3种, 长度为32位。
2. 以寄存器间的数据处理为主。只有LOAD取数和STORE存数两条指令访问内 存。
位移量
例:ADD R2,1000(R0) ,1000(R0)就是变址寻址方式,R0寄 存器充当变址寄存器,操作数地址等于1000加上R0的内容。
8. 基址寻址方式
操作数的地址是基址寄存器内容与形式地址(地址数值) 相加得到内存地址。基址寄存器由指令给出,形式地址也由 指令给出。
位移量 OP RB D 加 法 器
数据
1A00H 1B00H 1C00H
例如:
ADD
2000,R2
(2000)+(R2) →R2
3. 寄存器寻址方式
操作数在指定的寄存器中,寄存器号在指令中给出。
R0 R1 R2 R3 例如: ADD 2000,R2 (2000)+(R2) →R2 1000H
2000H 3A00H 3C00H
和直接寻址方式比有两个优点: 1)读取操作数的速度要比访问主存快得多; 2)占指令字的位数较少,从而有效地缩短了指令长度。
一、CISC
CISC结构是传统的计算机指令系统,最少百条以上,多则几百条指令。 指令越丰富,计算机功能越强,但相应地指令格式越来越复杂,指 令越变越长 ,执行时间也越来越长。
二、RISC
人们对程序在机器上的运行情况作大量分析后,惊奇地发现, 机器所执行的指令竟然有80%以上是简单指令,复杂指令只占 很小比例。根据实际情况人们提出用一套精简的指令系统取代 复杂指令系统,使机器结构简化,提高机器的性能价格比。于 是70年代开始了RISC技术的研究。