最新计算机指令系统_第1页
最新计算机指令系统_第2页
最新计算机指令系统_第3页
最新计算机指令系统_第4页
最新计算机指令系统_第5页
已阅读5页,还剩182页未读 继续免费阅读

下载本文档

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

文档简介

1、微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第1页最新计算机指令系统最新计算机指令系统微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第2页第第3章章 8086指令系统指令系统 l指令是指计算机执行操作的命令,一台计指令是指计算机执行操作的命令,一台计算机的所有指令的集合构成该计算机的指算机的所有指令的集合构成该计算机的指令系统。指令系统位于硬件和软件的交界令系统。指令系统位于硬件和软件的交界面上,决定了计算机的基本功能,指令系面上,决定了计算机的基本功能,指令系统的设计是计算机系统设计的一个核心问统的设计是计算机

2、系统设计的一个核心问题,它不仅与计算机的硬件设计紧密相关,题,它不仅与计算机的硬件设计紧密相关,而且直接影响到系统软件设计。而且直接影响到系统软件设计。 微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第3页主要内容主要内容l3.1 计算机指令系统的发展与性能计算机指令系统的发展与性能l3.2 指令的格式指令的格式l3.3 寻寻 址址 方方 式式l3.4 指令的分类与高级语言指令的分类与高级语言l3.5 8086的寻址方式和指令系统的寻址方式和指令系统l3.6 8086的指令系统的指令系统微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2

3、013年4月24日第4页l3.1 计算机指令系统的发展与性能l3.1.1 指令系统的发展指令系统的发展l3.1.2 指令系统的性能要求指令系统的性能要求微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第5页3.1 计算机指令系统的发展与性能l3.1.1 指令系统的发展指令系统的发展l在计算机发展的早期,由于计算机采用分立元件,在计算机发展的早期,由于计算机采用分立元件,价格昂贵,因此,大多数计算机的硬件结构比较价格昂贵,因此,大多数计算机的硬件结构比较简单,所支持的指令系统一般只有定点加减、逻简单,所支持的指令系统一般只有定点加减、逻辑运算、数据传输和转移

4、等十几至几十条最基本辑运算、数据传输和转移等十几至几十条最基本的指令,而且寻址方式简单。到的指令,而且寻址方式简单。到20世纪世纪60年代中年代中后期,随着集成电路的出现,计算机的价格不断后期,随着集成电路的出现,计算机的价格不断下降,硬件功能不断增强,指令系统也越来越丰下降,硬件功能不断增强,指令系统也越来越丰富,除具有以上最基本的指令以外,还设置了乘富,除具有以上最基本的指令以外,还设置了乘除运算指令、浮点运算指令、十进制运算指令、除运算指令、浮点运算指令、十进制运算指令、字符串处理指令和特权指令等,指令数多达一、字符串处理指令和特权指令等,指令数多达一、二百条。二百条。微机原理与接口技术

5、微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第6页l现代计算机的基本工作原理可以简单概括为现代计算机的基本工作原理可以简单概括为“程序存储、程序执行程序存储、程序执行”,即人们使用计算机求解时,必须首先将该问题的计算程序和所需数据即人们使用计算机求解时,必须首先将该问题的计算程序和所需数据预先输入到计算机的存储器中,然后由控制器控制完成读出、识别、预先输入到计算机的存储器中,然后由控制器控制完成读出、识别、解释并执行程序中每一条指令。程序就是使计算机执行某个特定任务解释并执行程序中每一条指令。程序就是使计算机执行某个特定任务的一系列指令。指令是指示机器执行某种操作的命令

6、。的一系列指令。指令是指示机器执行某种操作的命令。l指令是由一组二进制代码组成的。表示一条指令意义的二进制代码,指令是由一组二进制代码组成的。表示一条指令意义的二进制代码,被称为指令码。指令码的编码规则称为指令格式。指令码中二进制码被称为指令码。指令码的编码规则称为指令格式。指令码中二进制码的位数称为指令长度。每条指令都具有一个确定的指令码,对应于计的位数称为指令长度。每条指令都具有一个确定的指令码,对应于计算机能执行的一种操作。在不同类型的计算机中,不同功能操作的指算机能执行的一种操作。在不同类型的计算机中,不同功能操作的指令之间、指令码有着各自的样式、特征和规则。在每个计算机中,指令之间、

7、指令码有着各自的样式、特征和规则。在每个计算机中,指令码都是按照一种预先精心设计的、该机型共同约定好的编码规则来令码都是按照一种预先精心设计的、该机型共同约定好的编码规则来加以编排和设置的。加以编排和设置的。微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第7页l一台计算机能执行多少条功能不同的指令,它们是些什么样功能的指一台计算机能执行多少条功能不同的指令,它们是些什么样功能的指令,指令格式如何,这些都是由计算机指令系统明确加以规定和指示令,指令格式如何,这些都是由计算机指令系统明确加以规定和指示的。一台计算机所能执行的全部指令的集合称为指令系统,或称为

