版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
复习思考题6指令格式中的操作码字段用来表征指令的操作特性与功能。指令格式的地址码字段,通常用来指令参与操作的操作数或其地址。一条指令中的操作数地址,可以有0,1,2,3,4个。若指令系统中操作码占用8位二进制码时,则这台计算机最多允许256条指令。第3章指令系统3.1指令格式3.2寻址技术3.3堆栈与堆栈操作3.4指令类型3.5指令系统的发展操作码扩展技术…15条三地址指令0000XXXXYYYYZZZZ1110XXXXYYYYZZZZ1111…15条二地址指令11110000XXXXYYYY11111110XXXXYYYY11111111…15条一地址指令111111110000XXXX111111111110XXXX111111111111…16条零地址指令11111111111100001111111111111111扩展窗口扩展窗口扩展窗口OPA1A2A3操作码扩展技术特点:在指令长度不变的情况下,增加了指令数量,丰富了指令功能。若频度高的指令分配短的操作码,频度低的指令分配较长的操作码。则既可有效地缩短操作码的平均长度,节省空间,又可缩短译码以提高速度。注意:不允许短码是长码的前缀,各条指令的操作码一定不能重复缺点译码系统比固定操作码复杂,需要更多的硬件支持。操作码扩展技术某计算机为定长指令字结构,有二、一、零地址指令3类若已知二地址指令已有K种,零地址指令有L种问:一地址指令最多可能有多少种?上述3类指令各自允许的最大指令条数是多少?OPA1A24位6位6位OPAOPMAX二地址指令=24-1MAX一地址指令=(24-1)×26-1MAX零地址指令=216-212-26一地址指令最多可能有3.2寻址技术寻址——寻找操作数的地址或下一条将要执行的指令地址。寻址技术包括编址方式和寻址方式。编址方式需要编址的设备CPU中的通用寄存器主存储器输入输出设备编址单位字编址:编址单位=访问单位字节编址:
编址单位<访问单位位编址操作码地址码早期的大多数机器都采用这种编址方式。通常主存的访问单位是编址单位的若干倍指令中地址码的位数指令格式中每个地址码的位数是与主存容量和最小寻址单位(即编址单位)有关联的。主存容量越大,所需的地址码位数就越长。设某机主存容量为220B=1MB,机器字长32b。若最小寻址单位为字节(按字节编址),其地址码应为20b若最小寻址单位为字(按字编址),其地址码只需18b。寻址技术
数据寻址和指令寻址数据寻址——寻找操作数地址的方法最终目的:寻找所需要的操作数。可以有较多的寻址方式,有的较复杂指令寻址——寻找下一条将要执行的指令地址指令寻址比较简单,它又可以细分为顺序寻址跳跃寻址——直接寻址、间接寻址和相对寻址操作码地址码CPU中必须有一个程序计数器(PC)对指令的顺序号进行计数。PC开始时存放程序的首地址,然后每执行一条指令,PC+1,以指出下条指令的地址,直到程序结束。指令寻址方式——顺序寻址+1指令寻址方式——跳跃寻址当程序中出现分支或循环时,对指令寻址就要采取跳跃寻址方式。即下条指令的地址不是通过程序计数器PC+1获得的,而是由指令本身给出。63.2.3基本的数据寻址方式操作数寻址方式是根据指令中给出的形式地址A寻找真实操作数有效地址EA的方式立即寻址寄存器寻址3.直接寻址4.间接寻址5.寄存器寻址6.变址寻址7.基址寻址8.相对寻址9.页面寻址操作数寻址方式设计的要求指令中的地址尽可能短寻址空间尽可能大能在不改变指令的情况下改变地址的实际值;能够处理数组、表格或字符串寻址方式尽可能简单。操作数的寻址方式立即寻址指令的地址字段指出的不是操作数的地址,而是操作数本身。特点指令执行时间很短,取指令时就一同将操作数也取出来了。如:80X86指令:
MOVAX,2000HAX←2000H(操作数)
操作码操作数基本的数据寻址方式寄存器寻址
指令中地址码部分给出某一通用寄存器的编号,所指定的寄存器中存放着操作数。特点:从寄存器存取数据比主存快得多;由于寄存器的数量较少,其地址码字段比主存单元地址字段短得多。操作数OP指令寄存器
通用寄存器RiR5操作数S=(Ri)操作数EA=RiR5如:MOVAX,BX
;AX←BX操作数OP指令寄存器主存储器A基本的数据寻址方式直接寻址指令中地址码字段给出的地址A就是操作数的有效地址,而操作数在内存中。特点不需要任何变换或运算,可用于访问固定存储单元由于操作数地址是不能修改的,与程序本身所在的位置无关,所以又叫做绝对寻址方式。操作数100
操作数S=(A)100EA=A如:MOV
AX,[2000H]基本的数据寻址方式间接寻址指令中给出的地址A不是操作数的地址,而是操作数地址的地址。指令格式中用@作为标志位@=0
直接寻址@=1
间接寻址特点可扩大寻址空间,但速度慢可将主存单元作为程序的地址指针,用以指示操作数在主存中的位置。操作数EAOP指令寄存器主存储器A操作数@100操作数S=((A))100200200
EA=(A)一级间接寻址基本的数据寻址方式间接寻址多级间接寻址为取得操作数需要多次访问主存,即使在找到操作数有效地址后,还需再访问一次主存才可得到真正的操作数。多级间接标志:0:找到有效地址1:继续间接寻址在微型机中无此寻址方式EAOP指令寄存器主存储器A@110二级间址三级间址操作数100操作数1200130005010020030050EAOP指令寄存器主存储器Ri操作数@
通用寄存器基本的数据寻址方式寄存器间接寻址指令中的地址码给出某一通用寄存器的编号,被指定的寄存器中存放操作数的有效地址,而操作数则存放在主存单元中。特点:指令短,速度快,相当于指针与直接寻址相比,更灵活,可用于表处理操作数操作数S=((Ri))100R5EA=(Ri)R5100如:MOVAX,[BX]
;AX←(BX)基本的数据寻址方式变址寻址把指令给出的形式地址A与变址寄存器RX的内容相加,形成操作数有效地址RX的内容为变址值。特点——灵活,速度慢适用场合面向用户,主要用于访问字符串、数组等120OP指令寄存器主存储器A操作数RX变址值XALU变址寄存器RX操作数10020操作数S=(A+(RX))
EA=A+(RX)如MOVAX,[SI]100H;
;SI是变址寄存器
EA=100H+SI基本的数据寻址方式基址寻址将基址寄存器Rb的内容与位移量D相加,形成操作数有效地址特点——灵活,速度慢适用场合面向系统,主要用于逻辑地址和物理地址的变换,用以解决程序在主存中的再定位和扩大寻址空间等问题。OP指令寄存器主存储器D操作数Rb基址值ALU基址寄存器Rb120操作数20100操作数S=((Rb)+D)
EA=(Rb)+D如MOVAX,-100H[BX];
;BX是基址寄存器
EA=BX-100H操作数操作数OP指令寄存器主存储器D指令指令地址ALU程序计数器PC-D+D基本的数据寻址方式相对寻址相对于当前指令计数器PC的寻址。即:
EA=(PC)+D位移量D是操作数和现行指令之间的相对位置。特点采用此寻址方式编写的程序可在主存中任意浮动,程序员勿需用指令的绝对地址编程120操作数20100操作数S=((PC)+D)100-20E0操作数基本的数据寻址方式页面寻址页——将整个主存分成若干个大小相同的区的容量。页面地址——每页的编号页内地址——页面内的每个主存单元的编号,操作数的有效地址就被分为两部分:前部为页面地址,后部为页内地址。有些计算机在指令格式中设置了一个页面标志位(Z/C)当Z/C=0,表示零页寻址,当Z/C=1,表示当前页寻址。页内地址页面地址
基页寻址,又称零页寻址由于页面地址全等于0,所以有效地址EA=0∥A(∥在这里表示简单拼接),操作数S在零页面中,基页寻址实际上就是直接寻址。当前页寻址页面地址就等于程序计数器PC的高位部分的内容,所以有效地址EA=(PC)H∥A,操作数S与指令本身处于同一页面中。页寄存器寻址页面地址取自页寄存器,与形式地址相拼接形成有效地址。页面寻址的3种不同的方式
页内地址页面地址基本的数据寻址方式各种数据寻址方式获得数据的速度(由快→慢)立即寻址寄存器寻址直接寻址寄存器间接寻址页面寻址变址寻址(基址寻址、相对寻址)一级间接寻址多级间接寻址
注意E=(B)+(I)×S+Disp⑼序号⑴⑵⑶⑷⑸⑹⑺⑻基址+比例变址+偏移量寻址方式名称立即寄存器直接基址基址+偏移量比例变址+偏移量基址+变址+偏移相对有效地址E算法
E=DispE=(B)E=(B)+DispE=(I)×S+DispE=(B)+(I)+Disp指令地址=(PC)+Disp说明操作数在指令中操作数在某寄存器内Disp为偏移量B为基址寄存器
I为变址寄存器,S为比例因子(1,2,4,8)
PC为程序计数器或当前指令指针寄存器Pentium指令格式和寻址方式1或2B
0,1,2,4
0,1,2,4操作码ModReg或操作码R/M比例S变址I基址B位移量立即数2b
3b3b
2b3b3b
计算下列指令的有效地址设某计算机的指令格式如下:主存容量为4K个存储单元,分为64个页面,每个页面有64个字,设有关寄存器的内容为(PC)=1234Q,(I1)=1111Q,(I2)=0256Q计算下列指令的EA:3072Q,3456Q,1123QAZ/CI1I2OP@5067810911间接寻址变址寄存器I1寻址变址寄存器I1寻址Z/C=0:表示0页面Z/C=1:表示现行页面0110001110100010010100110111001011103.3堆栈与堆栈操作堆栈是一种按特定顺序进行存取的存储区特定顺序——“后进先出”(LIFO)或“先进后出”(FILO)。寄存器堆栈(硬堆栈)用一组专门的寄存器构成寄存器堆栈,这种堆栈的栈顶是固定的,寄存器组中各寄存器是相互连接的,它们之间具有对应位自动推移的功能,即可将一个寄存器的内容推移到相邻的另一个寄存器中去。3.3
堆栈与堆栈操作存储器堆栈(软堆栈)从主存中划出一段区域来作堆栈,堆栈的大小可变,栈底固定,栈顶浮动,故需要一个专门的硬件寄存器作为堆栈栈顶指针SP,简称栈指针
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论