计算机组成原理 第9讲_指令格式教材

上传人:我** 文档编号:116912885 上传时间:2019-11-17 格式:PPT 页数:35 大小:260KB
返回 下载 相关 举报
计算机组成原理 第9讲_指令格式教材_第1页
第1页 / 共35页
计算机组成原理 第9讲_指令格式教材_第2页
第2页 / 共35页
计算机组成原理 第9讲_指令格式教材_第3页
第3页 / 共35页
计算机组成原理 第9讲_指令格式教材_第4页
第4页 / 共35页
计算机组成原理 第9讲_指令格式教材_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《计算机组成原理 第9讲_指令格式教材》由会员分享,可在线阅读,更多相关《计算机组成原理 第9讲_指令格式教材(35页珍藏版)》请在金锄头文库上搜索。

1、计算机组成原理 Principles of Computer Organization 广义双语教学课程 http:/211.64.192.109/skyclass25/ 青岛理工大学 校级精品课程 1盛建伦jlsheng 第5章 指 令 系 统 指令格式 Instruction Formats 寻址方式 Addressing modes 指令系统的设计方法 Chapter 5 Instruction Sets RISC An instruction set, or instruction set architecture (ISA), is the part of the computer

2、architecture related to programming, including the native data types, instructions, registers, addressing modes, memory architecture, interrupt and exception handling, and external I/O. 2盛建伦jlsheng 指示计算机完成某一特定操作的最基本的命令称为计算机的 “指令”Instruction。 指令是计算机硬件能直接识别并执行的命令,是用机器语言 编写程序的基础工具。 一条指令能完成某种基本操作,一台计算机有

3、几十条到几百 条不同的指令。 一台计算机的指令格式及其所有指令的集合称为该计算机的 指令系统。 指令系统表征着计算机的基本功能,是程序设计者看到的机 器的主要属性和软、硬件的主要交界面。 指令系统的设计主要包括操作类型、操作内容和指令格式的 设计。 5.2 指令格式 Instruction Formats 3盛建伦jlsheng 5.2.1 指令的一般格式 计算机是通过执行指令来处理各种数据的,为了指出数据的来源 、操作结果的去向及所执行的操作,一条指令应包含下列信息: (1) 操作的性质及功能。 (2) 操作数(Operands)的地址(Address)。 (3) 操作结果的地址。 (4)

4、下一条指令的地址。 以上信息可以归纳为两类: 一是表示该指令要完成的操作,每种操作都用一个二进制形 式的代码表示,称为操作码(Operation Code),操作码一般位于 指令字的前部。 二是描述操作数或下条指令的地址,称为地址码 (Address Code)。 4盛建伦jlsheng 指令的基本格式: 操作码地址码 指令中的地址码字段用来指出参与操作的操作数的地址,地 址码的位数决定能够直接访问的存储空间范围。 指令操作码的长度(二进制位数)决定了指令系统中完成不 同操作的指令条数。 指令是用来表示控制信息的一组二进制形式的代码,它应包 含与自动进行某个基本信息处理操作有关的内容。 指令格

5、式 Instruction Formats 5盛建伦jlsheng 指令的地址结构 地址结构是指在指令中给出几个地址。 根据地址码中所给出的地址个数,可有几种不同的指令格式: (1) 三地址指令 Three- Address Instruction 格式: OPCODEA1A2A3 其中: OPCODE操作码,A1第一操作数地址,A2第二 操作数地址 ,A3操作结果的存贮地址。 其操作表达式为:(A1)OP(A2)A3 (2) 两地址指令 Two- Address Instruction 格式: OPCODEA1A2 其操作表达式为:(A1)OP(A2)A1 目的操作数 源操作数 6盛建伦jl

