资源预览内容
第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
亲,该文档总共7页全部预览完了,如果喜欢就下载吧!
资源描述
第七章1、画出先变址再间址及先间址再变址的寻址过程示意图。解:1)先变址再间址寻址过程简单示意如下:EA=(IX)+A,IXt(IX) + 1IXt2)先间址再变址寻址过程简单示意如下:EA=(IX) + (A),(IX) + 1注意: 3)寻址后把操作数送回指令操作码,再访存。x1)英文缩写EA表示有效地址,不能乱用。2)示意图中应标明EA (有效地址)的位置。2. 16位,且存储字长等于指令字长,若该机指令系统可完成108种操作,操作码位数固定,且具有直接、间接、变址、基址、相对、立即等六种寻址方式,试回答:X某机主存容量为4M (1)画出一地址指令格式并指出各字段 的作用;(2)该指令直接寻址的最大范围;(3)一次间址和多次间址的寻址范围; (4)立即数的范围(十进制表示);(5)相对寻址的位移量(十进制表示);(6)上述六种寻址方式的指令哪一种执行时间最短?哪一种最长?为什么?哪一种便于程序浮动?哪一种最适合处理数组问题?(7)如何修改指令格式,使指令的寻址范围可扩大到4M?(8)为使一条转移指令能转移到主存的任一位置,可采取什么措施?简要说明之。解: (1)单字长一地址指令格式:736(2)A为6位,该指令直接寻址的最大范围为26 = 64字; (3)一次间址的寻址范围为216=64K字; 多 次间址的寻址范围为215 = 32K字;(4)立即数的范围:若采用补码表示为1FH-20H;十进制表示为31- -32;无符号数为063;(5)相对寻址的位移量范围在采用补码表示时同立即数范围,为31- -32;(6) 六种寻址方式中,立即寻址指令执行时间最短,因为此时不需寻址;间接寻址指令执行时间最长,因为寻址操作需访存一次到多次;相对寻址便于程序浮动,因为此时操作数位置可随程序存储区的变动而改变,总是相对于程序一段距离;变址寻址最适合处理数组问题,因为此时变址值可自动修改而不需要修改程序。(7)为使指令寻址范围可扩大到4M,需要有效地址22位,此时可将单字长一地址指令的格式改为双字长,如下图示:736(8)如使一条转移指令能转移到主存的任一位置,可采用上述双字长一地址指令,通过选用合适的寻址方式完成。(如选用直接寻址就可转移到主存任一位置,但选用相对寻址则只能在2M范围内转移。)除此之外,(7)、(8)两题也可通过段寻址方式达到扩大寻址空间的目的。总之,不论采取何种方式,最终得到的实际地址应是22位。 方案二:(7)如果仍采用单字长指令(16位)格式,为使指令寻址范围扩大到4M,可通过段寻址方案实现。安排如下:硬件设段寄存器DS(16位),用来存放段地址。在完成指令寻址方式所规定的寻址操作后,得有效地址EA(16位),再由硬件自动完成段寻址,最后得22位物理地址。26 + EA x物理地址=(DS)注:段寻址方式由硬件隐含实现。在编程指定的寻址过程完成、EA产生之后由硬件自动完成,对用户是透明的。 方案三:(7)在采用单字长指令(16位)格式时,还可通过页面寻址方案使指令寻址范围扩大到4M。安排如下: 硬件设页面寄存器PR(16位),用来存放页面地址。指令寻址方式中增设页面寻址。当需要使指令寻址范 围扩大到4M时,编程选择页面寻址方式,则:EA =(PR) II A (有效地址=页面地址拼接6位形式地址)这样得到22位有效地址。(5)相对寻址的位移量范围为: x讨论:(6)基址寻址便于程序浮动;x (PC)-32; (PC内容此时做基地址使用,形式地址给出位移量)(PC) + 31 (7)采用基址寻址:x (基址寻址的程序浮动能力没有相对寻址 强,在两种寻址方式都给出的情况下,描述程序浮动能力时应选相对寻址) 采用32位指令:(应为双字长指令)x 物理地址=段地址+段内位移量A通过基址寻址与段寻址获得实际地址的区别:存储器地址位数),位移量比较短(=形式地址位数),相加后得到的有效地址长度=基地址长度。此时主存不分段。1)基址寻址的基地址一般比较长(实际地址=有效地址= 基地址+位移量段寻址是基址寻址的一种变种,当基地址短于存储地址时,基址寻址就变成了段寻址,基地址就叫做段地址,此时主存分段。偏移量+段内位移量(有效地址)x实际地址=段地址存储字长的机器中,可直接通过寻址计算获得实际地址。 2)基址寻址一般在机器字长存储字长的机器中,由于CPU内部数据通路的限制,编程指定的任何一种寻址计算得到的有效地址长度都等于机器字长,为获得更长的 地址字,硬件自动通过段寻址计算出存储器实际地址。V在机器字长 (7)采用变址间接寻址,变址寄存器6位,先 变址,再间址,EA=(6位基地址)*(16位间接地址)=26*216 = 222 x(通过乘法运算进行寻址操作太慢且复杂,无机器用过)(8)如使一条转移指令能转移到主存的任一位置,可采用RS型指令;(x 两个错:1) RS型只是二地址以上 指令的类型,即指令中二个地址场一个给出寄存器号,一个给出面向存储器的地址信息。2)题意的实现与寻址方式和形式地址长度有关,与指令的地址场结构无直接关系。)16位容量= 226位,采用变址间接寻址,变址寄存器10 位,210*216构成26位地址;x 4Mx (两个错:1)存储器地址结构错;2)寻址计算方法错,见前面的讨论) x(8)A需22位,采用(7)的双字长指令格式,令PC=0,当PC取不同值时指明当前位置不同;(把转移指令(指令的跳跃寻址)与数据的相对寻址混淆。转移指令可重置PC值,相对寻址时只是用PC的值,而不能对其修 改)相关问题:* 一般:机器字长=存储字长;* CPU中所有寄存器(包括基址寄存器)的位数=机器字长; *通常:指令字长不一定等于机器字长。早期的小型机由于字长较短,指令常以机器字长为单位变化(几字长指令, 如PDP-11机),目前以字节长为单位变化(几字节指令)的较多。习题中指令字长=机器字长的假设只是为简单起见; *当设指令字长=存储字长(=机器字长)时,如用立即寻址,由于立即数由形式地址直接给出,而形式地址的位数 肯定不足一个字长,因此立即寻址非常适用于编程给出短常数的场合。如果非要把立即数存入存储器,那就只好高位 补0了。干吗这样用呢? 提示:寻址方式的正确选择与编程技巧有关。15.某CPU内有32个32位的通用寄存器,设计一种能容纳64种操作的指令系统。假设指令字长等于机器字长, 试回答:(1)如果主存可直接或间接寻址,采用寄存器一存储器型指令,能直接寻址的最大存储空间是多少?画出指令格式并说明各字段的含义。(2)如果采用通用寄存器作基址寄存器,则上述寄存器一存储器型指令的指令格式有何特点?画出指令格式并指出这类指令可访问多大的存储空间?解:(1)如采用RS型指令,则此指令一定是二地址以上的地址格式,指令格式如下:65120(2)如采用基址寻址,则指令格式中应给出基址寄存器号,以指定哪一个通用寄存器用作基址寄存器。指令格式 变为: 6511514(2)指令格式:x讨论:3. 某机字长16位,存储器直接寻址空间为128字,变址时的位移量为-64+63,16个通用寄存器均可作为变址 寄存器。采用扩展操作码技术,设计一套指令系统格式,满足下列寻址类型的要求:(1)直接寻址的二地址指令3条;(2)变址寻址的一地址指令6条;(3)寄存器寻址的二地址指令8条;(4)直接寻址的一地址指令12条;(5)零地址指令32条。试问还有多少种代码未用?若安排寄存器寻址的一地址指令,最多还能容纳多少条?解:题意分析:设指令字长=机器字长,128字的直接寻址空间要求形式地址A为7位,-64+63的位移量也需7位(6位加1位符号位),16个通用寄存器作变址寄存器需4位变址寄存器号,则指令格式为: (1) 直接寻址的二地址指令: 277(3)寄存器寻址的二地址指令:844(6)若安排寄存器寻址的一地址指令,指令格式应为:124操作码编码分配:0 0 0 1 A1,A2; 3条直接寻址的二地址指令。1 0 1 1 0 0 0 IX,A; 6 条变址寻址的一地址指令。1 1 1 0 1 1 1 1 1 0 0 0 0 Ri,Rj; 1 1 1 1 0 11 1 8条寄存器寻址的二地址指令。1 1 1 1 1 0 0 0 0 A; 1 1 1 1 1 1 0 11 12条直接寻址的一地址指令。续:1 1 1 1 1 1 1 0 0 0 0 0 Ri; 1 1 1 1 1 1 1 1 0 1 1 1 30条寄存器寻址的1 1 1 1 1 1 1 1 1 0 0 0 一地址指令。 (利用30个冗余编码)1 11 1 11 1 1 11 0 1 1 11 111 1 1 11 1 00 000 32 条 0 地址 1 11 1 11 1 1 11 1 11 1 1 1指令不画所设计的指令格式图,只分配指令操作码编码。x讨论: 指令格式中安排寻址方式字段,例: 2347 x评注:这是一道指令格式设计题,本题已给出了各种指令所需的条数,因此,在根据题意画出各种指令的格式后,剩 下的工作就是要为每一条指令分配编码。在采用扩展操作码技术分配指令编码时,扩展的基本方法是在所设计的指令 系统中,选定一种操作码位数最少的指令格式作为基本格式,然后在这种基本格式的基础上进行操作码编码的扩展。 为便于硬件译码结构的实现,编码分配应尽量做到有序、有规律。特别是扩展标志码的选择,应尽量采用特征较强的 编码,象全1编码等。另外,应在某类指令的编码全部安排完后,再考虑安排扩展标志码,以避免漏排或重码等不必 要的混乱。17. 某机指令字长16位,每个操作数的地址码为6位,设操作码长度固定,指令分为零地址、一地址和二地址三种 格式。若零地址指令有M种,一地址指令有N种,则二地址指令最多有几种?若操作码位数可变,则二地址指令最 多允许有几种? 解:1)若采用定长操作码时,二地址指令格式如下:466设二地址指令有K种,则:K=24-M-N 当M = 1 (最小值),N = 1 (最小值)时,二地址指令最多有:Kmax=16-1-1 = 14种2)若采用变长操作码时,二地址指令格式仍如1)所示,但操作码长度可随地址码的个数而变。此时,K= 24 -(N/26 + M/212);1时,K最大,则二地址指令最多有:(N/26+ M/212向上取整)当(N/26 + M/212)Kmax=16-1 = 15种(只留一种编码作扩展标志用。)讨论:此时,一地址指令条数为:N=(24 - K)X26 - M/26;( M/26向上取整)。 零地址指令条数为: M = 216 - 212K - 26N 当K最大时(K=15),一地址指令最多有: Nmax=64 - 1 = 63 种;零地址指令最多有:Mmax=64种 注意:应首先根据题意画出指令基本格式。第八章1. 什么是指令周期?指令周期是否有一个固定值?为什么? 解:指令周期是指一条指令从开始取直到执行完这段时间。由于计算机中各种指令执行所需的时间差异很大,因此为了提高CPU运行效率,即使在同步控制的机器中,不同指令的指令周期长度都是不一致的,也就是说指令周期对于不同的指令来说不是一个固定值。讨论: 指令周期长度不一致的根本原因在于设计者,为了提高CPU运行效率而这样安排的,与指令功能不同及指令实际执 行时间不同没有什么必然关系。2. 设CPU内有下列部件:PC、IR、SP、AC、MAR、MD
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号