计算机组成原理第9讲指令格式_第1页
计算机组成原理第9讲指令格式_第2页
计算机组成原理第9讲指令格式_第3页
计算机组成原理第9讲指令格式_第4页
计算机组成原理第9讲指令格式_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

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

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

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

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

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

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

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

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

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

12、1111110000111111111110。码字111111111111作为扩展标志用于把操作码扩展到A3。16条零地址指令的操作码为11111111111100001111111111111111操作码扩展标志三地址指令000011101111二地址指令111100001111111011111111一地址指令111111110000111111111110111111111111零地址指令11111111111100001111111111111111OPA1A2A315 12 11 8 7 4 3 0盛建伦14 此外还有其它的扩展方法。例如,可以形成15条三地址指令,14条两地址指令,

13、31条一地址指令和16条零地址指令。本例所用的操作码扩展方法称为15/15/15法。 它是指在4位二进制表示的16个码点中,用15个来表示最常用指令的操作码,剩下的一个码字用于把操作码扩展到下一个 4位。而下一个4位表示的16个码字也按同样的原则处理和扩展。作为今天的作业题155.2.3 指令长度与数据字长的关系指令长度与数据字长的关系 指令指令的长度(指令字长长度(指令字长 Instruction Length )主要取决于操操作码作码的长度长度、操作数地址操作数地址的长度长度和操作数地址操作数地址的个数个数。指令的长度有定长格式定长格式的,也有变长格式变长格式的。 当操作数地址是主存储器的

14、直接地址时,其地址码的位数就很长。当操作数地址是寄存器号时,地址码的位数就很短。所以,在两地址和多地址指令中通常只有一个操作数地址是存储器直接地址。为了充分利用存储空间,指令指令的长度长度通常为字节字节的整数倍整数倍。 指令指令的长度长度与机器机器的字长没有固定字长没有固定的关系关系,既可以大于或等于机器的字长,也可以小于机器的字长。指令的长度大于机器的字长时称为长格式指令长格式指令,它需要几个连续字单元或字单元加字节单元来存储。指令的长度小于或等于机器的字长时,称为短格式指短格式指令令,它只需一个字单元或一至几个连续的字节单元来存储。盛建伦16存储器按:字编址存储器按:字编址字节编址字节编址

15、位编址数据数据在存储器中存储器中的存放方式存放方式字地址字地址 为为 低字节低字节 地址地址字地址字地址 为为 高字节高字节 地址地址37621540字地址字地址04低字节低字节04512673字地址字地址04高字节高字节低字节在前高字节在前地址000001010011100101110111数据ABCDEFGHJKLMNOPQ存储器内容存储器内容 为为 GHEFCDABPQNOLMJK存储器内容存储器内容 为为 ABCDEFGHJKLMNOPQ地址地址(十进制) 0 4 812162024283236双字双字双字双字(地址32)双字双字双字双字(地址24)半字半字(地址20)半字半字(地址2

16、2)半字半字(地址16)半字半字(地址18)字节字节(地址 8)字节字节(地址 9)字节字节(地址10)字节字节(地址11)字字(地址 4)字字(地址 0)字节字节(地址14) 字节字节(地址15)字节字节(地址13)字节字节(地址12)边界对准边界对准地址地址(十进制)048字节字节(地址7) 字节字节(地址6)字字( 地址2 )半字半字( 地址10 )半字半字( 地址8 )半字半字( 地址0 )字字( 地址4 )边界未对准边界未对准存储器中存储器中的数据存放数据存放(存储字长为 32 位)盛建伦185.4 指令类型指令类型 指令的操作类型按功能可分成算术逻辑运算、数据传送、程指令的操作类型

17、按功能可分成算术逻辑运算、数据传送、程序控制、输入输出等类型。序控制、输入输出等类型。1. 算术逻辑运算算术逻辑运算 Arithmetic & Logical 一些低档的微型机只有定点加减运算指令、求补指令、比较一些低档的微型机只有定点加减运算指令、求补指令、比较指令、加指令、加1减减1指令等算术运算指令。较高档的机器还有十进制运指令等算术运算指令。较高档的机器还有十进制运算指令、定点乘除指令、浮点运算指令等。算指令、定点乘除指令、浮点运算指令等。 一些大型机、巨型机还设有向量运算指令,可以直接对整个一些大型机、巨型机还设有向量运算指令,可以直接对整个向量向量Vector或矩阵或矩阵A

18、rray进行求和、求积等运算。进行求和、求积等运算。 逻辑运算类指令包括逻辑与、或、非、异或和测试等。有些逻辑运算类指令包括逻辑与、或、非、异或和测试等。有些机器还有位操作机器还有位操作Bit Manipulation、位测试等指令。、位测试等指令。算术逻辑运算指令都影响状态标志位算术逻辑运算指令都影响状态标志位Flag(程序状态字程序状态字PSW)盛建伦192. 移位操作移位操作 Shift 移位有算术移位、逻辑移位和循环移位三种。可以实现对操移位有算术移位、逻辑移位和循环移位三种。可以实现对操作数左移或右移一位或多位。作数左移或右移一位或多位。 循环移位循环移位Rotate有带进位位的大循

19、环和不带进位位的小循环有带进位位的大循环和不带进位位的小循环两种,常用于实现循环式控制、压缩两种,常用于实现循环式控制、压缩BCD码高低字位互换及多倍码高低字位互换及多倍字长的移位等。字长的移位等。6336CyCyCyCy交换后交换后盛建伦203. 数据传送数据传送 Data Transfer 在程序中使用最多在程序中使用最多的是数据传送指令是数据传送指令。这类指令这类指令的功能是实现功能是实现寄存器与寄存器寄存器与寄存器,寄存器与存储单元以及存储单元与存储单元之寄存器与存储单元以及存储单元与存储单元之间间的数据传送数据传送,包括对数据包括对数据的读读(取数load)和写和写(存数store)

20、。 数据传送时,数据从源地址数据传送时,数据从源地址Source传送到目的地址传送到目的地址Destination,源地址中的数据保持不变。源地址中的数据保持不变。 有些机器设置有数据块传送指令,可一次把多达有些机器设置有数据块传送指令,可一次把多达64K的数据的数据从一个存储区传送到另一个存储区。从一个存储区传送到另一个存储区。堆栈的压入堆栈的压入Push和弹出和弹出Pop指令也属于数据传送指令。指令也属于数据传送指令。数据交换指令则完成源操作数与目的操作数的互换。数据交换指令则完成源操作数与目的操作数的互换。盛建伦214. 转移(程序控制转移(程序控制 Program Control )

21、这类操作主要用于控制程序的流向,包括停机、无条件转移这类操作主要用于控制程序的流向,包括停机、无条件转移Jump、条件转移、子程序调用与返回、中断和陷井指令等。条件转移、子程序调用与返回、中断和陷井指令等。 条件转移条件转移Conditional Branch是根据对某些条件测试的结果是根据对某些条件测试的结果(通常是前面执行的算术逻辑运算指令对状态标志位的影响通常是前面执行的算术逻辑运算指令对状态标志位的影响)决定是否发生转移决定是否发生转移,若条件满足则转移若条件满足则转移,否则顺序执行下一条否则顺序执行下一条指令指令。 转移还有绝对转移和相对转移的区别。转移还有绝对转移和相对转移的区别。

22、 绝对转移是转移到一个给定的目标地址绝对转移是转移到一个给定的目标地址(在整个存储器范在整个存储器范围内围内)。 相对转移是相对当前地址相对转移是相对当前地址(程序计数器程序计数器PC内容内容)向前或向向前或向后转移一个位移量的范围后转移一个位移量的范围(小范围小范围)。盛建伦22 子程序调用子程序调用Subroutine Call与返回与返回Subroutine Return指令也有指令也有条件调用条件调用/条件返回和无条件调用条件返回和无条件调用/无条件返回的区别。无条件返回的区别。中断指令设置中断类型,开放或禁止中断中断指令设置中断类型,开放或禁止中断Interrupt等。等。 陷井陷井

23、Trap是一种异常中断,其目的不是为了请求是一种异常中断,其目的不是为了请求CPU正常正常处理中断,而是为了把发生的各种事件通知处理中断,而是为了把发生的各种事件通知CPU,并根据故,并根据故障情况转入相应的故障处理程序。陷井指令一般不提供给用户障情况转入相应的故障处理程序。陷井指令一般不提供给用户使用。使用。以上四类操作是各种计算机都有的最基本的指令操作。以上四类操作是各种计算机都有的最基本的指令操作。盛建伦235. 输入输出输入输出 Input/ Output 输入输出指令用来实现主机与外设间的各类信息交换,如输入输出指令用来实现主机与外设间的各类信息交换,如数据的输入和输出、向外设发出的

24、控制命令、检测外设的工作数据的输入和输出、向外设发出的控制命令、检测外设的工作状态等。由于状态等。由于I/O端口的数目远少于存储单元数,故此类指令的端口的数目远少于存储单元数,故此类指令的地址码较短。地址码较短。 有些计算机采用内存和外设(接口)统一编址的方法,把有些计算机采用内存和外设(接口)统一编址的方法,把外设看作内存单元,所有能对内存单元进行操作的指令均可对外设看作内存单元,所有能对内存单元进行操作的指令均可对外设端口进行操作(包括算术逻辑运算)。这样的计算机就没外设端口进行操作(包括算术逻辑运算)。这样的计算机就没有输入输出指令。有输入输出指令。6字符串处理字符串处理 字符串处理指令

25、实现对字符串字符串处理指令实现对字符串String的非数值处理,包括:的非数值处理,包括:字符串的传送、字符串比较、字符串查询、字符串转换等。字符串的传送、字符串比较、字符串查询、字符串转换等。盛建伦247特权指令特权指令 特权指令是用于系统资源分配和管理的指令。例如,检测用特权指令是用于系统资源分配和管理的指令。例如,检测用户的访问权限,修改段表、页表,改变系统的工作模式,任务的户的访问权限,修改段表、页表,改变系统的工作模式,任务的创建和切换等。创建和切换等。8多处理机指令多处理机指令 Multiprocessor Instruction多处理机指令是专门为支持多处理机系统而设置的指令。多

26、处理机指令是专门为支持多处理机系统而设置的指令。9多媒体指令多媒体指令 Multimedia Instruction 多媒体指令是专门为处理多媒体数据而设置的指令。多媒体指令是专门为处理多媒体数据而设置的指令。例如,例如,Pentium 处理器的处理器的MMX指令。指令。特权指令只能用于操作系统和其他系统软件。特权指令只能用于操作系统和其他系统软件。盛建伦255.4.3 指令系统的兼容性指令系统的兼容性 Compatibility从从20世纪世纪60年代的年代的IBM360大型机开始,出现了系列机。大型机开始,出现了系列机。 在一个系列内有不同档次的机型。系列机中的高中低档机都在一个系列内有不

27、同档次的机型。系列机中的高中低档机都具有相同的系统结构,相同的指令系统。从此出现了具有相同的系统结构,相同的指令系统。从此出现了“兼容兼容” Compatible 。盛建伦26计算机组成原理设计性作业课题课题2 指令系统设计指令系统设计 设计一个简单的(没有中断功能)16位RISC定点处理器的指令系统。 指令系统设计的任务包括设计:指令功能、指令格式、寻址方式、全部指令的助记符、指令编码等。 试分析一个简单的计算机至少需要哪些指令就能够完成最基本的运算?对于RISC机,适当增加一些功能比较强的更有用的指令有利于编程。提示:指令系统设计与寄存器结构、标志寄存器、等有关。可以参考“定点运算器设计”

28、的通用寄存器组、标志寄存器。第6周周末完成盛建伦27实验课题实验课题1 ALU设计设计实验内容:实验内容: 按照题目要求设计一个16位ALU的逻辑,决定外部的端口(名称、有效电平)和内部各元件的连接,画出系统框图和逻辑图,设计仿真数据,用VHDL编程和仿真。 一、主要元件设计一、主要元件设计 14位并行进位加法器 功能要求:能完成两个4位二进制数(补码和无符号数)的加法和逻辑加运算。内部有并行进位链。可以扩展成多位组。 2组间并行进位链逻辑 功能要求:4个4位小组的组间并行进位链逻辑。 将组间并行进位链逻辑与4个4位超前进位加法器连接可以构成16位超前进位加法器。可参考74182的逻辑函数。盛

29、建伦28实验课题实验课题1 ALU设计设计 一、主要元件设计一、主要元件设计 3函数发生器 功能要求:能把输入的两个16位二进制数进行变换,与后面的16位超前进位加法器配合完成两个16位二进制数(补码和无符号数)的8种算术运算(有些运算考虑低位来的进位)和8种逻辑运算。 提示:ALU的功能参考数字逻辑课程的“多功能加法器”实验。 二、顶层设计二、顶层设计 用层次结构设计的方法设计一个用层次结构设计的方法设计一个16位位ALU。内部包括4个4位位并行进位加法器、组间并行进位链、并行进位加法器、组间并行进位链、16位函数发生器位函数发生器等。 功能要求:能完成两个功能要求:能完成两个16位二进制数

30、以及低位来的进位的位二进制数以及低位来的进位的8种种算术运算和算术运算和8种逻辑运算。种逻辑运算。可参考74181。 盛建伦29实验课题实验课题1 ALU设计设计 三、仿真三、仿真 设计仿真波形数据,要考虑到所有可能的情况。在实验报告中必须清楚说明仿真波形数据是怎样设计的。 四、深入的课题 上面设计的ALU还没有标志寄存器,如果想为ALU增加标志寄存器,应该怎样设计?标志位是怎样产生的?盛建伦305 - 1, 4, 5, 6HomeworkInstructions per second - Most consumers pick a computer architecture (normall

31、y Intel IA32 architecture) to be able to run a large base of pre-existing pre-compiled software. Being relatively uninformed on computer benchmarks, some of them pick a particular CPU based on operating frequency). Some system designers building parallel computers pick CPUs based on the speed per dollar.Computer programmers who program directly in assembly language want a CPU to support a full featured instruction set. 31七、七、 (共(共7分)分) 判断题判断题(请在正确的句子前写(请在正确的句子前写T,错误的句子前写,错误的句子前写F)( )1零的原码表示形式不是唯一的。零的原码表示形式不是唯一的。( )2两个符号相同的浮点数相加后必须进行一次右规。两个符号相同的浮点数相加后必须进行一次右

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论