6、sheng (3) 一地址指令 One- Address Instruction 格式: OPCODEA 一地址指令常被称为“单操作数指令”,实际上它有两种情况。 一是参与操作的只有一个操作数,在对地址A所指定的操作 数执行OPCODE规定的操作后,产生的结果仍存回到该地址中。 例如,加1、减1、求反、(移位)等都是单操作数指令。 二是参与操作的有两个操作数,其中一个是隐含的。 例如,一些对两个操作数进行算术逻辑运算的指令也采用这 种格式。此时,另一个操作数(目的操作数)隐含在累加器中, 指令执行后目的操作数为操作结果取代。 又如,堆栈操作指令也是有2个操作数的一地址指令,在指 令中给出了一个

7、操作数地址,另一个操作数隐含在栈顶。 7盛建伦jlsheng (4) 零地址指令 Zero- Address Instruction 格式: OPCODE 指令中只有操作码,没有操作数,所以也称无操作数指令。 零地址格式的指令有两种情况: 无需任何操作数。如空操作指令,停机指令等。 操作数的地址是隐含的。 (5) 多地址指令 某些计算机设置有一些功能很强的、用于实现成批数据处理 的指令。如字符串处理指令,向量、矩阵运算指令等。为了描述 一批数据,指令中需要多个地址来指出数据存放的首地址、长度 和下标等信息。 例如,CDC STAR-100的矩阵运算指令,其地址码部分有7个 地址字段,用以指出参

8、加运算的两个矩阵及结果的存储情况。 8盛建伦jlsheng 操作码的编码 指令操作码通常有两种编码格式。 (1) 固定长度操作码 Fixed-Length Opcode 即操作码的长度固定,且集中放在指令字的一个字段中。 这种格式有利于简化硬件设计,减少指令译码时间。 若操作码长度为K位,则最多可有 2k 条不同指令。 (2) 可变长度操作码 Variable-Length Opcode 即操作码的长度可变,且分散地放在指令字的不同字段中。 这种格式能有效地压缩程序中操作码的平均长度。但将增加指 令译码和分析的难度,使控制器的设计复杂化。 例如,操作码扩展技术, 哈夫曼编码等。 5.2.2 指

9、令操作码的扩展技术 操作码扩展技术,在指令字中用一个固定长度的字段来表示 基本操作码,对于一部分不需要某个地址码的指令,把操作码扩 充到该地址字段。既能充分利用指令字的各个字段,又能在不增 加指令长度的情况下扩展操作码的长度,以表示更多的指令。 【例1】 某计算机的字长为16位,欲设计的指令系统有零地址指 令16条,一地址指令15条,两地址指令15条及三地址指令15条, 设每个地址码字段为4位,应如何设计? OPCODEA1A2A3 10盛建伦jlsheng 【例1】 某计算机的字长为16位,欲设计的指令系统有零地址 指令16条,一地址指令15条,两地址指令15条及三地址指令15条 ,设每个地

10、址码字段为4位,应如何设计? 解1. 按固定长度操作码格式设计。 如果要求指令字长是字节的整数倍,则 零地址指令长度应该为 8位, 一地址指令长度应该为 16位, 二地址指令长度应该为 16位, 三地址指令长度应该为 24位。 地址码字段的长度 均可大于 4位。 零地址指令长度为 6位,一地址指令长度为 10位, 二地址指令长度为 14位,三地址指令长度为 18位。 26 = 64 61操作码长度为 6位 共61条指令。 11盛建伦jlsheng 【例1】 某计算机的字长为16位,欲设计的指令系统有零地 址指令16条,一地址指令15条,两地址指令15条及三地址指令 15条,设每个地址码字段为4

11、位,应如何设计? 解2. 按操作码扩展技术设计。 指令格式为: OPA1A2A3 15 12 11 8 7 4 3 0 指令格式包括1个基本操作码字段和3个地址码字段。 各字段均为4位,指令字长为16位。 要求三地址指令15条,24 1615,所以,基本操作码字段 长度为4位。地址码字段4位。 12盛建伦jlsheng 4位基本操作码,共有16个码位。其中00001110作为15条三 地址指令的操作码,1111作为扩展标志用于把操作码扩展到A1。 15条二地址指令操作码为1111000011111110。留下一个码字 11111111作为扩展标志用于把操作码扩展到A2。 15条一地址指令的操作