8、指的。一台计算机所能执行的全部指令的集合称为指令系统,或称为指令集。令集。l不同型号的计算机有着不同的指令系统。从程序设计者的角度来看,不同型号的计算机有着不同的指令系统。从程序设计者的角度来看,指令系统是一台计算机的主要属性,是软、硬件的主要交界面。程序指令系统是一台计算机的主要属性,是软、硬件的主要交界面。程序设计者使用该机指令系统中的各种指令来编制软件,而程序又利用指设计者使用该机指令系统中的各种指令来编制软件,而程序又利用指令系统所具有的各种指令去指挥计算机硬件进行各种操作。一台计算令系统所具有的各种指令去指挥计算机硬件进行各种操作。一台计算机指令系统功能的强弱,对编制程序的支持程度,

9、往往影响到该计算机指令系统功能的强弱,对编制程序的支持程度,往往影响到该计算机能否获得较为广泛的应用。机能否获得较为广泛的应用。l指令系统要由计算机的硬件来支持和实现,从计算机硬件工程设计的指令系统要由计算机的硬件来支持和实现,从计算机硬件工程设计的角度来看,指令系统是设计计算机硬件的一个主要依据。指令系统一角度来看,指令系统是设计计算机硬件的一个主要依据。指令系统一直是计算机系统结构设计者十分重视的一个方面。在研制每一种新的直是计算机系统结构设计者十分重视的一个方面。在研制每一种新的计算机时,设计者面临的一个基本问题是如何巧妙而又富有创造性地计算机时,设计者面临的一个基本问题是如何巧妙而又富

10、有创造性地设计一个指令系统。设计一个指令系统。微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第8页l随着集成电路的发展和计算机应用领域的不断扩大,随着集成电路的发展和计算机应用领域的不断扩大,20世纪世纪60年代后期开始年代后期开始出现系列计算机。所谓系列计算机,是指基本指令系统、基本体系结构相同出现系列计算机。所谓系列计算机,是指基本指令系统、基本体系结构相同的一系列计算机。如的一系列计算机。如Pentium系列就是当前流行的一种个人机系列。一个系系列就是当前流行的一种个人机系列。一个系列往往有多种型号,但由于推出时间不同,采用器件不同,它们在结构和性

11、列往往有多种型号,但由于推出时间不同,采用器件不同,它们在结构和性能上有所差异。通常新机种在性能和价格方面比旧机种优越。系列机解决了能上有所差异。通常新机种在性能和价格方面比旧机种优越。系列机解决了各机种的软件兼容问题,其必要条件是同一系列的各机种有共同的指令集,各机种的软件兼容问题,其必要条件是同一系列的各机种有共同的指令集,而且新推出的机种指令系统一定包含所有旧机种的全部指令。因此旧机种上而且新推出的机种指令系统一定包含所有旧机种的全部指令。因此旧机种上运行的各种软件可以不加任何修改便可在新机种上运行,大大减少了软件开运行的各种软件可以不加任何修改便可在新机种上运行,大大减少了软件开发费用

12、。发费用。l20世纪世纪70年代末期,计算机硬件结构随着年代末期,计算机硬件结构随着VLSI(Very Large Scale Integrated Circuit)技术的飞速发展而越来越复杂化,大多数计算机的指令技术的飞速发展而越来越复杂化,大多数计算机的指令系统多达几百条。我们称这些计算机为复杂指令系统计算机系统多达几百条。我们称这些计算机为复杂指令系统计算机(CISC,Complex Instruction Set Computer)。但是如此庞大的指令系统不仅使计。但是如此庞大的指令系统不仅使计算机的研制周期变长,正确性难以保证,不易调试维护,而且由于采用了大算机的研制周期变长,正确性

13、难以保证,不易调试维护,而且由于采用了大量使用频率很低的复杂指令造成了硬件资源的浪费。为此人们又提出了便于量使用频率很低的复杂指令造成了硬件资源的浪费。为此人们又提出了便于VLSI技术实现的精简指令系统计算机技术实现的精简指令系统计算机(RISC,Reduced Instruction Set Computer)。微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第9页l3.1.2 指令系统的性能要求指令系统的性能要求l指令系统的性能决定了计算机的基本功能,指令系统的性能决定了计算机的基本功能,指令系统的设计是计算机系统设计中的一指令系统的设计是计算机系统设

14、计中的一个核心问题,它不仅与计算机的硬件结构个核心问题,它不仅与计算机的硬件结构紧密相关,而且直接关系到用户的使用需紧密相关,而且直接关系到用户的使用需求。求。l一个完善的计算机指令系统应该具备以下一个完善的计算机指令系统应该具备以下几方面的要求。几方面的要求。微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第10页l1. 完备性完备性l指令系统的完备性是指用汇编语言编制各种程序时,指令系统直接提指令系统的完备性是指用汇编语言编制各种程序时,指令系统直接提供的指令足够使用,不必用软件方法实现。一台计算机中最基本的、供的指令足够使用,不必用软件方法实现。一台

15、计算机中最基本的、必不可少的指令构成了指令系统的完备性。而其他一些指令,如乘、必不可少的指令构成了指令系统的完备性。而其他一些指令,如乘、除运算指令、浮点运算指令,可以直接用硬件实现,也可以用其他指除运算指令、浮点运算指令,可以直接用硬件实现,也可以用其他指令实现,即用软件的方法实现,两者只是在执行时间和编写程序的难令实现,即用软件的方法实现,两者只是在执行时间和编写程序的难易程度上有差别。之所以在指令系统中设计特殊指令,是为了提高程易程度上有差别。之所以在指令系统中设计特殊指令,是为了提高程序执行的速度和便于用户编写程序。序执行的速度和便于用户编写程序。l2. 有效性有效性l有效性是指利用该

