版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ForStudentsofLab2010(ComputerOrganizationPrinciples)主讲教师蒋永国(jiangyg@)
(信息学院南楼,B313室)实验教师
徐惠敏(yziping@)
1计算机硬件系统组成(章节分配)运算器控制器主存储器输入设备输出设备总线和I/O接口高速缓存虚拟存储器(磁盘设备)第一部分(2,3章)第二部分(5,6章)第三部分(4,7,8章)第四部分(9,10章)2第5章指令系统(目录部分)5.1指令系统的发展
5.2指令格式5.3数据表示5.4寻址方式(编址方式)5.5指令类型5.6指令系统的兼容性5.7RISC和CISC5.8指令系统举例5.9机器语言、汇编语言和高级语言3第5章指令系统本章重点和难点寻址方法的应用指令操作码的扩展编码技术RISC的概念和特征4第5章指令系统的发展
指令系统的重要性
→
“分水岭”
计算机的性能与它设置的指令系统有很大关系,而指令系统的设置又与机器的硬件结构有关。计算机系统=硬件+软件软件的设计基础是计算机的指令系统。指令:使计算机完成基本运算所需信号的组合,包括数据、地址和控制信息。一台计算机使用和支持的全部指令构成该机的指令系统。51、符号化表示(汇编指令)如: ADDAX,BX
SUBAX,BX
等特点:直观、易读、易记;
助记符号可以任意选择,但与所选用的汇编解释程序应保持一致.2、二进制数表示的指令(机器指令)如: 00001011、0001110等特点:难读、但能被机器直接识别.第5章指令系统的发展(指令的两种表示形式)6第5章指令系统的发展Ⅰ分立元件的计算机指令系统较简单,指令少,寻址方式简单.集成电路的计算机指令多达一,二百条,寻址方式也趋于多样化为了减少软件开发费用,软件兼容,出现了系列机,IBM360、PDP-11系列8086,286,386,486,Pentium系列.
一个系列有多种型号,各型号的组织和性能可以有很大差异,系列机解决软件兼容问题的必要条件是该系列机有共同的指令集,而且新机种的指令系统一定包含旧机种的所有指令(向下兼容)。7第5章指令系统的发展Ⅱ指令系统的改进是围绕着缩小指令与高级语言的语义差异以及有利于操作系统的优化而进行的.指令系统太复杂也会带来一些不利的因素。在复杂指令系统中,算术-逻辑运算,数据传送,转移和子程序调用等基本指令是经常使用的,其他的复杂指令的利用率很低,
☆复杂指令系统计算机(CISC)于是,提出了☆精简指令系统计算机(RISC)8第5章指令格式
要评价一台计算机的指令系统,通常从以下四个方面考虑:指令系统的完备性
—常用指令齐全、编程方便。指令系统的高效性
—程序占用的内存空间少、运行速度快。指令系统的规整性
—指令和数据使用规则统一简单、易学易记。指令系统的兼容性
—同一系列的抵档计算机的程序能在高档计算机上直接运行。9第5章指令格式Ⅰ一条指令必须包含下列信息:操作码:操作的性质和功能操作数的地址操作结果的地址下一条指令的地址总之,指令中包含操作码和地址码操作码地址码机器执行什么操作执行对象(具体数、存放位置)指令是对计算机进行程序控制的最小单位。所有的指令的集合称为计算机的指令系统。101、零地址指令格式:OPCODE
OPCODE=OperationCode
指令中只有操作码没有操作数或地址。两种可能:(1)无需操作数,例如:NOP、HLT,也叫无操作数指令(2)操作数是默认的第5章指令格式11第5章指令格式2.一地址指令
A-----操作数的存储地址或寄存器名例如:递增,移位,取反,INCAX,NOTBX
格式:OPCODEA12第5章指令格式3.二地址指令
A1-----第一个源操作数的存储地址或寄存器地址。A2-----第二个源操作数和存放结果的存储地址或寄存器地址例如:[AX]+[BX]→[AX]ADDAX,BX格式:OPCODEA1A213第5章指令格式4.三地址指令
A1-----第一个源操作数的存储地址或寄存器地址。A2-----第二个源操作数的存储地址或寄存器地址。A3-----操作结果的存储地址或寄存器地址格式:OPCODEA1A2A35.多地址指令:用于实现成批数据处理。14前面5种指令格式并非所有计算机都具有,零地址、一地址和两地址指令多用于小型机、微型机。两地址、三地址和多地址多为字长较长的大、中型机采用。注意:计算机中指令和数据都是以二进制码的形式存储的。但是,指令的地址是由程序计数器(PC)规定的。而数据的地址是由指令规定的。第5章指令格式15第5章指令格式--指令操作码的扩展指令操作码的位数限制指令系统中完成操作的指令条数。若操作码长度为K,最多有2k条不同指令。固定格式操作码操作码长度固定,一般集中于指令字的一个字段中。在字长较大的大中型以及超级小型机上广泛使用。优点:有利于简化硬件设计,减少译码时间可变格式操作码即操作码长度可以改变,且分散放在指令字的不同字段中。这种方法在不增加指令字长度的情况下可表示更多的指令,但增加了译码和分析难度,需更多硬件支持。微机中常使用此方式。如Z-80,Intel8086/Pentium等.16假设某机器的指令长度为16位,包括4位基本操作码和三个4位地址码段。
15…1211……87……43…..0
OPA1A2A34位基本操作码可表示16个状态,因此如用4位操作码则能表示16条三地址指令,而用8位操作码则可表示256条二地址指令。而用12位操作码则可表示4096条一地址指令。第5章指令格式--指令操作码的扩展17第5章指令格式Ⅲ
指令操作码的扩展等长编码(在字长较长的大、中型机和超级小型机以及RISC上广泛采用。若操作码占n位,则指令条数2n)简化硬件设计,减少指令译码时间IBM370len(OP)=8bits,256条指令不等长编码对于一部分不需要某个地址码的指令,把它们的操作码扩充到该地址字段,这样既能充分利用指令的各个字段,又能在不增加指令长度的情况下扩展操作码的长度,使它能表示更多的指令.15/15/15扩展法15/14/31扩展法8/64/512扩展法Huffman编码法在字长较短的微型机上广泛采用。如Z80、Intel8086/Pentium等。增加指令译码和分析的难度,使控制器的设计复杂化。18第5章指令操作码的扩展15/15/15扩展法机器字长位16位,设计一个具有15条三地址指令、15条双地址指令、15条单地址指令和16条零地址指令的指令系统。(保留一个码点)0000XXXXXXXXXXXX1110XXXXXXXXXXXX11110000XXXXXXXX11111110XXXXXXXX111111110000XXXX111111111110XXXX11111111111100001111111111111111OPA1A2A315条三地址指令15条二地址指令15条单地址指令16条零地址指令19第5章指令操作码的扩展15/14/31扩展法机器字长位16位,设计一个具有15条三地址指令、14条双地址指令、31条单地址指令和16条零地址指令的指令系统。(保留一个码点)0000XXXXXXXXXXXX1110XXXXXXXXXXXX11110000XXXXXXXX11111101XXXXXXXX111111100000XXXX111111111110XXXX11111111111100001111111111111111OPA1A2A315条三地址指令14条二地址指令31条单地址指令16条零地址指令20机器字长位16位,设计一个具有8条三地址指令、64条双地址指令、512条单地址指令和8192条零地址指令的指令系统。(保留一位标志位)0000XXXXXXXXXXXX0111XXXXXXXXXXXX10000000XXXXXXXX10111111XXXXXXXX110000000000XXXX110111111111XXXX11100000000000001111111111111111OPA1A2A3
8条三地址指令64条二地址指令512条单地址指令8192条零地址指令第5章指令操作码的扩展8/64/512扩展法21第5章指令操作码的扩展可变长度的指令系统的设计,到底使用何种扩展方法有一个重要的原则:
使用频度(即指令在程序中的出现概率)高的指令应分配短的操作码;使用频度低的指令相应地分配较长的操作码.
作用:构成的指令系统的平均码长最短。节省存储器空间,缩短了经常使用的指令的译码时间,因而可以提高程序的运行速度。
即:L=(Pi*li)其中,Pi为指令出现的概率,li为指令分配的码长。22实现:按概率分布情况,构成一棵Huffman树,然后从树根沿着树枝到达信息单元(指令出现的概率点),在每个分枝上、下(或左、右)写上0和1,直到全部编码完毕;指令编码为:从树根开始,沿着树枝写出各个信息单元的全部代码。第5章指令操作码的扩展Huffman编码法23某机器共有7条指令,其使用统计频度如下,求出该系统的平均信息量(最短平均码长),若采用定长编码,则系统的信息冗余量为多少?指令使用频度
I10.45I20.28I30.17I40.05I50.03I60.01I70.01解:H=(
-Pi*Log2Pi)
(比特)=(-0.45*Log100.45-0.28*Log100.28-0.17*Log100.17-0.05*Log100.05-0.03*Log100.03-2*0.01*Log100.01)/Log102=1.97BITS第5章指令操作码的扩展Huffman编码法24I70.01I60.01I50.03I40.05I30.17I20.28I10.45平均码长L=(Pi*li)=2*(0.45+0.28+0.17)+4*(0.05+0.03+0.01+0.01)=2.2冗余量=(2.2-1.97)/2.2*100%=10.5%111111000000H码长L=1*0.45+2*0.28+3*0.17+4*0.05+5*0.03+2*6*0.01=1.99第5章指令操作码的扩展Huffman编码法25第5章指令格式
指令长度与字长的关系字长是指计算机能直接处理的二进制数据的位数字长决定了计算机的运算精度为了便于处理字符数据和尽可能地充分利用存储空间,一般机器的字长是字节长度的1,2,4,或8倍指令的长度(是指一个指令字中包含二进制代码的位数)主要取决于操作码的长度,操作数地址的长度和操作数地址的个数.由于操作码的长度,操作数地址的长度及指令格式不同,各指令的长度不是固定的.指令的长度与机器的字长没有固定的关系。
□指令长度可以小于或等于字长,也可以大于字长.前者称为短格式指令,后者称为长格式指令。
□指令的长度通常为字节的整数倍。
□一条指令存放在地址连续的存储单元中。26第5章数据表示操作数的类型
逻辑(布尔)数、定点数(整数)、浮点数(实数)、十进制数、字符串、数组等.操作数的存储方式
字节半字单字双字27第5章数据表示操作数的存储方式一个数据的位数>1字节或1个字的宽度,这个数据就需要存储在相邻的多个字节的位置上。按照高位数据和低位数据在存储器中的存储次序,可分为大数端和小数端两种存储方式。将最低字节存储在最小地址位置的存储方式称为小数端方式(LittleEndian)。将最低字节存储在最大地址位置的存储方式称为大数端方式(BigEndian)。许多新型计算机系统结构都同时支持大数端和小数端数据存储方式。
28例:十进制数1000000,用十六进制数据表示为:F4240H,在32位数据类型中存储为00
0F
42
40H。(1)小数端存放(DEC和Intel)
40
42
0F
00
0
1
2
3存储器地址编号(2)大数端存放(IBM和Motorola)
00
0F
42
40
0
1
2
3第5章数据表示29第5章数据表示(不浪费存储器资源的存放方法)存储字64位(8个字节)现有一批数据,依次为:字节、半字、双字、单字。
4种不同长度的数据一个紧接着一个存放。字长32位.
☆优点是不浪费宝贵的主存资源,
但存在的问题:当访问的一个双字、单字或半字跨越两个存储单元时,存储器的工作速度降低了一半,而且读写控制比较复杂。30第5章数据表示(从存储字的起始位置开始存放的方法)无论要存放的是字节、半字、单字或双字,都必须从存储字的起始位置开始存放,而空余部分浪费不用。
☆优点:无论访问一个字节、半字、单字或双字都可以在一个存储周期内完成,读写数据的控制比较简单。☆缺点:浪费了宝贵的存储器资源。存储字64位(8个字节)31第5章数据表示(边界对齐的数据存放方法)此方法规定,双字地址的最末3个二进制位必须为000,单字地址的最末两位必须为00,半字地址的最末一位必须为0。它能够保证无论访问双字、单字、半字或字节,都在一个存取周期内完成,尽管存储器资源仍然有浪费。存储字64位(8个字节)018162432917253321018311194122051321614227152326342728363529373031393832Struct{
inta;//0x1112_1314 字
intpad;// doubleb;//0x2122_2324_2526_2728 双字
char*c;//0x3132_3334 字
chard[7];//’A’,’B’,’C’,’D’,’E’,’F’,’G’ 字节阵列
shorte;//0x5152 半字
intf; //0x6162_6364 字}s;大:大端次序的存储器中位序小:小端次序的存储器中位序00111213140408212223240C25262728103132333414‘A’‘B’‘C’‘D’18’E‘’F‘’G‘1C5152206162大636400141312110408282726250C24232221103433323114’A‘’B‘’C‘’D‘18’E‘’F‘’G‘1C5251206463小6261两种字节次序举例Ⅰ33大端地址映射字节地址1112131400000102030405060721222324252627280808090A0B0C0D0E0F31323334‘A’‘B’‘C’‘D’101011121314151617‘E’‘F’‘G’51521818191A1B1C1D1E1F616263642020212223小端地址映射11121314字节地址07060504030201000021222324252627280F0E0D0C0B0A090808‘D’‘C’‘B’‘A’313233341716151413121110105152‘G’‘F’‘E’1F1E1D1C1B1A191818616263642322212020两种字节次序举例Ⅱ34第5章寻址方式寻址方式(Addressingmode):确定本条指令的数据地址及下一条要执行的指令地址的方法。不同类型计算机的寻址方式亦有差别,但大多可以归结为立即寻址、直接寻址、间接寻址、变址寻址以及相对寻址等几种寻址方式,或者这几种方式的组合与变形。35第5章寻址方式1.编址方式⑴字编址
编址单位=访问单位每个编址单位所包含的信息量(二进制位数)与读或写一次寄存器、主存所获得的信息量是相同的。早期的大多数机器都采用这种编址方式。36
⑵字节编址字节编址为了适应非数值计算的需要。字节编址方式使编址单位与信息的基本单位(一个字节)相一致,这是它的最大优点。然而,如果主存的访问单位也是一个字节的话,那么主存的频带就太窄了。编址单位<访问单位
通常主存的访问单位是编址单位的若干倍。⑶位编址有部分计算机系统采用位编址方式。第5章寻址方式372.指令中地址码的位数指令格式中每个地址码的位数是与主存容量和最小寻址单位(即编址单位)有关联的。主存容量越大,所需的地址码位数就越长。对于相同容量来说,如果以字节为最小寻址单位,地址码的位数就需要长些;如果以字为最小寻址单位(假定字长为16位或更长),地址码的位数可以减少。例如:设某机主存容量为220个字节,机器字长32位。若最小寻址单位为字节(按字节编址),其地址码应为20位;若最小寻址单位为字(按字编址),其地址码只需18位。第5章寻址方式38第5章寻址方式指令寻址和数据寻址
寻址可以分为指令寻址和数据寻址。寻找下一条将要执行的指令地址称为指令寻址,寻找操作数的地址称为数据寻址。
其中,指令寻址比较简单,它又可以细分为顺序寻址和跳跃寻址。而数据寻址方式种类较多,其最终目的都是寻找所需要的操作数。
39
顺序寻址可通过程序计数器PC加1,自动形成下一条指令的地址;跳跃寻址则需要通过程序转移类指令实现。
跳跃寻址的转移地址形成方式有3种:直接(绝对)、相对和间接寻址,它与下面介绍的数据寻址方式中的直接、相对和间接寻址是相同的,只不过寻找到的不是操作数的有效地址而是转移的有效地址而已。第5章寻址方式指令寻址方式40
数据寻址方式是根据指令中给出的地址码字段寻找真实操作数地址的方式。
指令中的形式地址A───→有效地址EA
每种计算机的指令系统都有自己的一套数据寻址方式,不同计算机的寻址方式的名称和含义并不统一,下面介绍大多数计算机常用的几种基本寻址方式。数据寻址方式寻址方式第5章寻址方式411.直接寻址(DirectAddressing)2.寄存器寻址方式(RegisterAddressing)3.基址寻址(BasedAddressing)4.变址寻址(IndexedAddressing)5.间接寻址(IndirectAddressing)6.相对寻址(RelativeAddressing)7.立即寻址(ImmediateAddressing)8.堆栈寻址(StackAddressing)第5章寻址方式42第5章寻址方式指令的地址码部分给出的就是操作数在存储器中的地址。特点是简单直观, 便于硬件实现,但 操作数地址是指令 的一部分,只能用 于访问固定的存储 器单元。例:MOVAX,[0110H]存储器OP……A
操作数0110H一、直接寻址(Directaddressing)存储器…
MA
操作数0110HOP有些指令中增加一个M字段,例如3位,可表示8种寻址方式43第5章寻址方式在指令的地址码部分给出某一寄存器的名称(地址),而所需的操作数就在这个寄存器中。这种方式数据传送快,计算机中多用。例:MOVAX,BX 其中BX为源操作数地址,AX为目的操作数地址;操作的结果为将BX中的数据传送(拷贝)到AX中。二、寄存器寻址(RegisterAddressing)44第5章寻址方式三、基址寻址(BasedAddressing)机器内设置一个基址寄存器,操作数的地址由基址寄存器的内容和指令的地址码A相加得到。地址码A通常称为位移量(disp)或偏移量。45基址寻址过程第5章寻址方式三、基址寻址(BasedAddressing)46第5章寻址方式四、变址寻址(IndexedAddressing)
把CPU中变址寄存器的内容和指令地址部分给出的地址之和作为操作数的地址来获得操作数。这种方式多用于字串处理、矩阵运算和成批数据处理。
OP…………..RxAKRx:加法器存储器操作数A+K:A:数组47基址寻址面向系统,解决程序的存储定位问题;一般用户编程是用不到此方式.变址寻址面向用户,用以访问字串和数组。第5章寻址方式四、变址寻址(IndexedAddressing)三、基址寻址(BasedAddressing)区别48第5章寻址方式五、间接寻址(Indirectaddressing)优点:改变寄存器Rn中的内容就可访问内存的不同地址。修改十分方便。缺点:二次寻址速度慢。例:MOVAX,[BX]存储器OP……Rn
A:操作数Rn:A1.寄存器间接寻址在指令的地址码部分直接给出的既不是操作数也不是操作数的地址,而是操作数地址的地址。分为寄存器间接寻址和存储器间接寻址.49寄存器号指令操作数寄存器堆寄存器寻址方式:寄存器号指令寄存器堆EA寄存器间接寻址方式:操作数存储器第5章寻址方式寄存器寻址与寄存器间接寻址-区别50第5章寻址方式2.存储器间接寻址51以转移指令Jump为例,说明直接寻址和间接寻址方式下如何确定下一条要执行的指令的地址.K:JumpA1……
A1×
××
×
……K:Jump(A1)……A1A2……
A2×
××
×
52A指令存储器操作数直接寻址方式:操作数间接寻址方式:A指令EAEA:第5章寻址方式直接寻址与间接寻址-区别53间接寻址要比直接寻址灵活得多,它的主要优点为:
①扩大了寻址范围,可用指令的短地址访问大的主存空间。
②可将主存单元作为程序的地址指针,用以指示操作数在主存中的位置。当操作数的地址需要改变时,不必修改指令,只需修改存放有效地址的那个主存单元(间接地址单元)的内容就可以了。第5章寻址方式54六、相对寻址(Relativeaddressing)程序计数器PC的内容与指令中地址码部分给出的偏移量(Disp)之和作为操作数的地址或转移地址,称为相对寻址方式。
相对寻址有两个特点:1)由于目的地址随PC变化不固定,所以非常适用于浮动程序的装配与运行。2)偏移量可正可负,通常用补码表示。相对寻址方式主要应用于相对转移指令。转移地址为(PC)+disp第5章寻址方式55六、相对寻址(Relativeaddressing)第5章寻址方式56第5章寻址方式优点:取指同时取得操作数,提高指令的运行速度。缺点:操作数的长度受指令长度的影响,且不便修改。适合操作数固定的情况。例:MOVAX,1AH的结果:(AX)←
1AH七、立即寻址(Immediateaddressing)所需的操作数由指令的地址码部分直接给出,称为立即寻址(立即数寻址)。57八、堆栈寻址(Stackaddressing)第5章寻址方式堆栈是由若干个连续主存单元组成的先进后出(firstinlastout,即FILO)存储区,第一个放入堆栈的数据存放在栈底,最近放入的数据存放在栈顶。栈底是固定不变的,而栈顶是随着数据的入栈和出栈在时刻变化。栈顶的地址由堆栈指针SP指明。一般计算机中,堆栈从高地址向低地址扩展,即栈底的地址总是大于或等于栈顶的地址,称为上推堆栈;也有少数计算机相反,称为下推堆栈。堆栈寻址主要用来暂存中断和子程序调用时现场数据及返回地址。58八、堆栈寻址(Stackaddressing)第5章寻址方式存储器堆栈段栈底SP栈顶堆栈的结构及操作:压栈指令:PUSHOPR操作:(SP)-2→SPOPR→
(SP)弹栈指令:POPOPR操作:((SP))→OPR(SP)+2→SP59第5章寻址方式常用的寻址技术
A=指令中地址字段内容;EA:有效地址方式算法优点缺点直接EA=A简单地址范围有限寄存器EA=R无存储器访问地址范围有限间接EA=(A)大的地址范围多重存储器访问寄存器间接EA=(R)大的地址范围额外地址访问立即操作数=A无存储器访问操作数大小受限堆栈EA=栈顶无存储器访问应用有限偏移EA=A+(R)灵活复杂
偏移是指基址寻址,变址寻址,相对寻址60
例题:一种两地址RS型指令的结构如下所示,其中I为间接寻址标志位,X为寻址模式字段,D位偏移量字段。通过I,X,D的组合,可构成下表所式的寻址方式。请写出六种寻址方式的名称。6位4位1位2位16位寻址方式表OP---通用寄存器IX偏移量D寻址方式IX有效地址E算法说明(1)
(2)(3)(4)(5)(6)000110000110110011
E=DE=(PC)±DE=(R2)±DE=(R3)
E=(D)
E=(R1)±DR2为变址寄存器R1为基址寄存器61解:1,直接寻址2,相对寻址3,变址寻址4,寄存器间接寻址5,间接寻址6,基址寻址62第5章指令类型指令系统的设计是计算机系统设计中的一个核心问题.不仅与计算机的硬件结构紧密相关,而且直接影响编写操作系统和编译程序的难易程度。6316位8086(8088)基本指令-133条80286增加保护方式指令80386开始扩展为32位指令系统80386新增许多位操作指令80486新增6条指令:3条特权指令,3条交换指令Pentium新增6条指令,如处理器识别指令CPUIDPentiumPro增加3条指令,如条件传送指令CMOV.第5章指令类型64第5章指令类型-x86指令数的发展8086:133条→Pentium4:505条655.5指令的类型一个指令系统常有几十、几百条指令,但按功能可以划分为如下几大类:5.5.1指令的分类及功能1.算术与逻辑运算指令算术运算指令:一般指定点数运算如:加ADD、减SUB、乘MUL、除DIV运算。逻辑运算:一般包括逻辑与AND,逻辑或OR,逻辑非NOT,逻辑异或XOR等运算。按位进行运算。66逻辑左移、算术左移
CF0循环左移CF
CF带进位循环左移CF算术右移
0CF逻辑右移CF循环右移CF带进位循环右移5.5指令的类型2.移位操作指令675.5指令的类型循环移位:有不带进位循环和带进位循环。前者循环后的溢出位进标志位,后者与标志位一起循环。685.5指令的类型3.浮点运算指令高级语言中的实数(real)经常是先转换成浮点数后再做处理。某些机器没有设置浮点运算指令而用子程序实现,速度较低。主要是用于科学计算的计算机设置浮点运算指令。例如:st(i):代表浮点寄存器FLDsrc:装入实数到st(0)FADD:实数加st(0)<-st(0)+st(1)FSUB实数减,FMUL实数乘,FDIV实数除
695.5指令的类型4.十进制运算指令在输入输出数据频繁的计算机系统中设置十进制运算指令能提高数据处理速度。采用BCD码进行运算。705.5指令的类型5.字符串处理指令包括:字符串的传送(MOVS)、比较(CMPS)、查找(SCANS)、字符串的转换等操作指令。字符串处理指令是一种非数值处理指令。用于各种文字编辑与排版处理715.5指令的类型6.数据传送指令用以实现寄存器与寄存器之间(MOVAX,BX)寄存器与内存单元之间(MOV[0001H],AX)以及内存单元相互之间的数据传送。数据能够被从源地址传送到目的地址,而源地址中数据不变,相当于复制。727、转移类指令
无条件转移指令不受任何条件约束,直接把程序转移至指令所规定的新地址开始执行程序。一般为JUMP(JMP)
指令。
作用:根据逻辑判断结果,改变程序的执行顺序。按转移的性质又可分为无条件转移、条件转移、过程调用与返回、陷阱等几种。(1)无条件转移5.5指令的类型735.5指令的类型条件转移指令根据当前运算的结果进行逻辑判断,符合判断条件则转移到指令表明的新地址处执行程序,否则继续按原顺序执行原来的程序。
(2)条件转移
运算器中一般根据运算结果设置条件码(标志位),条件转移指令根据条件满足与否决定是否转移。74指令的助记符检测的转移条件功能描述JCCF=1JumpCarryJNCCF=0JumpNotCarryJOOF=1JumpOverflowJNOOF=0JumpNotOverflowJP/JPEPF=1JumpParityorJumpParityEvenJNP/JPOPF=0JumpNotParityorJumpParityOddJSSF=1JumpSign(negative)JNSSF=0JumpNoSign(positive)JCXZ(CX)=0JumpCXregisterZero根据运算标志位的条件转移指令75指令的助记符检测的转移条件功能描述JE/JZZF=1JumpEqualorJumpZeroJNE/JNZZF=0JumpNotEqualorJumpNotZeroJAE/JNBCF=0JumpAboveorEqualorJumpNotBelowJB/JNAECF=1JumpBeloworJumpNotAboveorEqualJA/JNBECF=0andZF=0JumpAboveorJumpNotBeloworEqualJBE/JNACF=1orAF=1JumpBeloworEqualorJumpNotAbove无符号数的条件转移指令A:above
B:below76指令的助记符检测的转移条件功能描述JE/JZZF=1JumpEqualorJumpZeroJNE/JNZZF=0JumpNotEqualorJumpNotZeroJGE/JNLSF=OFJumpGreaterorEqualorJumpNotLessJL/JNGESF≠OFJumpLessorJumpNotGreaterorEqualJG/JNLEZF=0andSF=OFJumpGreaterorJumpNotLessorEqualJLE/JNGZF=1orSF≠OFJumpLessorEqualorJumpNotGreater有符号数的条件转移指令L:less
G:greater77(3)过程调用指令和返回指令调用指令实现从一个程序转去执行子程序的操作;返回指令则使CPU结束执行子程序而返回执行原程序。调用指令(CALL)和返回指令(RETURN)是一对配合使用的指令.调用指令与转移指令的主要差别:前者需要保留返回地址.5.5指令的类型785.5指令的类型(4)陷阱(trap)与陷阱指令计算机运行过程中,有时可能出现故障,一旦出现故障计算机就发出陷阱信号,并暂停当前程序的执行(中断),转入相应故障处理程序。一般计算机中,陷阱指令作为隐含指令(含义?)。但是:软件中断指令IntType可供用户使用.
例如int21H-DOS功能调用MOVAH,4CHINT21H
;是返回DOS系统的
795.5指令的类型1)寄存器堆栈
用一组专门的寄存器构成寄存器堆栈,又称为硬堆栈。这种堆栈的栈顶是固定的,寄存器组中各寄存器是相互连接的,它们之间具有对应位自动推移的功能,即可将一个寄存器的内容推移到相邻的另一个寄存器中去。8、堆栈及堆栈操作指令堆栈分为两类:寄存器堆栈和存储器堆栈.805.5指令的类型寄存器堆栈寄存器堆栈结构815.5指令的类型2)存储器堆栈
从主存中划出一段区域来作堆栈,这种堆栈又称为软堆栈,堆栈的大小可变,栈底固定,栈顶浮动,故需要一个专门的硬件寄存器作为堆栈栈顶指针SP,简称栈指针。栈指针所指定的主存单元,就是堆栈的栈顶。
存储器堆栈结构高地址低地址堆栈区82由于堆栈具有先进后出的性质,因而在中断、子程序调用过程中用于保存返回地址、状态标志及现场信息。5.5指令的类型835.5指令的类型9、输入、输出(I/O)指令完成在中央处理器和外设之间进行数据交换。输入指令使数据由外设传送到处理机,输出指令使数据由处理机传送到外设.
输入输出指令的一般格式(In/Out):OPREG
AA:一般长度8~16位,可表示256~64K个设备寄存器845.5指令的类型10、特权指令
某些指令使用不当会破坏系统或其他用户信息,这类指令只能用于操作系统或其他系统软件,而不提供给用户使用,这类指令称为特权指令。
特权指令分配和管理系统资源,防止非法用户对系统资源及其他用户程序的修改、打印以及删除等。8511、其它指令如:暂停、等待、空操作、以及开中断、关中断等。需要说明的是:计算机种类不同其指令系统包括数量与功能亦有所不同,用其编程时务必参照相应的指令系统手册。(1)向量指令(2)多处理机指令(3)控制指令5.5指令的类型865.5.2双字长运算(子程序举例)5.5指令的类型双字长加法运算
假设在寄存器R1,R2和R3,R4分别存放两个双字长操作数,其中R1,R3为高位.假设机器设置有ADD(加法指令)和ADC(加进位的加法指令)875.5.2双字长运算(子程序举例)5.5指令的类型双字长加法运算
假设机器仅设置ADD指令,而没有ADC指令注:BCC:branchoncondition
885.5.2双字长运算(子程序举例)5.5指令的类型2.双字长减法运算
假设在寄存器R1,R2和R3,R4分别存放两个双字长操作数,其中R1,R3为高位.假设机器没有带借位减法指令.89第5章指令系统的兼容性1964年IBM360系列机以后,各个计算机公司生产的同一系列的计算机尽管其硬件实现方法可以不同,但指令系统,数据格式,I/O系统保持相同,因而软件完全兼容,系列机
(在此基础上,产生了兼容机)当研制该系列计算机的新型号或高档产品时,尽管指令系统可以有较大的扩充,但仍保留原来的全部指令,保持软件向上兼容的特点例Intel的8086微处理器系列是完全向上兼容的.90第5章RISC和CISC-8086指令分类频度8086指令分为6类,其中:
数据传送,算术运算,转移指令,这三类占90%,其余三类占不到10%
91第5章RISC和CISC“80-20规律”(20%与80%的规律
)→RISC
CISC中,各种指令的使用频率相差很大.经过大量的研究和分析,发现大约有20%的指令的使用频率比较高,使用量约占整个程序的80%;而有80%左右的指令很少使用,他们的使用量约占整个程序的20%.
92第5章RISC和CISC复杂指令系统计算机(CISC)在指令系统中增加更多的指令和更复杂的指令,来提高操作系统的效率,缩小指令系统和高级语言的语义差别便于高级语言的编译,兼容性使指令系统的指令只能扩充不能减去任意一条,这些计算机称为复杂指令系统计算机CISC(complexinstructionsetcomputer)RISC的产生对CISC进行测试表明,各种指令的使用频率相差悬殊.复杂的指令系统增加硬件实现的复杂性,增加研制时间和成本,很难实现流水线操作,降低了速度,指令系统复杂,使芯片变大印刷板变大,都使速度变慢.由此1975年首先由IBM公司提出“精简指令系统计算机(RISC)”的概念。93第5章RISC和CISC
RISC的发展1983年以后,一些中小型公司开始推出RISC产品,由于高的性能价格比,市场占有率不断提高从技术发展的角度讲,CISC技术已很难再有突破性的进展RISC的特点RISC不是简单地简化指令系统,而是通过简化指令使计算机的结构更加简单合理,从而提高运算速度。计算机执行程序所需要的时间P=ICPIT
其中I是指令数,CPI是执行每条指令所需的平均周期数,T是机器周期的时间.RISC的I比CISC多20%~40%,CPI值比CISC小得多,T值也小得多类型ICPITCISC12~1533~5nsRISC1.3~1.41.1~1.410~1ns94第5章RISC和CISC--RISC的特点⑴优先选取使用频率最高的简单指令,以及很有用但不复杂的指令⑵指令长度固定,指令格式种类少,寻址种类少⑶只有取数/存数指令访问存储器,其余指令的操作都在寄存器之间进行⑷通用寄存器数量相当多,算术逻辑指令操作数都在寄存器中⑸大部分指令在一个或小于一个机器周期内完成⑹以硬布线控制逻辑为主,不用或少用微程序控制逻辑⑺一般用高级语言编程,特别重视编译优化工作95第5章指令系统举例
SPARC(ScalableProcessor
ARChitecture)指令系统:RISC类型注:首次发布于1987年(SUN和TI公司合作开发了RISC微处理器—SPARC),与传统的处理器体系结构不同,它是开放标准的、可通过SPARCInternationalInc.的许可免费获取的。任何获得许可的公司可制造和出售符合SPARC标准的处理器。Pentium指令系统:CISC类型CISC的厂商:Intel,AMDRISC的厂商:IBM,SUN,Apple,Motorola96第5章指令系统举例SPARC指令系统指令类型算术运算/逻辑运算/移位指令31条LOAD/STORE指令22条控制转移指令5条读/写专用寄存器指令8条浮点运算指令 格式1的OP为01协处理器指令 格式2的OP为00指令格式
格式3的OP为1×格式1:格式2:格式3:OPDisp30(位移量,30位)OPrdOP2Imm22(立即数)OPaCondOP2Disp22(位移量)OPrdOP3rs10(无关)rs2OPrdOP3rs11Simm13OPrdOP3rs1OPfrs297第5章指令系统举例
SPARC指令系统在SPARC中,有一些指令没有设置,但很容易用一条其他指令来替代,这是因约定R0=0.指令功能替代指令实现方法MOVE寄存器间传送数据ADD(加法)(Rs)+(R0)→RdINC寄存器内容+1ADD(加法)(Rs)+1→Rd(立即数imm13=1,作为操作数)DEC寄存器内容-1SUB(减法)(Rs)-1→Rd(立即数imm13=-1,作为操作数)NEG取负数SUB(减法)R0-Rs→RdNOT取反码XOR(异或)(Rs)XOR11…1→Rd(立即数imm13=-1,作为操作数)CLEAR清除寄存器ADD(加法)(R0)+(R0)→RdCMP,TEST比较测试SUB(减法)(Rs1)-(Rs2)→R0(将R0作为Rd,并置条件码)98第5章指令系统举例Pentium指令系统图5.11程序员能见到的寄存器99第5章指令系统举例Pentium寻址方式100第5章指令系统举例Pentium指令格式图5.12Pentium的指令格式101第5章指令系统举例Pentium寻址方式举例MOVEAX,[EBX][ECX4+6]
↑
↑
↑
基变址放大因子位移量
图5.13实模式下形成32位地址102第5章指令系统举例
IBM大型机指令系统图5.14IBM360/370指令格式103第5章指令系统举例PDP-11指令格式PDP11是16位小型机,它有两组通用寄存器(R0~R5),在任一时刻只有一组工作;三个硬件堆栈指示器(R6);一个程序计数器PC(R7)。根据兼容性质,VAX11应包括PDP11的全部指令与寻址方式,即PDP11上的程序不作任何修改即可在VAX11上运行。PDP11有一个功能强大和灵活的指令系统,有13
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 海南铺面租赁合同书电子版
- 合同产生质量事故考核
- 2024高考政治一轮复习课时练16中国特色社会主义最本质的特征含解析新人教版
- 2024年高考生物二轮复习第一篇专题6考向3生物的进化和生物多样性学案
- 完美国际黄昏圣殿装备属性、所需材料系列介绍(武器篇)投
- 2024购买服务的合同协议书
- 2024新疆事业编制合同到期后单位可以选择不续签
- 2024机动车辆保险合同样本
- 2024北京市猪肉入市场厂挂钩合同范本
- 2024消防工程改造合同
- 20200310公园安全风险辨识清单
- 华中科技大学官方信纸
- 60立方油罐容积细表
- WI-QA-02-034A0 灯具成品检验标准
- 农业信息技术 chapter5 地理信息系统
- 部编版六年级上语文阅读技巧及解答
- 斯派克max操作手册
- 项目四 三人表决器ppt课件
- 结合子的机械加工工艺规程及铣槽的夹具设计
- 林武樟 完整阳宅讲义 笔记版[方案]
- 《会滚的汽车》ppt课件
评论
0/150
提交评论