12、码为111111110000111111111110。码 字111111111111作为扩展标志用于把操作码扩展到A3。 16条零地址指令的操作码为11111111111100001111111111111111 OPA1A2A3 15 12 11 8 7 4 3 0 13盛建伦jlsheng 此外还有其它的扩展方法。例如,可以形成15条三地址指 令,14条两地址指令,31条一地址指令和16条零地址指令。 本例所用的操作码扩展方法称为15/15/15法。 它是指在4位二进制表示的16个码点中,用15个来表示最常 用指令的操作码,剩下的一个码字用于把操作码扩展到下一个 4位。而下一个4位表示的1

13、6个码字也按同样的原则处理和扩展 。 作为今天的作业题 14盛建伦jlsheng 5.2.3 指令长度与数据字长的关系 指令的长度(指令字长 Instruction Length )主要取决于操 作码的长度、操作数地址的长度和操作数地址的个数。 指令的长度有定长格式的,也有变长格式的。 当操作数地址是主存储器的直接地址时,其地址码的位数 就很长。当操作数地址是寄存器号时,地址码的位数就很短。 所以,在两地址和多地址指令中通常只有一个操作数地址是存 储器直接地址。 为了充分利用存储空间,指令的长度通常为字节的整数倍。 指令的长度与机器的字长没有固定的关系,既可以大于或等于 机器的字长,也可以小于

14、机器的字长。指令的长度大于机器的字 长时称为长格式指令,它需要几个连续字单元或字单元加字节单 元来存储。指令的长度小于或等于机器的字长时,称为短格式指 令,它只需一个字单元或一至几个连续的字节单元来存储。 15 存储器按:字编址字节编址位编址 数据在存储器中的存放方式 字地址 为 低字节 地址 字地址 为 高字节 地址 3 76 21 54 0 字地址 0 4 低字节 0 45 12 67 3 字地址 0 4 高字节 低字节在前高字节在前 地址 000 001 010 011 100 101 110 111 数据 AB CD EF GH JK LM NO PQ 存储器内容 为 GHEFCDAB

15、 PQNOLMJK 存储器内容 为 ABCDEFGH JKLMNOPQ 16盛建伦jlsheng 地址(十进制) 0 4 8 12 16 20 24 28 32 36 双字 双字(地址32) 双字 双字(地址24) 半字(地址20)半字(地址22) 半字(地址16)半字(地址18) 字节(地址 8)字节(地址 9) 字节(地址10 ) 字节(地址11 ) 字(地址 4) 字(地址 0) 字节(地址14 ) 字节(地址15 ) 字节(地址13)字节(地址12) 边界对准 地址(十进制) 0 4 8 字节(地址7) 字节(地址6) 字( 地址2 ) 半字( 地址10 )半字( 地址8 ) 半字(

16、地址0 ) 字( 地址4 ) 边界未对准 存储器中的数据存放(存储字长为 32 位) 5.4 指令类型 指令的操作类型按功能可分成算术逻辑运算、数据传送、程 序控制、输入输出等类型。 1. 算术逻辑运算 Arithmetic & Logical 一些低档的微型机只有定点加减运算指令、求补指令、比较 指令、加1减1指令等算术运算指令。较高档的机器还有十进制运 算指令、定点乘除指令、浮点运算指令等。 一些大型机、巨型机还设有向量运算指令,可以直接对整个 向量Vector或矩阵Array进行求和、求积等运算。 逻辑运算类指令包括逻辑与、或、非、异或和测试等。有些 机器还有位操作Bit Manipulation、位测试等指令。 算术逻辑运算指令都影响状态标志位Flag(程序状态字PSW) 18盛建伦jlsheng 2. 移位操作 Shift 移位有算术移位、逻辑移位和循环移位三种。可以

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号