1 / 89

主要内容 :

主要内容 :. 何为指令系统 ? 指令格式有哪些 ? 如何扩充 ? 数据如何表示 ? 有哪些寻址方式(编址方式) ? 了解一些常见的指令类型 精简指令系统计算机( RISC ) 和复杂指令系统计算机( CISC ) 了解一些常用的汇编语句. 本章教学目的及要求. 理解指令的格式及指令操作码的扩展技术 掌握常用的寻址方式 了解常见的指令类型 了解 RISC 和 CISC 的特点. 1 、指令系统. 指令: 计算机执行某种操作的命令。

troy-curtis
Download Presentation

主要内容 :

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 主要内容: • 何为指令系统? • 指令格式有哪些?如何扩充? • 数据如何表示? • 有哪些寻址方式(编址方式)? • 了解一些常见的指令类型 • 精简指令系统计算机(RISC) 和复杂指令系统计算机(CISC) • 了解一些常用的汇编语句

  2. 本章教学目的及要求 • 理解指令的格式及指令操作码的扩展技术 • 掌握常用的寻址方式 • 了解常见的指令类型 • 了解RISC和CISC的特点

  3. 1、指令系统 • 指令:计算机执行某种操作的命令。 从计算机组成的层次结构来说,计算机的指令有微指令、机器指令和宏指令。微指令是微程序级的命令,它属于硬件;宏指令是由若干条机器指令组成的软件指令,它属于软件;而机器指令则介于微指令与宏指令之间。 • 指令系统:一台计算机所有的指令的集合。 指令系统的规模决定了机器规模的大小,指令系统是进行计算机逻辑设计和编制程序的基本依据。它直接说明了这台计算机的功能。一般来说不同类型CPU的指令系统是不能混用与兼容的,但同一系列的CPU一般升级后指令都有扩充,并可兼容。

  4. 操作码 地址码 2、指令格式 • 操作码:是指明指令操作性质的命令码。它提供指令的操作控制信息。 • 地址码:说明操作数存放的地址,有时则就是操作数本身。 • 计算机的指令格式与机器的字长、存储器的容量及指令的功能密切相关。 指令基本格式 一个 一个或几个

  5. 有关操作码和地址码的说明: • 1 .操作码 (1)每条指令都要求它的操作码必须是独一无二的位组合。 (2)指令系统中指令的个数N与操作码的位数n,必须满足关系式: N≤2n • 2.操作数地址码(主存或虚存;CPU寄存器;I/O设备) (1)地址码:用来描述该指令的操作对象。 (2)指令字长=操作码的位数+(操作数地址个数)*(操作数地址码位数)

  6. 几种常见的指令格式: • 零地址指令格式 • 一地址指令格式 • 二地址指令格式 • 三地址指令格式 • 多地址指令格式 • 多用于大中型机, 一般用于成批数据的指令,如字符串处理指令、向量、矩阵运算指令等。这里不再赘述。

  7. 零地址指令格式 • 这是一种没有操作数地址部分的指令格式。 • 这种指令有两种可能: (1)无需任何操作数。如空操作指令,停机指令等。 (2)所需的操作数是默认的:堆栈。 操作码OP

  8. 操作码OP A1 一地址指令格式 • (1)指令中给出的一个地址即是操作数的地址,又是操作结果的存储地址。如加1、减1、移位等单操作数指令。 • (2)在某些计算机中,指令中提供的一个地址提供一个操作数,另一个操作数是由机内硬件寄存器“隐含”地自动提供的。一般为累加器AC

  9. 操作码OP A1 A2 二地址指令格式 • (1) 源地址A2,目的地址A1 • (2) 操作:将源点A2与终点A2的操作数进行操作码规定的操作后,将结果存入终点地址A2。 • 例如: ADD R0,R1表示将R0寄存器的内容和R1寄存器的内容相加以后,将结果存入R0寄存器中。

  10. 操作码OP A2 A1 A3 三地址指令格式 • 其操作是对A1、A2指出的两个操作数进行操作码所规定的操作,并将结果存入A3中。 • 例如: ADD X Y Z 含义为 (X)+(Y)Z 即X单元内容加上Y单元内容,结果送Z单元中。

  11. 指令格式优化 • 优化原由: 指令字长要短,以得到时间和空间上的优势;而指令字长必须有足够的长度。(矛盾!) • 原则: 在不减少指令数量的前提下,尽可能缩短指令字的长度。 • 指令字长一般应是机器字符长度的整数倍以便存储系统的管理。若机器中字长是L位,则指令字长最好是0.5L,L,2L,4L,8L等。

  12. 优化方法: • 1、尽可能减少地址码的个数 尽可能采用单地址指令格式;操作数和运算结果尽可能存于CPU或通用寄存器中。 • 2、操作码长度的缩短 操作码有两种编码格式: 固定格式:操作码长度固定,且集中放在指令字的一个字段中; 可变格式:即操作码长度可变,且分散地放在指令字的不同字段中。

  13. 扩展操作码(可变格式) • 1、要点: (1) 操作码位数随地址码个数变化采取可变长度的类型; (2) 各指令间指令码一定不重复; (3) 根据需要灵活变通。 • 一个重要的原则是使用频率高的指令应分配较短的操作码,使用频率低的指令分配较长的操作码。

  14. 操作码OP 操作码OP A2 A2 A1 A1 A3 A3 • 2、比较 假设一台计算机指令字长12位,操作码与地址码都为3位,如图所示。 (1) 方法一:固定格式,则最多可以设计8条三地址指令。 3位 3位 3位 3位

  15. 2) 方法二:扩展操作码 指令字长为12位,每个地址码为3位,采用扩展操作码的方式,设计4条三地址指令、255条一地址指令和8条零地址指令。 • 4条三地址指令 000 *** *** ***~011 *** *** *** • 255条一地址指令 100 000 000 ***~111 111 110 *** • 8条零地址指令 111 111 111 000~111 111 111 111 • 操作码平均长度为 (4*3+255*9+8*12)/(4+255+8)=9

  16. 操作码(4位) A1(6位) A2(6位) 解:设单操作数指令最多可以有x条,则: 无操作数指令L=[( -K)· - x] · ∴x=( - K)· -L/ 例:某指令系统指令长16位,每个操作数的地址码长6位,指令分为无操作数、单操作数和双操作数三类。若双操作数指令有K条,无操作数指令有L条,问单操作数指令最多可能有多少条?

  17. 数据在内存中的存放格式 • 计算机中基本数据有逻辑数、定点数、无符号数、浮点数、字符数及数组等。 • 目前微机所用的数据(字)长度一般为32位, 4个字节。内存地址按字节编址。 • 计算机指令系统可支持对字节、半字、字、双字的运算,有的还支持位操作。 • 为便于硬件的实现,一般要求多字节数据采用对准数据边界的方式储存。不合要求则填充空白字节(无操作)代替。

  18. 对准边界(下图所示)格式存储数据: 4字节32位存储器 地址 0 4 8 12 16 20 字地址0 字地址4 半字地址10 半字地址8 半字地址12 字节地址15 字节地址14 字节地址19 字节地址18 字节地址17 字节地址16 半字地址22 字节地址21 字节地址20 在数据对准边界存储的计算机中,对于以二进制表示的存储地址来说,半字地址的最低位、字地址的最低两位和双字地址的最低三位恒为零。

  19. 有的计算机不要求对准边界存储数据,如下图所示,但这种方式增加硬件的复杂程度,并且有可能导致访问次数增加。有的计算机不要求对准边界存储数据,如下图所示,但这种方式增加硬件的复杂程度,并且有可能导致访问次数增加。 32位、4个字节 地址 半字的一半 字节 半字 0 4 一字的3/4 半字另一半 半字 一字的1/4 8

  20. 寻址方式 寻址方式(又称编址方式)指的是确定本条指令的数据地址及下一条要执行的指令地址的方法。 不同的计算机系统,使用数目和功能不同的寻址方式,其实现的复杂程度和运行性能各不相同。有的计算机寻址方式较少,而有些计算机采用多种寻址方式。通常需要在指令中为每一个操作数专设一个地址字段,用来表示数据的来源或去向的地址。在指令中给出的操作数的地址被称为形式地址,使用形式地址信息并按一定的规则计算出来的一个数值才是数据(或指令)的实际地址。在指令的操作数地址字段,可能要指出: ① 运算器中的累加器的编号或专用寄存器名称(编号) ② 输入/输出指令中用到的 I/O 设备的入出端口地址 ③ 内存储器的一个存储单元(或一 I/O设备 )的地址 有多种 基本寻址方式 和某些 符合寻址方式,简介如下:

  21. 操作数寻址方式 1. 隐含方式。如ADD A中的累加器 2. 寄存器方式。 指令 计算机的CPU中一般设置有一定数量的通用寄存器,用于存放操作数、操作数地址或中间结果。假如指令地址码字段给出某一通用寄存器的编号(地址),且所需的操作数就在这一寄存器中,这就是寄存器寻址方式。 R 操作码 寄存器 操作数 寄存器寻址

  22. 返回 3、立即数寻址 所需的一个操作数在指令的地址码部分直接给出。 则 Num 即为操作数的值。 适用于操作数固定的情况,提高了指令的执行速度, 当该立即数的值限定为较小值(占用位数少)时,可在第一个指令字中直接给出,否则可在第二个指令字中给出。

  23. 返回 4. 直接寻址。 在指令的地址码字段直接给出所需的操作数(或指令) 在存储器中的地址。 内存储器 操作数 则 Addr 为操作数在存储器中的地址。 或转移指令等用到的指令地址。 例:Addr = 5718H,这里的H 表示 5718 是 16 进制的值 [5718H ]= 3,内存储器 5718 单元中的内容为 3, 则操作数就是这里的 3,或下一条指令的地址为 3。 常用于读写内存的指令或转移等指令中。

  24. 操作数寻址方式(续) 5. 间接寻址。 寄存器间址 存储器间址 指令 指令 A 操作码 R 操作码 存储器 存储器 寄存器 A ' A 操作数 操作数 存储器间接寻址 寄存器间接寻址

  25. 操作数寻址方式(续) 6. 相对寻址 指令 A 操作码 存储器 PC 操作数 相对寻址

  26. 二、操作数寻址方式(续) 7. 变址和基址寻址 指令 R A 操作码 存储器 寄存器 I 操作数 变址寻址 变址寻址:便于数组访问 基址寻址:可扩大寻址范围,可实现程序浮动

  27. 返回 变址寻址 操作数的地址由指定的变址寄存器(由Reg指定)的内容和指令中的地址码(Disp)相加得到。 存储器 通用寄存器 加法器 操作数 例:Disp=18H,Reg=5,(R5)=5700H 则操作数地址 = 5718H 便于对数组元素进行处理, 是计算机中常用的一种寻址方式。

  28. 返回 基址寻址 在计算机中设置一个专用的基址寄存器,操作数(或指令)的地址通过基址寄存器的内容和指令中的地址码相加得到。 存储器 基址寄存器 加法器 例:Disp= H18,[BS]= H5700 则操作数地址=H5718 操作数 主要用于为程序或数据分配存储区,对多道程序或浮动程序很有用,解决了程序在存储器中的定位和扩大寻址空间等问题。

  29. 二、操作数寻址方式(续) 8. 复合寻址

  30. 8、堆栈结构及其寻址方式 1、堆栈是一种数据结构。它是压入和弹出都在栈顶的一端进行的结构;特点:“后进先出”。 2、分类:1)硬堆栈:由CPU内部设置的专用寄存器构成;(速度快,容量小);2)软堆栈:在主存储器中划分的专门用于堆栈的一片区域。(容量大,速度慢) 3、堆栈结构在计算机中的作用 (a)    具有堆栈结构的机器使用零地址指令,这使得指令长度短,指令结构简单,机器硬件简化。 (b)   实现程序调用,子程序嵌套调用和递归调用。 (c)    对于“中断”技术,堆栈更是不可缺少的,保存“断点”和“现场”。

  31. 4、软堆栈的操作(SP始终指向栈顶) 设数据进栈方向为从高地址向低地址发展(“向下生长),当向堆栈压入数据时,SP的内容先自动递减而指向一个新的空栈顶单元,再把数据写入此栈顶单元;当数据弹出堆栈时,立即读出SP所指向的栈顶单元内容,再把SP内容自动递增而指向新的栈顶位置。即 PUSH X;(SP)-1SP (X)(SP) POP X; ((SP))X (SP)+1SP

  32. 105 104 103 104 105 A B B A B A A A 堆栈寄存器SP 通用寄存器 100 101 102 103 104 105 106 A进栈 B进栈 B出栈 A出栈 软堆栈过程

  33. 主程序 ... ... SP SP SP SP SP 子程序A 子程序B D1 D2 多重转子 D3 D2 主程序 D1 子程序A 子程序B 子程序不复杂,支持多重转子和递归调用。 子程序A D1 D2 D3 递归调用

  34. 常用寻址方式及有效地址的计算 注:Data——操作数 E——有效地址 Rx——变址寄存器 Rb——基址寄存器 D——形式地址 R——寄存器 PC——程序计数器 ( )——某单元的内容

  35. 寻址方式例题 例1:一条双字长的LOAD指令存储地址为200和201的存储位置,该指令将地址码指定的内容装入累加器AC中,指令的第一个字指定操作码和寻址方式,第二个字是地址部分。(PC)=200;(R1)=400;变址寄存器XR的内容是100。 条件(201)=500;(309)=450;(400)=700;(500)=800;(600)=900;(702)=325;(800)=300 问:若寻址方式分别为以下的方式,那么装入AC的值? 1)直接寻址;2)立即数寻址;3)间接寻址;4)相对寻址;5)变址寻址;6)寄存器(R1)寻址;7)寄存器间接寻址

  36. 常见的指令类型及其功能 • 一、数据传送类指令 • 二、运算类指令 • 三、移位指令 • 四、程序控制类指令 • 五、输入/输出类指令 • 六、字符串处理指令 • 七、处理机控制类指令 • 八、特权指令

  37. 一、数据传送类指令 • (1)寄存器至寄存器; (2)存储器至寄存器: • (3)寄存器至存储器: (4)存储器至存储器: • 数据传送指令一次可以传送一个数据或一批数据,有些机器设置了数据交换指令,可实现双向传送。 • 堆栈操作指令是一种特殊的数据传送指令。压入指令(PUSH)是把指定的操作数送入栈顶,而弹出指令(POP)的操作刚好相反,是把栈顶的数据取出,送到指令所指定的目的地。

  38. 二、运算类指令 • 1、算术运算指令 加法,减法,乘法和除法等指令。 • 2、逻辑运算指令 逻辑运算主要是对布尔变量的运算。 • 基本操作:包括逻辑与,逻辑或与逻辑非3种基本操作; • 组合逻辑操作:例如:异或。 • 算术逻辑运算指令除了给出运算结果外,往往还要给出某些状态信息。如运算结果的正、负;运算结果是否为零;是否有溢出;是否有低位向高位的进位等,供其它指令或程序分析时使用。

  39. 三、移位指令 • 1、 算术移位:左移或右移(右移时符号位不变) • 2、 逻辑移位:左移或右移(右移时符号位补0) • 3、 循环移位:左移或右移。

  40. 移位运算 算术左移: 小循环左移: 0 C C 算术右移: 小循环右移: C C 逻辑左移: 大循环左移: 0 C C 大循环右移: 逻辑右移: C C 0

  41. 四、程序控制类指令 • (1)转移指令: 包括无条件转移指令和条件转移指令。 无条件转移指令不受任何条件约束,直接把程序转移到指令所规定的目的地,在那里继续执行程序,常见以jump表示无条件转移指令。条件转移指令则根据计算机处理结果来决定程序如何执行。它先测试根据处理结果设置的条件码,然后根据所测试的条件是否满足来决定是否转移,常见用branch表示条件转移指令。

  42. 条件码的建立与转移的判断可以在一条指令中完成,也可以由二条指令完成。前者通常在转移指令中先完成比较运算,然后根据比较的结果来判断转移的条件是否成立,如条件为“真”则转移,如条件为“假”则顺序执行下一条指令。在第二种情况中,由转移指令前面的指令来建立条件码,转移指令根据条件码来判断是否转移,通常用算术指令建立的条件码N、Z、V、C来控制程序的执行方向,实现程序的分支。条件码的建立与转移的判断可以在一条指令中完成,也可以由二条指令完成。前者通常在转移指令中先完成比较运算,然后根据比较的结果来判断转移的条件是否成立,如条件为“真”则转移,如条件为“假”则顺序执行下一条指令。在第二种情况中,由转移指令前面的指令来建立条件码,转移指令根据条件码来判断是否转移,通常用算术指令建立的条件码N、Z、V、C来控制程序的执行方向,实现程序的分支。 有的计算机还设置有奇偶标志位P。

  43. (2)转子程序与返回指令: 子程序是一组可以共享的指令序列,可被主程序调用执行。转子指令与转移指令之间最大的差别在于:转移指令无需返回,而转子程序指令则需要。 子程序调用指令就是用来调用子程序的。为了能够从子程序中正确返回到断点继续执行,并能支持多重嵌套和递归调用,现代计算机通常用堆栈来保存返回地址。

  44. (3)程序中断指令: 中断一般是计算机系统出现异常情况或特殊请求时随机产生的。一般在计算机中,中断指令作为隐指令不提供用户使用。但在某些计算机中设置了可供用户使用的中断指令,以实现系统功能调用和程序请求。

  45. 五、输入/输出类指令 • 计算机所处理的一切原始数据和所执行的程序(除了固化在ROM中的以外)均来自外部设备的输入,处理结果需通过外部设备输出。输入输出指令的一般格式如下: OP REG A 其中OP是操作码,表示I/O指令。REG是寄存器名,用于指定与外部设备交换数据的寄存器。A是外部设备中的寄存器地址或设备码,其长度一般为8~16位,可以表示256~64K个设备寄存器(输入数据寄存器/输出数据寄存器/控制寄存器)。

More Related