资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,指令:指示计算机执行某类操作的信息的集合。,本章主要讨论:一般,指令格式,常用,寻址方式,面向用户,指令类型,一、指令格式,指令基本格式,操作码,地址码,D,一个,一个或几个,第三章 指令系统,1,1.,指令字长,定长指令格式,变长指令格式,便于控制,但浪费空间。,(,1,)定长操作码,各指令,的位置、位数固定相同。,(,2,)扩展操作码,各指令,的位置、位数不固定,根据需要,变化。,合理利用存储空间,2.,操作码结构,关键在设置扩展标志。,2,例,.,指令字长,16,位,可含有,3,、,2,、,1,或,0,个地址,每个地址占,4,位。,操作码 地址码,15 12 11 8 7 4 3 0,0000,X,Y,Z,1110,X,Y,Z,.,.,.,.,1111,0000,Y Z,1111,1110,Y Z,.,.,.,.,三地址指令,15,条,二地址指令,15,条,1111,1111,0000,Z,1111 1111,1110,Z,.,.,.,.,一地址指令,15,条,1111,1111,1111,0000,1111 1111,1111,1111,.,.,.,.,零地址指令,16,条,3,(,3,)复合型操作码,操作码分为几部分,每部分表示一种操作。,例,.,某机算逻指令,3.,地址结构,0 1 2 3 4 5 6 7 8 15,基本操作 进位 移位 回送 判跳 操作数,指令中提供的地址数,存储单元地址码,寄存器编号,(,1,)指令提供地址的方式,显地址方式,隐地址方式,:,指令中明显指明地址。,:,地址隐含约定,不出现在指令中。,直接或间接给出,4,(,2,)地址结构的简化,操作数地址,四地址结构指令,格式:,使用,隐地址,可以减少指令中的地址数,,简化,地址结构,。,D1 D2 D3 D4,结果地址,下条指令地址,功能:,(D1),(D2)D3,(D4),下条指令,用指令计数器,PC,指示指令地址。,5,三地址结构指令,格式:,操作数地址,D1 D2 D3,结果地址,下条指令地址,功能:,转移时,用转移,地址修改,PC,内容。,(D1),(D2)D3,(PC)+1 PC,源,/,目的,二地址结构指令,格式:,D1 D2,目的,/,源,功能:,(D1),(D2)D2/D1,(PC)+1 PC,6,双操作数:,一地址结构指令,格式:,D1,隐含约定,单操作数:,功能:,零地址结构指令,格式:,(D1),(A)A,(PC)+1 PC,(D1)D1,(PC)+1 PC,功能:,用于堆栈或特殊指令操作。,7,例,.,ADD,;,执行前:,低,SP,10,20,46,SP,30,46,执行后:,高,低,高,8,二、寻址方式,是指,寻找操作数地址或操作数的方式,。,操作码,立即数,S,(,1,)立即寻址,指令直接给出操作数。,1.,常见寻址方式,定长格式:,变长格式:,基本指令,立即数,S,数在指令中,其长度固定、有限。,数在基本指令之后,其长度可变。,用来提供常数、设置初值等。,9,(,2,)直接寻址,指令直接给出操作数地址。,寄存器号,存储单元号,(,数在,R,中,),(,数在,M,中,),操作码,寄存器号,R,寄存器直接寻址,(,寄存器寻址),格式,R,所占位数少;,访问,R,比访问,M,快,S=(R),用于访问固定的存储单元或寄存器。,10,存储单元号,寄存器号,(,数在,M,中,),(,数在,M,中,),格式,(,3,)间接寻址,指令给出操作数的间接地址。,存储器间址,操作码,间接地址,D,D=0030,0060,.,0060,S,.,S=(D),M,间址单元,地址指针,操作码,有效地址,D,存储器直接寻址,(,直接寻址),定长格式,D,的位数有限,限制访存范围,变长格式,基本指令,D,L,D,H,D,的位数可覆盖整个存储空间,S=(D),11,操作码,寄存器号,R,寄存器间址,格式,R,所占位数少;,R,可提供全字长地址码;,修改,R,内容比修改,M,内容快。,格式,S=(R),指针不变,(,由指令指定,),,指针内容可变,使同一指令可指向不同存储单元,以实现,程序的循环,、,共享,,并,提供转移地址,。,堆栈寻址,操作码,堆栈指针,S,P,SP,.,S,.,S=(SP),M,R=02,M,0040,0040,S,.,.,.,地址指针,0070,.,栈顶,12,格式,SP,既可出现在,指令中,也可隐含约定。,变址寻址,(,4,)变址、基址寻址及其变化,SP,栈顶,M,S,.,.,.,低,高,堆栈向上生成,压栈:,SP,自动减,1,,再存数。,-(,SP),,,自减型间址,。,先取数,,SP,再自动加,1,。,(,SP)+,,,自增型间址,。,出栈:,指令给出一个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址。,操作码,R,X,D,13,D,的位数有限,若不能提供全字长地址码,会使访存空间受到限制,。,变址寄存器号,例,.,用变址方式访问一组连续区间内的数组元素。,S=(,(R,X,),+,D,),D=,首址,D,为存储区首址;,(R,X,),为所访单元距离,首址的长度;,R,X,初值为,0,,每访问一,个单元,,(,R,X,)+1,。,格式,操作码,R,X,D,形式地址,修改量,基准地址,n-1,.,0,1,2,.,D+1,D+2,D+n-1,.,14,格式,(,D,的位数只需覆盖一个较小的存储区间),基址寻址,基址寄存器号,R,b,4K,指令给出一个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址。,操作码,R,b,D,位移量,S=(,(,R,b,),+,D,),基准地址,相对于基址的位移,M,.,.,.,.,R,b,4K,改变,R,b,的内容,程序能访问存储空间中任何一个定长区间,(4,K),。,15,便于访问两维数组中某类,指定的元素。,4K,4K,R,b,M,.,.,.,.,R,b,D=2,D=2,学生姓名,性别,性别,年龄,年龄,学生姓名,变址与基址的区别:,变址,:指令提供,基准量,(,不变,),,,R,提供,修改量,(,可变,),;适,于处理一维数组。,基址,:指令提供,位移量,(,不变,),,,R,提供,基准量,(,可变,),;用,于扩大有限字长指令的访,存空间。,16,S=(R,X,)+(,R,b,)+D),格式,基址加变址,变址寄存器号,指令给出两个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址。,位移量,操作码,R,X,R,b,D,基址寄存器号,便于处理两维数组。,格式,相对寻址,指令给出位移量,,PC,内容与位移量之和为有效地址。,位移量,操作码,PC,D,或隐含指定,S=(PC),D),有效地址相对,PC,上下浮动,给编程带来方便,。,17,格式,页面寻址,指令给出位移量,,PC,的高位部分,与位移量拼接,形成有效地址。,位移量,操作码,PC,D,或隐含指定,S=(,(PC),H,,,D,),例,.,M,为,64,KB,,,划分为,256,页,每页,256,B,。,页号,页内地址,用于页式管理存储系统。,寻址速度快,适于组织程序模块,,有效利用存储空间。,PC,0165,H,7C,.,.,.,017,CH,S,18,2.,对寻址方式的说明,(,1,)操作码隐含说明不同寻址方式,例,.,某机指令操作码最高两位,00,:,RR,型指令,寄存器,-,寄存器寻址,01,:,RX,型指令,寄存器,-,变址寻址,10,:,SI,型指令,基址,-,立即寻址,11,:,SS,型指令,基址,-,基址寻址,19,(,2,)指令中设置专门字段说明寻址方式,例,.,某机指令的每个地址字段中各设置一个,3,位的寻址方式字段。,操作码,寻址方式,R,寻址方式,R,源地址字段,目的地址字段,3,位,3位,20,三、指令类型,1.,传送指令,源地址 目的地址,数,设置时需考虑:,(,1,)规定传送范围,例,.,DJS-100,系列:,8,0,X86,:,IBM370:,R,M,R,M,R,R,R,M,,,R,R,,,M,M,21,(,2,)指明传送单位,例,.,用操作码说明,(VAX-11),:,用地址量说明,(8,0,X86),:,传送次数由计数器控制,MOV,B,8,MOV,AX,,,BX,MOV,W,16,MOV,L,32,MOV,AL,,,BL,MOV,EAX,,,EBX,例,.80,X86,的串传送指令:,REP,MOVSW,(,3,)设置寻址方式,在寻址方式的设置上几乎不受限制,能比较,集中地反映指令系统各种寻址方式的实现。,8,16,32,22,2.,输入,/,输出指令,各种信息,主机,外设,设置时需考虑:,1 I/O,指令的功能扩展,如何用通用,I/O,指令实现对各种具体设备的控制?,(1),I/O,指令中留有扩展余地,指令中某些字段编码事先不定义,需要时再约定,其含义。,(2),I/O,接口中设置控制,/,状态寄存器,用于外设种类、数量不多的场合。,23,2,主机对外设的寻址方式,如何设置控制,/,状态寄存器是接口设计的关键。,寻找,I/O,接口中的寄存器的方式。,主机用,输出指令,或,传送指令,将具体设备的控制命令,按约定的代码格式送往接口中的,控制寄存器,,向外,设发出命令。,外设的状态信息也以某种格式放在接口的状态寄存,器中,主机用,输入指令,或,传送指令,从,状态寄存器,中,取出有关信息进行查询、分析。,I/O,端口,寻找,I/O,接口中的寄存器,的方式。,如何为,I/O,端口分配地址?,24,(1),单独编址,I/O,地址空间不占主存空间,可与主存空间重叠。,=1,访问存储器,=0,访问,I/O,端口,需设置标志区分访问对象,如,编址到寄存器,:为每个寄存器,(,I/O,端口,),分配独,立的端口地址;,I/O,指令中给出端口地址。,M/IO,25,(2),统一编址,I/O,端口占据部分主存空间。,常将存储空间的低端分配给主存单元,高端分配,给,I/O,端口,以示区分。,编址到寄存器,(1),设置,专用,I/O,指令,针对单独编址,用,I/O,指令访问,I/O,端口。,指令中说明输入,/,输出操作,并给出端口地址。,:为每个寄存器,(,I/O,端口,),分配总,线地址;,访问外设时,指令中给出总线地址。,3 I/O,指令设置方式,显式,I/O,指令,26,例,.8,0X86I/O,指令设置,输入:,IN AL,,,n,;,端口地址,(n)AL,(,直接端口寻址,),IN AL,,,DX,;,间接端口地址,(DX)AL,(,间接端口寻址,),输出:,OUT n,,,AL,;,(AL)n,(,直接端口寻址,),OUT DX,,,AL,;,(AL)(DX),(,间接端口寻址,),27,主机调用输入机:,(,2,)用,传送指令,实现,I/O,操作,针对统一编址,用传送指令访问,I/O,端口。,不设专用,I/O,指令。,例,.,某机,I/O,接口中设置,控制,/,状态寄存器,CSR,其总线地址为,177550,(8,进制,),数据缓冲寄存器,DBR,,,其总线地址为,177552,隐式,I/O,指令,控制,/,状态字格式:,出错 故障 忙 完成,允许中断 维护 校验 启动,15 14 12 7 6 2 1 0,启动:,测试:,取数:,主机,177550,控制字,(,启动位为,1),传送指令,主机,177550,状态字,传送指令,主机,177552,数据,传送指令,28,(,3,)通过,I/O,处理机进行,I/O,操作,CPU,执行简单,I/O,指令,(,启动、停止、查询、清除,),设置时需考虑,操作数类型,、,符号,、,进制,等;,运算结束后设置相应,状态标志,。,两级,I/O,指令,(,1,)算术运算指令,I/O,处理机执行,I/O,操作指令,(,输入、输出,),3.,算术逻辑运算指令,(,2,)逻辑运算指令,实现对代码位的,设置,、,测试,、,清除,、,修改,等。,与,或,异或,29,控制程序流程。,(,1,)转移指令,4.,程序控制指令,(,2,)转子指令与返回指令,转子:操作码 子程序入口,无条件转移,条件转移,循环,:操作码 转移地址,:操作码 转移地址 转移条件,:转移条件为循环计数值,返回:操作码 返回地址,同一条返回指令应能提供多个不同的返回地址。,返回地址的存取:,用堆栈存放返回地址。,30,现在常常用于,系统功能调用,。,(,3,)软中断指令,程序,自陷指令,表示不同的功能调用,调试程序,早期主要用于,程序的调试,。,以,INT n,的形式出现在程序中。,31,第三章复习提纲,1.,基本概念:扩展操作码,(,扩展方法,),、地址结构,(,简化方法,),、隐地址、显地址、基本寻址方式,(,立即、直接、间址、变址,),的含义与应用场合。,2.I/O,指令的功能扩展,(,目的、方法,),,外设编址方式和指令设置方式。,32,
展开阅读全文