1指令

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第三章指令系统直接与硬件关联硬件层汇编指令系统上层软件CPU以及主机设计的依据之一了解处理器的重要信息之一本章主要讨论:面向用户指令类型一般指令格式常用寻址方式三种不同层次语言之间的关系高级语言汇编语言机器语言计算机硬件编译程序编译程序汇编程序什么叫指令?指令系统?寻址方式?•指令:计算机提供给用户的硬件命令。•指令系统(集):指令的集合。•寻址方式:就是指令中用于说明操作数所在地址的方法,或者说是寻找操作数有效地址的方法。3.1指令格式指令基本格式操作码地址码D一个一个或几个操作码操作数OP或者地址码或寄存器或立即数3.1.1指令字长包括操作码、操作数在内的整个长度。指令长度的影响:指令长度与功能长度越长,表达的意义越多,功能越强;长度越短,则表达的意义越少,功能越弱;指令长度与复杂性长度越长,表达的意义越多,硬件越复杂;长度越短,则表达的意义越少,硬件越简单;定长指令格式便于控制合理利用存储空间变长指令格式从系统的角度:指令长度与速度从单条指令的角度:定长与变长指令长度越长,读出该指令所花的时间越长指令长度仅是影响速度的因素之一。系统速度与硬件复杂性、软件的长度、编译程序等若干因素有关。2.变长操作码关键在设置扩展标志。操作码的位置、位数不固定,按需求变化1.定长操作码3.1.2操作码格式—便于操作码译码,判明指令性质;—译码与取操作数并行操作码的位置、位数固定相同(1)扩展操作码定长操作码一般用于指令字较长的指令若指令较短,利用某些指令地址位数较少,扩展操作码例.指令字长16位,可含有3、2、1个地址和0地址,每个地址占4位。如果采用定长操作码,为了能够表示出3地址指令,则操作码的长度只能有4位,最多可表示16条指令。但对2、1个地址和0地址指令,则有空闲位没有得到利用。4位操作码地址3地址2地址13地址指令4位操作码地址2地址14位操作码地址14位操作码2地址指令1地址指令零地址指令如果采用变长操作码,则可以利用2、1、0个地址指令所空出的位来扩展指令,从而表示出更多的指令。0000XYZ1110XYZ............11110000YZ11111110YZ............111111110000Z111111111110Z............11111111111100001111111111111111............三地址指令15条二地址指令15条一地址指令15条零地址指令16条11~87~43~015~12操作码地址码黄色:操作码绿色:地址码红色:扩展码—扩展指令码的识别过程:对字段(15~12)译码=1111no执行指令yes=1111对字段(11~8)译码no执行指令3地址指令2地址指令yes对字段(7~4)译码对字段(7~4)译码=1111no执行指令1地址指令yes对字段(3~0)译码并执行相应指令零地址指令—扩展操作码优点上例中,共表示出61条指令,包含了3、2、1个地址或0址,每个地址占4位。同样需要有3、2、1个地址和0地址指令,如果采用定长操作码,则只能表示出16条指令0000-1111如果定长操作码超出4位长度,则不能表示出全部4种不同地址的指令。合理利用存储空间变长指令格式使用频率高的指令,分配短操作码使用频率低的指令,分配长操作码Huffman原理(Huffman编码)时间压缩存储空间压缩最优Huffman的操作码最短平均长度H=–∑Pilog2Pini=1(2)最短优化编码Pi是第i种操作码在程序中出现的概率Huffman编码的的缺点:不规则的操作码,不利于硬件对操作码的译码和软件的编译。扩展操作码编码方式:Huffman编码与固定编码的结合(3)操作码采用方式码编码01234567815基本操作进位移位回送判跳操作数指明何种运算例.某种计算机算逻指令操作码分为几部分,每部分表示一种操作。设置进位基值设置移位方式是否送回结果是否指令转移直接或间接给出1.指令提供地址的方式(1)显地址方式:指令中明显指明地址例:MOVAL,[BX]间接给出地址3.1.3地址结构指令中提供的地址码存储单元地址码MOVAX,[1000H]直接给出地址寄存器编号(2)隐地址方式:地址隐含约定,不出现在指令中可减少指令中的地址数,简化地址结构例1:InstructioniAdd约定的指令i操作数的地址例2:PUSHAXPOPAX压入堆栈指针所示的单元2.地址数量地址结构的主要内容:指令中地址数量的设置指令中地址码的长度与以下因素相关:地址码的个数操作码所存放的存储设备(如通用寄存器、主存储器、堆栈等)存储器寻址空间的大小存储器编址方式以及寻址方式等地址数量对计算机的影响:例:实现以下操作:(A1)+(A2)(Ai)指令ADD(A1),(A2),(Ai)必须有三地址指令如果只有二地址指令,则:指令ADD(A1),(A2);结果隐含存入某RegkMOVRegk,(Ai);data1data2....+A1A2Ai....存储器—地址数量多的优点:单条指令指明更多的地址,以简化程序—地址数量选择的条件:较长的指令字要求,中高档计算机低端计算机,指令字较短,地址机构应简化—地址数量少的优点:取指令所需时间少;一般情况下,执行时间短;利于指令流水线结构—结论地址数量多或少,各有优缺点(1)四地址结构指令θA1A2A3A4操作数地址结果地址下条指令地址功能:(A1)θ(A2)格式:A3(A4)下条指令缺点:地址数量太多,要求的较长的指令字长度单指令执行时间长不便于根据操作结果实现程序转移(2)三地址结构指令θA1A2A3操作数地址结果地址功能:若为转移指令转移时,用转移地址修改PC内容格式:(PC)+1PC(A1)θ(A2)A3优点:不破坏源操作数会破坏源操作数的情况:θA1A2θ如8086指令:ADDData[BX],AL结果Data[BX](3)二地址结构指令θA1A2功能:源/目的目的/源(A1)θ(A2)A2或者A1格式:(PC)+1PC—常用于不需要保留操作数之一的操作。比如,软件实现乘除法运算,第i–1步的部分积不用保留,可被第i步的部分积所替代。—也可采用其它办法保留两个操作数。双操作数:(4)一地址结构指令θA1隐含约定单操作数:功能:(A1)θ(A)A(PC)+1PCθ(A1)A1(PC)+1PC格式:(5)零地址结构指令θ功能:如堆栈操作:((SP))θ((SP)+1)(SP)+1(SP)+1SP格式例.ADD;执行前:用于特殊指令:(如串操作指令)((SI))θ((DI))(DI)修改SI、DI、计数值执行后:低SP高201046SP低高304610MOVSB完成:((ES):(DI))((DS):(SI))

1 / 26
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功