三章指令系统.ppt
《三章指令系统.ppt》由会员分享,可在线阅读,更多相关《三章指令系统.ppt(65页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、三章指令系统 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望本章主要内容本章主要内容n指令格式指令格式n操作码的扩展、地址码的结构操作码的扩展、地址码的结构n常见的寻址方式常见的寻址方式n指令的类型指令的类型2一、机器指令的格式一、机器指令的格式n一条指令就是机器语言的一个语句,由一组二进制一条指令就是机器语言的一个语句,由一组二进制代码来表示。一条指令由两部分构成:代码来表示。一条指令由两部分构成:OPAddr 操作码操作码:指明指令的操作性质及功能。:指明指令
2、的操作性质及功能。地址码地址码:指明操作数的地址。:指明操作数的地址。n一条指令必须有一个操作码,可能包含几个地址码。一条指令必须有一个操作码,可能包含几个地址码。n指令涉及指令长度、操作码结构、地址码结构等问题指令涉及指令长度、操作码结构、地址码结构等问题。31 1、指令长度、指令长度n指令长度指令长度是指一条指令中所包含的二进制代码的位是指一条指令中所包含的二进制代码的位数,它取决于操作码字段的长度、操作数地址的个数,它取决于操作码字段的长度、操作数地址的个数及长度。一般希望指令长度短一些。数及长度。一般希望指令长度短一些。n指令长度与机器字长没有固定的关系。指令长度可指令长度与机器字长没
3、有固定的关系。指令长度可以等于机器字长,也可以大于或小于机器字长。以等于机器字长,也可以大于或小于机器字长。n在一个指令系统中,若所有指令的长度都相等,称在一个指令系统中,若所有指令的长度都相等,称为为定长定长指令字结构;若各种指令的长度随指令功能指令字结构;若各种指令的长度随指令功能不同而不同,称为不同而不同,称为变长变长指令字结构。指令字结构。42 2、操作码、操作码l指令系统中的每一条指令都有一个唯一确定的操作指令系统中的每一条指令都有一个唯一确定的操作码,指令不同,其操作码的编码也不同。码,指令不同,其操作码的编码也不同。l操作码字段的位数取决于计算机指令系统的规模。操作码字段的位数取
4、决于计算机指令系统的规模。通常,希望用尽可能短的操作码字段来表达全部指通常,希望用尽可能短的操作码字段来表达全部指令。令。于是,形成了操作码结构设计的不同方法。于是,形成了操作码结构设计的不同方法。l指令操作码的编码指令操作码的编码可可分为分为定长编码定长编码和和变长编码变长编码。5定长编码定长编码n定长编码方式是最简单的一种操作码编码方式,定长编码方式是最简单的一种操作码编码方式,操操作码的位数和位置固定,但指令长度不固定作码的位数和位置固定,但指令长度不固定。操作。操作码的位数越多,所能表示的操作种类就越多。码的位数越多,所能表示的操作种类就越多。n操作码不同,所涉及的操作数的个数也不完全
5、相同,操作码不同,所涉及的操作数的个数也不完全相同,所以指令的长度会随操作码的不同而变化。所以指令的长度会随操作码的不同而变化。n例如,例如,IBM370机就是采用这种定长操作码格式。机就是采用这种定长操作码格式。IBM 370机(字长机(字长32位)的指令可分为三种不同的位)的指令可分为三种不同的长度,不论指令的长度有多少位,其中的操作码字长度,不论指令的长度有多少位,其中的操作码字段段一律都是一律都是8位位。n特点:字段规整、译码简单。特点:字段规整、译码简单。6IBM 370机的指令格式机的指令格式OP一样长,操一样长,操作码译码器设计作码译码器设计就简单多了。就简单多了。7变长编码变长
6、编码 n变长编码是一种变长编码是一种操作码长度不固定,而指令长度固定操作码长度不固定,而指令长度固定的设计方法。操作码分散在指令字的不同位置上。的设计方法。操作码分散在指令字的不同位置上。n例如:例如:PDP-11机(字长机(字长16位)的指令分为单字长、位)的指令分为单字长、两字长、三字长三种,其中单字长指令的操作码字段两字长、三字长三种,其中单字长指令的操作码字段占占416位不等,可遍及整个指令长度。位不等,可遍及整个指令长度。n特点:操作码字段位数不固定将增加指令译码难度,特点:操作码字段位数不固定将增加指令译码难度,使控制器的设计复杂化。但是,它有效地利用了指令使控制器的设计复杂化。但
7、是,它有效地利用了指令中的每个二进制位。中的每个二进制位。8PDP-11机的指令格式机的指令格式OP不一样长,不一样长,控制器设计变控制器设计变得难多了。得难多了。9指令操作码的扩展技术指令操作码的扩展技术n变长操作码常常采用变长操作码常常采用扩展操作码扩展操作码的方法的方法来设计。来设计。n扩展思路:让地址扩展思路:让地址码码个数多的指令个数多的指令,操作码字段短些操作码字段短些;让地址让地址码码个数少的指令个数少的指令,操作码字段长些。操作码字段长些。n假设,某机器指令长假设,某机器指令长16位,包括一个操作码字段和三个位,包括一个操作码字段和三个地址字段,其中操作码字段地址字段,其中操作
8、码字段4位,每个地址字段也是位,每个地址字段也是4位位。其格式如下:。其格式如下:n如果按照定长编码的方法,如果按照定长编码的方法,4位操作码字段最多只能表位操作码字段最多只能表示示16条不同的三地址指令。条不同的三地址指令。OPA1A2A315 12 11 8 7 4 3 0 10指令操作码的扩展技术指令操作码的扩展技术0000 XXXX YYYY ZZZZ1110 XXXX YYYY ZZZZ15条三地址指令条三地址指令1111 0000 XXXX YYYY1111 1110 XXXX YYYY15条二地址指令条二地址指令1111 1111 0000 XXXX1111 1111 1110
9、XXXX15条一地址指令条一地址指令1111 1111 1111 00001111 1111 1111 111116条零地址指令条零地址指令扩展窗口扩展窗口扩展窗口扩展窗口扩展窗口扩展窗口113 3、地址码、地址码n根据一条指令中有几个操作数地址,可将该指令根据一条指令中有几个操作数地址,可将该指令称为几地址指令。称为几地址指令。n一般的指令有被操作数、操作数以及操作结果这一般的指令有被操作数、操作数以及操作结果这三个数,因而就形成了三地址指令格式,这也是三个数,因而就形成了三地址指令格式,这也是早期计算机指令的基本格式。早期计算机指令的基本格式。n在三地址格式的基础上,后来又发展成了二地址在
10、三地址格式的基础上,后来又发展成了二地址格式、一地址格式和零地址格式。格式、一地址格式和零地址格式。12三地址指令三地址指令n格式:格式:n执行的操作:执行的操作:(A1)OP (A2)A3nA1为被操作数地址,为被操作数地址,A2为操作数地址,为操作数地址,A3为结果的存放地址。为结果的存放地址。nA1、A2、A3可以是内存单元地址,也可以是运算可以是内存单元地址,也可以是运算器中的通用寄存器。如果全是内存中的单元地址,器中的通用寄存器。如果全是内存中的单元地址,则执行一条三地址指令至少需要访问则执行一条三地址指令至少需要访问4次主存。次主存。OPA1A2A313二地址指令二地址指令n格式:
11、格式:n执行的操作:执行的操作:(A1)OP (A2)A1nA1为目的操作数地址,兼做存放结果的地址;为目的操作数地址,兼做存放结果的地址;A2为源操作数地址。(为源操作数地址。(A1原先的值无需保存)原先的值无需保存)nA1、A2可以是内存中的单元地址,也可以是运算可以是内存中的单元地址,也可以是运算器中的通用寄存器。如果是内存中的单元地址,器中的通用寄存器。如果是内存中的单元地址,则执行一条二地址指令至少要访问则执行一条二地址指令至少要访问4次主存次主存.OPA1A214一地址指令一地址指令 n格式:格式:n执行的操作:执行的操作:(AC)OP (A1)ACn这种指令以累加寄存器这种指令以
12、累加寄存器AC中的数为被操作数,指中的数为被操作数,指令中地址码字段所指明的数为操作数,操作结果又令中地址码字段所指明的数为操作数,操作结果又放回累加寄存器放回累加寄存器AC中(隐含约定中(隐含约定AC)。)。nA1可以是内存中的单元地址,也可以是运算器中可以是内存中的单元地址,也可以是运算器中的通用寄存器。如果是内存中的单元地址,则执行的通用寄存器。如果是内存中的单元地址,则执行一条一地址指令至少需要访问一条一地址指令至少需要访问2次主存。次主存。OPA1计算机中有许多寄存器计算机中有许多寄存器其中有一个称为累加寄其中有一个称为累加寄存器存器(AC),存放操作数,存放操作数15零地址指令零地
13、址指令 n格式:格式:n零地址指令只有操作码,而没有地址码。零地址指令只有操作码,而没有地址码。n例如下面的情况不需要地址码:例如下面的情况不需要地址码:n指令不需要操作数,例如停机指令就没有操作数指令不需要操作数,例如停机指令就没有操作数.n操作数隐含约定在累加器操作数隐含约定在累加器AC中。中。n操作数隐含指定在堆栈中,例如堆栈计算机,零操作数隐含指定在堆栈中,例如堆栈计算机,零地址指令的操作数从堆栈中获得。地址指令的操作数从堆栈中获得。OP16简化地址结构与减少地址码字段的位数简化地址结构与减少地址码字段的位数n简化地址结构的途径:隐含约定地址简化地址结构的途径:隐含约定地址nPC代替指
14、令中的后继指令地址代替指令中的后继指令地址n结果存放在操作数地址结果存放在操作数地址 n操作数或结果约定在操作数或结果约定在AC中中n约定所有地址的位置,如零地址指令约定所有地址的位置,如零地址指令n减少地址码字段位数的途径:减少地址码字段位数的途径:n采用隐含约定地址减少地址数,减少位数采用隐含约定地址减少地址数,减少位数n采用寄存器寻址、寄存器间接寻址,减少位数采用寄存器寻址、寄存器间接寻址,减少位数17按操作数的物理位置分类按操作数的物理位置分类n第一种是访问内存的指令格式,我们称这类指令为第一种是访问内存的指令格式,我们称这类指令为存储器存储器存存储器型指令(储器型指令(SS)。n这种
15、指令操作时都涉及内存单元,参与操作的数都放在内存这种指令操作时都涉及内存单元,参与操作的数都放在内存里。从内存单元取操作数,操作结果放回内存中。里。从内存单元取操作数,操作结果放回内存中。n机器执行这种指令需要多次访问内存,执行速度机器执行这种指令需要多次访问内存,执行速度慢慢。n第二种是访问寄存器的指令格式,我们称这类指令为第二种是访问寄存器的指令格式,我们称这类指令为寄存器寄存器寄存器型指令(寄存器型指令(RR)。n机器执行这类指令过程中,需要多个通用寄存器和个别专用机器执行这类指令过程中,需要多个通用寄存器和个别专用寄存器。从寄存器中取操作数,把结果放回寄存器,因此,寄存器。从寄存器中取
16、操作数,把结果放回寄存器,因此,不需要访问内存。不需要访问内存。n机器执行寄存器机器执行寄存器寄存器型指令的速度很寄存器型指令的速度很快快。n第三种类型是第三种类型是寄存器寄存器存储器型指令(存储器型指令(RS)。n执行此类指令既需要访问内存单元,又要访问寄存器。执行此类指令既需要访问内存单元,又要访问寄存器。n执行速度介于第一种和第二种之间。执行速度介于第一种和第二种之间。18二、指令和数据的寻址方式二、指令和数据的寻址方式n存储器既可以存放指令,又可以存放数据。当某指存储器既可以存放指令,又可以存放数据。当某指令或操作数存放在某个存储单元时,该存储单元的令或操作数存放在某个存储单元时,该存
17、储单元的编号,就是该指令或操作数在存储器中的地址。编号,就是该指令或操作数在存储器中的地址。n所谓所谓寻址寻址就是寻找操作数的地址或下一条要执行的就是寻找操作数的地址或下一条要执行的指令的地址,而形成操作数或指令地址的方式,称指令的地址,而形成操作数或指令地址的方式,称为为寻址方式寻址方式。寻址方式分为两类,即指令寻址方式。寻址方式分为两类,即指令寻址方式和数据寻址方式。和数据寻址方式。191 1、指令寻址方式、指令寻址方式寻找下一条将要执行的指令的地址称寻找下一条将要执行的指令的地址称为指令寻址。指令寻址比较简单,它为指令寻址。指令寻址比较简单,它又可以细分为又可以细分为顺序寻址顺序寻址和和
18、跳跃寻址跳跃寻址。20顺序寻址方式顺序寻址方式n指令在内存中是顺序存放的,当执行一段程序时,指令在内存中是顺序存放的,当执行一段程序时,通常是一条指令接一条指令地顺序执行。通常是一条指令接一条指令地顺序执行。nCPU顺序取出指令、执行指令的过程我们称为指顺序取出指令、执行指令的过程我们称为指令的令的顺序寻址方式顺序寻址方式。n必须有一个跟踪程序执行顺序的措施,那就是程必须有一个跟踪程序执行顺序的措施,那就是程序计数器序计数器PC。程序计数器程序计数器PC用来记录指令的顺用来记录指令的顺序号,该顺序号是指令在内存中的地址。序号,该顺序号是指令在内存中的地址。计算机中有许多寄存器计算机中有许多寄存
19、器其中有一个称为程序计其中有一个称为程序计数器数器(PC),放指令地址,放指令地址21顺序寻址方式顺序寻址方式n下图是指令顺序寻址方式的示意图:下图是指令顺序寻址方式的示意图:程序启动时,由程序启动时,由操作系统把程序操作系统把程序的首地址放入程的首地址放入程序计数器序计数器PCPC中。中。22跳跃寻址方式跳跃寻址方式 n当程序转移执行的顺序时,指令的寻址就采用当程序转移执行的顺序时,指令的寻址就采用跳跃寻址方式跳跃寻址方式。所。所谓跳跃,是指下条指令的地址不是由程序计数器给出,而是由转谓跳跃,是指下条指令的地址不是由程序计数器给出,而是由转移指令给出。移指令给出。n跳跃寻址时,转移地址形成方
20、式有跳跃寻址时,转移地址形成方式有3 3种,直接寻址、间接寻址、种,直接寻址、间接寻址、相对寻址。相对寻址。它们与数据寻址方式中的直接寻址、间接寻址、和相它们与数据寻址方式中的直接寻址、间接寻址、和相对寻址完全相同,只不过寻找的不是操作数的有效地址而是转移对寻址完全相同,只不过寻找的不是操作数的有效地址而是转移的有效地址,具体内容将在数据寻址中详细介绍。的有效地址,具体内容将在数据寻址中详细介绍。n采用指令跳跃寻址方式,可以实现程序转移和公共程序调用等功采用指令跳跃寻址方式,可以实现程序转移和公共程序调用等功能。例如,指令系统的各种条件转移或无条件转移指令,就是采能。例如,指令系统的各种条件转
21、移或无条件转移指令,就是采用跳跃寻址实现程序转移。用跳跃寻址实现程序转移。23跳跃寻址方式跳跃寻址方式n下图是指令跳跃寻址的示意图:下图是指令跳跃寻址的示意图:242 2、数据寻址方式、数据寻址方式n根据指令中地址码字段的内容(形式地址)形成操作数有效地址根据指令中地址码字段的内容(形式地址)形成操作数有效地址的方式,称为数据寻址方式。的方式,称为数据寻址方式。形式地址形式地址A 有效地址有效地址EAn数据寻址方式的种类很多,但最终目的是寻找所需要的操作数。数据寻址方式的种类很多,但最终目的是寻找所需要的操作数。n寻址方式与操作数可能存放的地方有直接关系寻址方式与操作数可能存放的地方有直接关系
22、。寻址寻址方式方式25操作数可能存放的地方操作数可能存放的地方 n操作数可能存在的地方有:操作数可能存在的地方有:n操作数包含在指令中操作数包含在指令中。n操作数在操作数在CPU的某个寄存器中的某个寄存器中。n操作数在主存中操作数在主存中。n操作数在堆栈中操作数在堆栈中。n操作数在某个输入操作数在某个输入/输出端口中输出端口中。n由于各种机器的结构不同、数据的来源不同,从而形成了由于各种机器的结构不同、数据的来源不同,从而形成了各种不同的数据寻址方式。下面介绍一些比较典型而且常各种不同的数据寻址方式。下面介绍一些比较典型而且常用的寻址方式。用的寻址方式。26隐含寻址隐含寻址n隐含寻址指令,不是
23、明显地给出操作数的地址,而是在指令隐含寻址指令,不是明显地给出操作数的地址,而是在指令中隐含着操作数的地址,即中隐含着操作数的地址,即采用隐含约定的方式实现寻址采用隐含约定的方式实现寻址。n例如,单地址指令格式:例如,单地址指令格式:ADD Addr明显给出的只是第一操作数的地址明显给出的只是第一操作数的地址Addr,该地址中的数据跟,该地址中的数据跟谁加?谁加?约定约定累加器累加器AC为第二操作数地址,它并不出现在指令为第二操作数地址,它并不出现在指令的地址码字段中。因此,累加器的地址码字段中。因此,累加器AC对单地址指令格式来说是对单地址指令格式来说是隐含地址。隐含地址。27立即寻址立即寻
24、址n指令的地址码字段给出的不是操作数的地址,而是操作数本指令的地址码字段给出的不是操作数的地址,而是操作数本身,这种寻址方式称为身,这种寻址方式称为立即寻址立即寻址。n例如:例如:MOV CX,8 中,中,8的寻址方式就是立即寻址方式,的寻址方式就是立即寻址方式,8称为立即数。称为立即数。n立即寻址指令的执行时间很短,因为数据包含在指令中,指立即寻址指令的执行时间很短,因为数据包含在指令中,指令和操作数同时取出,不需要再次访问内存。令和操作数同时取出,不需要再次访问内存。n在程序执行过程中,立即数不能被修改,灵活性差;一般用在程序执行过程中,立即数不能被修改,灵活性差;一般用来提供初始值。来提
25、供初始值。28直接寻址直接寻址n指令中地址码字段直接给出操作数的有效地址,形式地址就是有指令中地址码字段直接给出操作数的有效地址,形式地址就是有效地址,这种寻址方式称为效地址,这种寻址方式称为直接寻址方式直接寻址方式。直接寻址方式给出的。直接寻址方式给出的地址是绝对地址,地址是绝对地址,也叫绝对寻址方式。也叫绝对寻址方式。操作数操作数 S=(A)n直接寻址不需寻址运算,便于硬件实现,但寻址空间受到限制。直接寻址不需寻址运算,便于硬件实现,但寻址空间受到限制。形式地址形式地址=有效地址有效地址29间接寻址间接寻址n间接寻址间接寻址意味着指令中给出的地址意味着指令中给出的地址A A不是操作数的地址
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 指令系统
限制150内