16、指令系统所提供的指令编制的程序能够产生高效率。有效性是指利用该指令系统所提供的指令编制的程序能够产生高效率。高效率主要表现在空间和时间方面,即占用存储空间小、执行速度快。高效率主要表现在空间和时间方面,即占用存储空间小、执行速度快。通常,一个功能完善的指令系统必定有很好的有效性。通常,一个功能完善的指令系统必定有很好的有效性。微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第11页l3. 规整性规整性l规整性是指指令操作的对称性、匀齐性和指令格式与数据格式的一致性。规整性是指指令操作的对称性、匀齐性和指令格式与数据格式的一致性。l指令的对称性是指在指令系统

17、中,所有的寄存器和存储单元都可同等对待,指令的对称性是指在指令系统中,所有的寄存器和存储单元都可同等对待,这对简化程序设计、提高程序的可读性非常有用。这对简化程序设计、提高程序的可读性非常有用。l指令的匀齐性是指一种操作性质的指令可以支持各种数据类型,如算术运算指令的匀齐性是指一种操作性质的指令可以支持各种数据类型,如算术运算指令可支持字节、字和双字整数运算、十进制数运算和单、双精度浮点数运指令可支持字节、字和双字整数运算、十进制数运算和单、双精度浮点数运算等。指令的这种性质,可以使程序设计者无需考虑数据类型而选用指令,算等。指令的这种性质,可以使程序设计者无需考虑数据类型而选用指令,从而提高

18、编程效率。从而提高编程效率。l指令的格式与数据格式的一致性是指指令长度与数据长度有一定关系,以方指令的格式与数据格式的一致性是指指令长度与数据长度有一定关系,以方便存取和处理。便存取和处理。l4. 兼容性兼容性l兼容性一般是指计算机的体系结构设计基本相同,计算机之间具有相同的基兼容性一般是指计算机的体系结构设计基本相同,计算机之间具有相同的基本结构、数据表示和共同的基本指令集合。指令系统的兼容性指的是同一个本结构、数据表示和共同的基本指令集合。指令系统的兼容性指的是同一个软件可以不加修改就可以在系统结构相同的计算机中运行,获得相同的结果,软件可以不加修改就可以在系统结构相同的计算机中运行,获得

19、相同的结果,差别在于运行的时间长短不同。软件兼容性不仅在同一厂家的系列机中存在,差别在于运行的时间长短不同。软件兼容性不仅在同一厂家的系列机中存在,而且也出现在不同厂家所生产的具有相同系统结构的计算机系统中,这些计而且也出现在不同厂家所生产的具有相同系统结构的计算机系统中,这些计算机系统一般称为算机系统一般称为“兼容机兼容机”。如。如IBM PC机就是一个典型的例子。机就是一个典型的例子。微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第12页3.2 指令的格式指令的格式 l3.2.1 指令操作码与地址码指令操作码与地址码l一条指令一般由两个字段组成:操作

20、码字一条指令一般由两个字段组成:操作码字段和操作数地址码字段,可表示为图段和操作数地址码字段,可表示为图3-1的的形式。形式。微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第13页l(1) 操作码(操作码(operating code)l操作码是指明指令操作性质的命令码。操作码是指明指令操作性质的命令码。CPU每次从内存取每次从内存取出一条指令,指令中的操作码就告诉出一条指令,指令中的操作码就告诉CPU应执行什么性质应执行什么性质的操作。例如用操作码的操作。例如用操作码“0000”表示表示“加法加法”操作,操作操作,操作码码“0001”表示表示“减法减法

21、”操作等。操作等。l每条指令都要求它的操作码必须是独一无二的位组合。指每条指令都要求它的操作码必须是独一无二的位组合。指令系统中的每一条指令都有一个确定的操作码,并且每一令系统中的每一条指令都有一个确定的操作码,并且每一条指令只与一个规定好的操作码一一对应。指令不同,其条指令只与一个规定好的操作码一一对应。指令不同,其操作码也不同。操作码也不同。l操作码的长度取决于指令系统中的指令条数。例如,若操操作码的长度取决于指令系统中的指令条数。例如,若操作码长度为作码长度为4位时,指令系统中指令的个数不能多于位时,指令系统中指令的个数不能多于16条。条。微机原理与接口技术微机原理与接口技术 清华大学出

22、版社清华大学出版社2013年4月24日第14页汇编语言汇编语言-助记符语言助记符语言l典型的指令助记符典型的指令助记符微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第15页l(2) 操作数地址码(操作数地址码(operand address code)l地址码用来描述该指令的操作对象。在地地址码用来描述该指令的操作对象。在地址码中可以直接给出操作数本身,也可以址码中可以直接给出操作数本身,也可以指出操作数在存储器中的地址或寄存器地指出操作数在存储器中的地址或寄存器地址,或表示操作数在存储器中的间接地址址,或表示操作数在存储器中的间接地址等。等。l。微机原

23、理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第16页l一条指令中含有的操作数地址不一定只有一个。随着指令一条指令中含有的操作数地址不一定只有一个。随着指令功能的不同,操作数地址可能是两个或多个。例如加减法功能的不同,操作数地址可能是两个或多个。例如加减法运算,一般要求有两个操作数地址。但若再考虑操作运算运算,一般要求有两个操作数地址。但若再考虑操作运算结果的存放地址,就需要有结果的存放地址,就需要有3个地址,若继续考虑本条指个地址,若继续考虑本条指令完成以后下一条指令的地址,则需要令完成以后下一条指令的地址,则需要4个地址。个地址。l指令字中操作数地址字段的

24、位数取决于指令操作所需要的指令字中操作数地址字段的位数取决于指令操作所需要的操作数地址个数和每个操作数地址的位数。所以,一个指操作数地址个数和每个操作数地址的位数。所以,一个指令的字长应满足下面等式:令的字长应满足下面等式:l指令字长指令字长=操作码的位数操作码的位数+(操作数地址个数操作数地址个数)(操作数地址操作数地址码位数码位数)l根据地址码部分所给出地址的个数,指令格式可分为以下根据地址码部分所给出地址的个数,指令格式可分为以下几种几种微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第17页l1. 零地址指令格式零地址指令格式l这是一种没有操作数地

25、址部分的指令格式,这是一种没有操作数地址部分的指令格式,如图如图3-2所示:所示:微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第18页l这种指令有两种可能。这种指令有两种可能。l(1) 无需任何操作数。如空操作指令,停机无需任何操作数。如空操作指令,停机指令等。指令等。l(2) 所需的操作数是默认的。如堆栈结构计所需的操作数是默认的。如堆栈结构计算机的运算指令所需的操作数是由一个隐算机的运算指令所需的操作数是由一个隐含的保存操作数的硬件机构来提供。该隐含的保存操作数的硬件机构来提供。该隐含机构就是堆栈。含机构就是堆栈。微机原理与接口技术微机原理与接口技

26、术 清华大学出版社清华大学出版社2013年4月24日第19页l堆栈是若干个存储单元堆栈是若干个存储单元(或寄存器或寄存器)的有序集合。它顺序地的有序集合。它顺序地存放一组元素,第一个被压入元素的堆栈单元称为栈底,存放一组元素,第一个被压入元素的堆栈单元称为栈底,最后一个被压入元素的单元称为栈顶。数据的存取只能在最后一个被压入元素的单元称为栈顶。数据的存取只能在栈顶单元内进行,即数据的进栈与出栈都只能经过栈顶单栈顶单元内进行,即数据的进栈与出栈都只能经过栈顶单元这个元这个“出入口出入口”。l堆栈中的数据采用的是堆栈中的数据采用的是“先进后出先进后出”、“后进先出后进先出”的存的存取工作方式。取工

27、作方式。l为了向堆栈存入数据,要将堆栈中各单元原有的数据为了向堆栈存入数据,要将堆栈中各单元原有的数据(元元素素)依次向栈底方向移动一个单元,空出栈顶单元来存放依次向栈底方向移动一个单元,空出栈顶单元来存放新数据,这个操作称为堆栈压入新数据,这个操作称为堆栈压入(PUSH)。为了取得运算。为了取得运算操作所必需的操作数,对堆栈要执行弹出操作所必需的操作数,对堆栈要执行弹出(POP)操作。该操作。该操作从栈顶单元取出数据,并将下面各单元所存的数据依操作从栈顶单元取出数据,并将下面各单元所存的数据依次向栈顶方向移动一个单元,由紧挨栈顶的单元数据来补次向栈顶方向移动一个单元,由紧挨栈顶的单元数据来补

28、充栈顶单元。充栈顶单元。微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第20页l真正实用的堆栈中,对每压入真正实用的堆栈中,对每压入(或弹出或弹出)一个一个元素时整个堆栈单元内容都下移元素时整个堆栈单元内容都下移(或上移或上移)一一个单元的做法作了改进。改进的措施是:个单元的做法作了改进。改进的措施是:在压入和弹出数据时,各堆栈单元的原内在压入和弹出数据时,各堆栈单元的原内容都不移动,而作为数据容都不移动,而作为数据“出入口出入口”的栈的栈顶单元地址加以变动,即栈顶位置动态变顶单元地址加以变动,即栈顶位置动态变化。对栈顶的位置可使用一个寄存器来跟化。对栈

29、顶的位置可使用一个寄存器来跟踪,这个保存栈顶单元地址的寄存器称为踪,这个保存栈顶单元地址的寄存器称为栈顶指示器栈顶指示器(SP,Stack Pointer)。微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第21页l设数据进栈方向为从高地址向低地址,当向堆栈压入数据时,设数据进栈方向为从高地址向低地址,当向堆栈压入数据时,SP的的内容先自动递减而指向一个新的空栈顶单元,再把数据写入此栈顶单内容先自动递减而指向一个新的空栈顶单元,再把数据写入此栈顶单元;当数据弹出堆栈时,立即读出元;当数据弹出堆栈时,立即读出SP所指向的栈顶单元内容,再把所指向的栈顶单元内容

30、,再把SP内容自动递增而指向新的栈顶位置。即:内容自动递增而指向新的栈顶位置。即:lPUSH X; (SP)-1SP (X)(SP)lPOP X; (SP)X (SP)+1SPl堆栈结构除了在零地址指令格式中提供操作数外,另一个重要作用是堆栈结构除了在零地址指令格式中提供操作数外,另一个重要作用是实现程序调用。即在调用子程序时,能把返回地址、局部变量和中间实现程序调用。即在调用子程序时,能把返回地址、局部变量和中间结果等自动地压入堆栈;在子程序返回时,又能方便地把有关信息和结果等自动地压入堆栈;在子程序返回时,又能方便地把有关信息和返回地址弹出堆栈交还。对于子程序嵌套调用和递归调用,堆栈具有返

31、回地址弹出堆栈交还。对于子程序嵌套调用和递归调用,堆栈具有别的程序调用方法所无法比拟的优势。对于别的程序调用方法所无法比拟的优势。对于“中断中断”技术,堆栈更是技术,堆栈更是不可缺少的。不可缺少的。l具有堆栈结构的机器使用零地址指不仅指令长度短、指令结构简单、具有堆栈结构的机器使用零地址指不仅指令长度短、指令结构简单、机器硬件简化,而且又能为软件中广泛使用堆栈结构数据提供了直接机器硬件简化,而且又能为软件中广泛使用堆栈结构数据提供了直接的有力支持。的有力支持。微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第22页l2. 一地址指令格式一地址指令格式l如图

32、如图3-3所示,一地址指令也有两种可能:所示,一地址指令也有两种可能:微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第23页l(1) 指令中给出的一个地址既是操作数的地址,又指令中给出的一个地址既是操作数的地址,又是操作结果的存储地址。如加是操作结果的存储地址。如加1、减、减1和移位等单和移位等单操作数指令。操作数指令。l(2) 在某些计算机中,指令中提供的一个地址提供在某些计算机中,指令中提供的一个地址提供一个操作数,另一个操作数是由机内硬件寄存器一个操作数,另一个操作数是由机内硬件寄存器“隐含隐含”自动提供的。所谓自动提供的。所谓“隐含隐含”是指此操

33、作是指此操作数在指令中不出现,而是按照事先约定由寄存器数在指令中不出现,而是按照事先约定由寄存器默认提供,运算结果仍送到寄存器中。因为这个默认提供,运算结果仍送到寄存器中。因为这个寄存器在连续运算时,保存着多条指令连续操作寄存器在连续运算时,保存着多条指令连续操作的累计结果,故称为累加器的累计结果,故称为累加器(AC)。微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第24页l3. 二地址指令格式二地址指令格式l如图如图3-4所示,这是最常见的指令格式。常所示,这是最常见的指令格式。常把保存操作前原来操作数的地址称为源地把保存操作前原来操作数的地址称为源地

34、址址(Source Address,SA),把保存指令执,把保存指令执行结果的地址称为目的地址目的地址行结果的地址称为目的地址目的地址(Destination Address,DA)。将源操作数。将源操作数与目的操作数进行操作码规定的操作后,与目的操作数进行操作码规定的操作后,将结果存入目的地址。通常二地址指令又将结果存入目的地址。通常二地址指令又称为双操作数指令。称为双操作数指令。微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第25页l例如,双操作数加法指令例如,双操作数加法指令lADD R0,R1表示将表示将R0寄存器的内容和寄存器的内容和R1寄存寄

35、存器的内容相加后,将结果存入器的内容相加后,将结果存入R1寄存器中。寄存器中。lADD (R0),R1表示将表示将R0寄存器的内容作为地址,寄存器的内容作为地址,到内存中取出该地址所指向的单元内容作为源操到内存中取出该地址所指向的单元内容作为源操作数,和作为目的操作数的作数,和作为目的操作数的R1寄存器的内容相加寄存器的内容相加后,将结果存入后,将结果存入R1寄存器中。寄存器中。微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第26页l4. 三地址指令格式三地址指令格式l如图如图3-5所示,其操作是对所示,其操作是对AC1、AC2指出指出的两个操作数进行操

36、作码所规定的操作,的两个操作数进行操作码所规定的操作,并将结果存入并将结果存入AC3中。例如:中。例如:ADD X Y Z表示X单元内容加上Y单元内容,结果送Z单元中。微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第27页l5. 多地址指令格式多地址指令格式l例如,四地址指令格式,如图例如,四地址指令格式,如图3-6所示,大多数算所示,大多数算术运算需要两个操作数和一个运算结果,这样一术运算需要两个操作数和一个运算结果,这样一条指令除操作码外需要给出:条指令除操作码外需要给出:l(1) 两个操作数的地址。两个操作数的地址。l(2) 存放结果的地址。存放结

37、果的地址。l(3) 下一条要执行的指令地址下一条要执行的指令地址这是计算机能够自这是计算机能够自动地、连续地并且不需人介入地执行程序所不必动地、连续地并且不需人介入地执行程序所不必不可少的。不可少的。微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第28页l四地址机器指令的优点是直观明了,所用的参数四地址机器指令的优点是直观明了,所用的参数被明显标示在指令中;每条指令都有明确的下条被明显标示在指令中;每条指令都有明确的下条指令地址,程序执行的流向明确;操作数和结果指令地址,程序执行的流向明确;操作数和结果可以分散在内存各处。缺点是指令字长度太长。可以分散在

38、内存各处。缺点是指令字长度太长。l在某些性能较好的大、中型计算机甚至高档微小在某些性能较好的大、中型计算机甚至高档微小型机中,往往设置一些功能强大,用于处理特殊型机中,往往设置一些功能强大,用于处理特殊对象的指令,如字符串处理指令、向量和矩阵运对象的指令,如字符串处理指令、向量和矩阵运算指令等。为了描述一批数据,指令中需要多个算指令等。为了描述一批数据,指令中需要多个地址来指出数据存放的首地址、长度等信息。例地址来指出数据存放的首地址、长度等信息。例如如CDC-STAR-100的矩阵运算指令,它有的矩阵运算指令,它有7个地个地址段,用于指出运算的两个矩阵存储情况及结果址段,用于指出运算的两个矩

39、阵存储情况及结果的存放情况。的存放情况。微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第29页l一台计算机选择怎样的指令格式,涉及多方面因素,一般一台计算机选择怎样的指令格式,涉及多方面因素,一般要求指令的字长要尽量短一些,以得到时间和空间上的优要求指令的字长要尽量短一些,以得到时间和空间上的优势。指令字长越短,意味着要占用的存储器规模就越小,势。指令字长越短,意味着要占用的存储器规模就越小,存取所需要的时间就可能越少。在同一个存储器的同一传存取所需要的时间就可能越少。在同一个存储器的同一传输速率下,每秒钟从存储器中能读出的短指令数目肯定会输速率下,每秒

40、钟从存储器中能读出的短指令数目肯定会比长指令的读出数目多,从而使处理器执行指令的速度加比长指令的读出数目多,从而使处理器执行指令的速度加快。快。l指令也必须有足够的长度以利于增加信息量。尽管希望指指令也必须有足够的长度以利于增加信息量。尽管希望指令字长尽量短,但必须满足指令系统的要求,至少要具有令字长尽量短,但必须满足指令系统的要求,至少要具有必要的操作码位数与操作数地址字段的位数。随着字长的必要的操作码位数与操作数地址字段的位数。随着字长的增加,操作码和操作数地址可使用的位数也成比例地增加,增加,操作码和操作数地址可使用的位数也成比例地增加,每条指令的内容也就越丰富。每条指令的内容也就越丰富

41、。微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第30页l再者,指令字长一般应是机器字符长度的整数倍以便于存再者,指令字长一般应是机器字符长度的整数倍以便于存储系统的管理。若机器中字符码长是储系统的管理。若机器中字符码长是L位,则机器字长最位,则机器字长最好是好是L、2L、4L或或8L等。这样就能使一个字存储单元能够等。这样就能使一个字存储单元能够存放整个字符,否则在存储字符时,一个或几个字符就无存放整个字符,否则在存储字符时,一个或几个字符就无法存满一个字存储单元,造成存储空间的浪费。当然也可法存满一个字存储单元,造成存储空间的浪费。当然也可以规定每个

42、字单元存储如以规定每个字单元存储如2.5或或3.5个字符,但这样做会使个字符,但这样做会使存取字符非常不方便。而一个指令字可能占用一个字或几存取字符非常不方便。而一个指令字可能占用一个字或几个字单元,也可能几条指令仅占用一个字单元。这样字符个字单元,也可能几条指令仅占用一个字单元。这样字符长对字长长对字长(字单元长字单元长)的限制就影响到指令长。目前普遍采的限制就影响到指令长。目前普遍采用的用的ASCII字符编码字符编码(7位位)加一个奇偶校验位,字符长度加一个奇偶校验位,字符长度L为为8位位(称字节称字节)。机器字长在小型机是。机器字长在小型机是2字节字节(16位位),4字节字节(32位位)

43、,微型机还小到单字节,微型机还小到单字节(8位位)。微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第31页l另外,指令格式的设计还与如何选定指令另外,指令格式的设计还与如何选定指令中操作数地址的位数有关。例如,对同一中操作数地址的位数有关。例如,对同一容量容量(如如64KB)的存储器,若取存储单元为的存储器,若取存储单元为一字节长,则需要一字节长,则需要16位地址码,若存储单位地址码,若存储单元长度为元长度为32位,则只需位,则只需14位地址码。对比位地址码。对比一下会发现各有利弊:前者对字符操作方一下会发现各有利弊:前者对字符操作方便,但地址码位数多,

44、后者地址码位数少,便,但地址码位数多,后者地址码位数少,但字符操作困难,分辨率低。但字符操作困难,分辨率低。微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第32页2. 指令扩展方法指令扩展方法l指令操作码的长度决定了指令系统中完成不同操作的指令指令操作码的长度决定了指令系统中完成不同操作的指令条数。指令操作码通常有两种编码格式。条数。指令操作码通常有两种编码格式。l(1) 固定格式固定格式l在这种格式中操作码长度固定,且集中放在指令字的一个在这种格式中操作码长度固定,且集中放在指令字的一个字段中。这种格式对于简化硬件设计,减少指令译码时间字段中。这种格式

45、对于简化硬件设计,减少指令译码时间非常有利,在字长较长的大中型计算机和超级小型机以及非常有利,在字长较长的大中型计算机和超级小型机以及RISC上广泛采用。如上广泛采用。如IBM360和和VAX11系列机,操作码长系列机,操作码长度均为度均为8位。位。l(2) 可变格式可变格式l在这种格式中操作码长度可变,且分散在指令字的不同字在这种格式中操作码长度可变,且分散在指令字的不同字段中。这种格式能有效地压缩指令的平均长度,在字长较段中。这种格式能有效地压缩指令的平均长度,在字长较短的微、小型计算机中广泛采用。如短的微、小型计算机中广泛采用。如Z80、Intel8086/80386和和PDP-11等。

46、这种方法也称为扩展操作等。这种方法也称为扩展操作码方式。码方式。微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第33页l扩展操作码方法的基本思想是:操作码位扩展操作码方法的基本思想是:操作码位数不采用单一固定不变的位数,而是随地数不采用单一固定不变的位数,而是随地址码个数变化,操作码采取可变长度的类址码个数变化,操作码采取可变长度的类型。假设一台计算机指令字长型。假设一台计算机指令字长16位,操作位,操作码与地址码都为码与地址码都为4位,如图位,如图3-7所示,若采所示,若采用操作码长度固定格式,则最多可以设计用操作码长度固定格式,则最多可以设计16条三

47、地址指令,而采用扩展操作码的方条三地址指令,而采用扩展操作码的方法可以获得更大的灵活性,具体方法如下:法可以获得更大的灵活性,具体方法如下:微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第34页l(1) 4位操作码中用位操作码中用0000-1110定义定义15条三地条三地址指令,剩下的一个编码址指令,剩下的一个编码1111作为扩展标作为扩展标志与下一个志与下一个4位组成一个位组成一个8位操作码,引出位操作码,引出二地址指令;二地址指令;l(2) 8位操作码中用位操作码中用11110000-11111110定义定义15条二地址指令,剩下的一个编码条二地址指

48、令,剩下的一个编码11111111与下一个与下一个4位组成一个位组成一个12位的操作位的操作码,引出一地址指令;码,引出一地址指令;微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第35页l(3) 12位操作码中用位操作码中用111111110000-111111111110定义定义15条一地址指令,剩下的一个编码条一地址指令,剩下的一个编码111111111111与下一个与下一个4位组成位组成16位操作码,引位操作码,引出零地址指令;出零地址指令;l(4) 零地址指令最多有零地址指令最多有16种组合;种组合;l(5) 扩展操作码可以根据需要灵活设计。如在

49、第扩展操作码可以根据需要灵活设计。如在第(1)步中可以保留步中可以保留0000-1101总共总共14种编码作为三地种编码作为三地址指令使用,留出址指令使用,留出1110和和1111两个作为扩展标志两个作为扩展标志引出更多的二地址指令等,以此类推。引出更多的二地址指令等,以此类推。微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第36页l【例【例3-1】 假设某计算机的指令长度为假设某计算机的指令长度为20位,具有双操作位,具有双操作数、单操作数和无操作数三类指令形式,每个操作数地址数、单操作数和无操作数三类指令形式,每个操作数地址规定用规定用6位表示。若操

50、作码字段固定为位表示。若操作码字段固定为8位,现已设计出位,现已设计出m条双操作数指令,条双操作数指令,n条无操作数指令,在此情况下,这台条无操作数指令,在此情况下,这台计算机最多可以设计出多少条单操作数指令?计算机最多可以设计出多少条单操作数指令?l答:双操作数指令地址字段占用答:双操作数指令地址字段占用12位,操作码字段是位,操作码字段是8位。位。由于假定全部指令采用由于假定全部指令采用8位固定的位固定的OC码字段,故这台计算码字段,故这台计算机最多的指令条数为机最多的指令条数为256条。由于双操作数指令有条。由于双操作数指令有m条,条,无操作数指令有无操作数指令有n条,因此单操作数指令最

51、多还可以设计条,因此单操作数指令最多还可以设计出出(256-m-n)条。条。l如果采用扩展操作码的方法来设计,则在同样的前提下,如果采用扩展操作码的方法来设计,则在同样的前提下,该计算机的指令系统将获得更多的灵活性,读者计算后可该计算机的指令系统将获得更多的灵活性,读者计算后可以很容易发现这一点。以很容易发现这一点。微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第37页l3.3 寻 址 方 式l3.3.1. 指令寻址方式指令寻址方式l3.3.2. 操作数寻址方式操作数寻址方式微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月

52、24日第38页3.3 寻 址 方 式l寻址方式指的是确定本条指令的数据地址以及下寻址方式指的是确定本条指令的数据地址以及下一条要执行的指令地址的方法。它对丰富程序设一条要执行的指令地址的方法。它对丰富程序设计手段、方便程序的编制、提高程序的质量、压计手段、方便程序的编制、提高程序的质量、压缩程序占用的存储空间等方面都起着重要作用。缩程序占用的存储空间等方面都起着重要作用。l一般把指令中直接给出的地址称为形式地址一般把指令中直接给出的地址称为形式地址(Formal Address,FA)。从形式地址生成有效地。从形式地址生成有效地址址(Effective Address,EA)的各种方式称为寻址

53、的各种方式称为寻址方式,也称为各种不同的存储器访问方式。每种方式,也称为各种不同的存储器访问方式。每种寻址方式都有一种对形式地址进行变换处理的运寻址方式都有一种对形式地址进行变换处理的运算规则。通常这些运算变换是由硬件自动实现的。算规则。通常这些运算变换是由硬件自动实现的。微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第39页l寻址方式的引入带来以下的好处:寻址方式的引入带来以下的好处:l(1) 丰富程序设计手段,提高程序质量。丰富程序设计手段,提高程序质量。l(2) 减少访问主存的次数,压缩程序占用的存储空间。保证指令的地址码字段减少访问主存的次数,压

54、缩程序占用的存储空间。保证指令的地址码字段尽可能缩短,而访问的存储空间尽可能地大。尽可能缩短,而访问的存储空间尽可能地大。l例如,假定在以地址例如,假定在以地址A为起始的连续存储区内,依次存放着数据表内的各元为起始的连续存储区内,依次存放着数据表内的各元素,编写一个求连续素,编写一个求连续100个元素之和的程序;又如,将内存中某一数据区中个元素之和的程序;又如,将内存中某一数据区中连续的数据传递到另一个区域当中,这种数据处理情况在程序设计时经常出连续的数据传递到另一个区域当中,这种数据处理情况在程序设计时经常出现。若采用变址寻址方式,以上两种情况的处理就变得非常简单。现。若采用变址寻址方式,以

55、上两种情况的处理就变得非常简单。l再如,类似于图书馆对所有书籍的管理,若一组数据可以存放在内存中任意再如,类似于图书馆对所有书籍的管理,若一组数据可以存放在内存中任意位置,如何组织才能使得数据的查找、更新最为快捷方便。利用间接寻址方位置,如何组织才能使得数据的查找、更新最为快捷方便。利用间接寻址方式对于这种情况的处理是十分方便的,就相当于对所有图书建立索引一样。式对于这种情况的处理是十分方便的,就相当于对所有图书建立索引一样。l还有,若在指令中操作数地址字段直接明确地指出操作数在主存器中的具体还有,若在指令中操作数地址字段直接明确地指出操作数在主存器中的具体位置,则这种指令可能访问位置,则这种

56、指令可能访问(指读或写指读或写)的主存储器空间的大小,取决于操作的主存储器空间的大小,取决于操作数地址字段的位数。如假设指令字长是数地址字段的位数。如假设指令字长是16位,操作数地址字段位,操作数地址字段10位,则指令位,则指令可访问的主存空间最多只能是可访问的主存空间最多只能是210=1024个单元。但如果我们在操作数地址字个单元。但如果我们在操作数地址字段采用寄存器寻址方式,则既可以使指令的字长缩短,又可以获得较大的存段采用寄存器寻址方式,则既可以使指令的字长缩短,又可以获得较大的存储器访问空间。储器访问空间。微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月

57、24日第40页l寻址方式的类型很多,选用的依据是:寻址方式的类型很多,选用的依据是:l(1) 要与数据的表示方式相配合,对各种结要与数据的表示方式相配合,对各种结构的数据能方便地进行存取和处理。构的数据能方便地进行存取和处理。l(2) 要与指令系统相匹配,依据对机器性能要与指令系统相匹配,依据对机器性能要求的高低来考虑选择。要求的高低来考虑选择。l(3) 还要考虑硬件实现的可能性与复杂程度、还要考虑硬件实现的可能性与复杂程度、成本高低、设备与价格增加的合理性。成本高低、设备与价格增加的合理性。微机原理与接口技术微机原理与接口技术 清华大学出版社清华大学出版社2013年4月24日第41页3.3.

58、1. 指令寻址方式指令寻址方式l指令的寻址方式有两种,一种是顺序寻址方式,另一种是跳跃寻址方式。指令的寻址方式有两种,一种是顺序寻址方式,另一种是跳跃寻址方式。l(1) 顺序寻址方式顺序寻址方式l由于指令地址在内存中按顺序安排,当执行一段程序时,通常是一条指令、由于指令地址在内存中按顺序安排,当执行一段程序时,通常是一条指令、一条指令地顺序进行。就是说,从存储器取出第一条指令,然后执行这条指一条指令地顺序进行。就是说,从存储器取出第一条指令,然后执行这条指令;接着从存储器取出第二条指令,再执行第二条指令;接着再取出第三条令;接着从存储器取出第二条指令,再执行第二条指令;接着再取出第三条指令指令

59、。这种程序顺序执行的过程,我们称为指令的顺序寻址方式。为此,。这种程序顺序执行的过程,我们称为指令的顺序寻址方式。为此,必须使用程序计数器必须使用程序计数器(又称指令指针寄存器又称指令指针寄存器)PC来计数指令的顺序号,该顺序来计数指令的顺序号,该顺序号就是指令在内存中的地址。号就是指令在内存中的地址。l(2) 跳跃寻址方式跳跃寻址方式l当程序转移执行时,指令的寻址就采取跳跃寻址方式。所谓跳跃,是指下条当程序转移执行时,指令的寻址就采取跳跃寻址方式。所谓跳跃,是指下条指令的地址码不是由程序计数器给出,而是由本条指令给出。程序跳跃后,指令的地址码不是由程序计数器给出,而是由本条指令给出。程序跳跃

60、后,按新的指令地址开始顺序执行。因此,指令计数器的内容也必须相应改变,按新的指令地址开始顺序执行。因此,指令计数器的内容也必须相应改变,以便及时跟踪新的指令地址。以便及时跟踪新的指令地址。l采用指令跳跃寻址方式,可以实现程序转移或构成循环程序,从而能缩短程采用指令跳跃寻址方式,可以实现程序转移或构成循环程序,从而能缩短程序长度,或将某些程序作为公共程序引用。指令系统中的各种条件转移或无序长度,或将某些程序作为公共程序引用。指令系统中的各种条件转移或无条件转移指令,就是为了实现指令的跳跃寻址而设置的。条件转移指令,就是为了实现指令的跳跃寻址而设置的。微机原理与接口技术微机原理与接口技术 清华大学

温馨提示

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

评论

0/150

提交评论