408考研计算机之计算机组成与设计——知识点及其做题经验篇目3:指令的寻址方式

news2024/11/24 23:28:13

        上篇文章我们讲到,指令的基本格式,一条指令通常包括操作码字段和地址码字段两部分:

操作码字段地址码字段

        并且我们还讲到根据操作数地址码的数目不同,可将指令分为零一二三四地址指令。感兴趣的小伙伴们可以看看小编的上一篇文章:

408考研计算机之计算机组成与设计——知识点及其做题经验篇目2:指令系统_计算机鬼才~的博客-CSDN博客

         那么本期的博客小编将会探讨,计算机通过地址码字段,找到指令或者操作数有效地址的方式,跟随好小编的脚步,我们发车啦!

目录

一、指令寻址

1、顺序寻址

2、跳跃寻址

二、数据寻址具体方式

1、直接寻址与间接寻址

①直接寻址         

②间接寻址

2、寄存器寻址与寄存器间接寻址

①寄存器寻址

②寄存器间接寻址

3、立即寻址

4、隐含寻址

5、偏移寻址

①相对寻址

②基址寻址

③变址寻址

6、堆栈寻址

三、几种寻址的比较


一、指令寻址

考点1:指令寻址

        寻址方式分为指令寻址与数据寻址两大类,其中寻找下一条将要执行的指令地址称为指令地址;寻找本条指令的数据地址称为数据寻址。

        其中较为简单的是指令寻址,看篇幅我们就知道,数据寻址有十种方法,基本上除了考点1里面讲到了指令寻址,其他的全是数据寻址。

        指令寻址有有两种方式,一种是顺序寻址方式,另一种是跳跃寻址方式。

1、顺序寻址

        《王道考研》书上边就一句话,叫“通过程序计数器PC加1(1个指令字长),自动形成下一条指令的地址”。

        但其实,这个自动加一,大有文章可言,尤其是括号里的1个指令字长,妙不可言。这个1是泛指而不是特指,你可以把这个1理解为,下一条指令的地址是下一条地址,但是具体问题要具体分析。比如说当主存按字节编址,而指令字长有两个字节,如下图:

编号1:01101100
编号2:10100011
编号3:11001010
编号4:00110010
……

        主存按字节变址,所以每8位构成主存的一个存储单元 ,此时的PC存放的内容为01101100的地址,我们暂时以编号1来称呼这个地址名。而由于指令字长有两个字节,即编号1(01101100)与编号2(10100011)共同构成了这一条指令。那么想要执行下一条指令,我们需要执行(PC)+2\rightarrowPC,即执行从编号3开始构成的这条指令。

        这一问题不大容易直接考,但是融合到某个选择题或者大题里面,不注意就容易错!

2、跳跃寻址

        通过转移类指令来实现,比如说无条件转移指令、有条件转移指令。所谓跳跃,是指下条指令的地址不由程序计数器PC自动给出,而是由本条指令给出下条指令的计算方式,跳跃的结果为当前指令修改PC值,所以下一条指令依然由PC给出。

我们看一道例题,感受一下:

例题:对按字寻址的机器,程序计数器和指令寄存器的位数各取决于___、____

A.机器字长

B.存储器的字数

C.指令字长

D.地址总线宽度

【答案】:B、 C

【解析】:程序寄存器PC存放的是下一条执行指令的地址,即指令在内存中的地址,指令寄存器IR存放的是当前指令的内容,所以程序计数器PC的位数取决于存储器的字数,而指令寄存器IR取决于指令字长。

二、数据寻址具体方式

       

        但是在具体讲之前,我们先要明白几个符号。指令中的地址码并不代表操作数的真实地址,这种地址我们称为形式地址A,而经过数据寻址,我们找到操作数真实的地址,这种地址称为有效地址EA。

        其中A代表地址,即编号,而(A)代表A地址中存放的数字。

操作码寻址特征形式地址A

考点2:简单的寻址

1、直接寻址与间接寻址

        如果就这样讲,略显单调,所以小编在这一部分的开头要举一个小例子:假设小伍同学与桃园小区的很多小朋友都是是好朋友,小伍同学每天放学后都要去一个好朋友的家里玩,但是又记不清每一个同学的家庭住址,小伍同学有一个只能记录一个人家庭住址的备忘录,此时我们该如何找到这个“地址”呢?

①直接寻址         

        第一种方式:备忘录上就是要找的这个好朋友的地址,找到某个好朋友的家庭住址。

        这种方式很直接,指令字中的形式地址A就是操作数的真实地址EA,即EA=A。而且只用去一个好朋友的家里,即只用访存一次,而且还特别简单好理解。

②间接寻址

        第二种方式:查备忘录,然后先去第一个好朋友A的家里,让这个好朋友告诉自己好朋友B的家庭地址。我不能直接知道地址,但是我可以问别人,让别人告诉我正确的地址。

        这种方式指令的地址字段给出的形式地址不是操作数真正的地址,而是操作数有效地址所在的存储单元的地址,也就是说操作数地址的地址,即EA=(A)。

        同时,倘若第一个好朋友A也不知道B的地址,他可以告诉你C的地址,并且说“我不知道B住哪儿,但我知道C在哪儿,你去问一问C吧,C没准知道B住在哪儿”。这种情况就是多次间接寻址了。在实际的主存中,主存字第一位为1时,表示去除的仍然不是操作数的地址,这个1就好比是“我不知道B住在哪儿”这句话。

        间接寻址的优点为:可扩大寻址范围,因为有效地址EA的位数大于形式地址A的位数,也便于完成子程序的返回,缺点是,要进行多次访存(到好几个小朋友的家里去问),极大的降低了时间。

2、寄存器寻址与寄存器间接寻址

①寄存器寻址

        寄存器寻址是指在指令字中直接给出操作数所在的寄存器编号,即EA=R,其操作数在由R所指的寄存器内。

        寄存器寻址的优点是指令在执行阶段不访问主存,只访问寄存器,引寄存器数量较少,对应地址码长度较小,使得指令字段且不用访存,所以执行速度快,缺点是寄存器价格太贵了,寄存器的个数有限。

②寄存器间接寻址

        寄存器间接寻址是指在寄存器R中给出的不是一个操作数,而操作数所在主存单元的地址,即(EA)=R。

        寄存器间接寻址的特点是,与一般间接寻址相比速度更快,但指令的执行阶段需要访问主存。注意哦,不出意外的话,就访存一次,《王道考研》书上边没有提到多次寄存器间接寻址。

3、立即寻址

        这种类型的指令的地址字段指出的不是操作数的地址,而是操作数本身,又称立即数,采用补码表示。其中#表示立即寻址特征,A就是操作数。

        立即寻址的优点是指令在执行阶段不访问主存,指令执行时间最短,缺点为A的位数限制了立即数的范围。

4、隐含寻址

        这种类型的指令不明显给出操作数的地址,而是在指令中隐含操作数的地址。例如单地址的指令格式就不明显的在地址段指出第二操作数的地址,而规定累加器ACC作为第二操作数地址,累加器ACC对单地址指令格式来说就是隐含寻址。

        隐含寻址的优点是有利于缩短指令字长,缺点是需增加存储操作数货隐含地址的硬件。

来看两道道题目:

例题1:为了简化地址结构,我们采用()

A.立即寻址

B.寄存器寻址

C.隐含寻址

D.间接寻址

【答案】:C

【解析】:隐地址不给出明显的操作数地址,而在指令中隐含操作数的地址,因此可以简化地址结构,而CPU中的寄存器数量不会太多,用很短的编码就可以指定寄存器,因此也能有效的缩短地址段的位数。但是寄存器寻址简化地址结构的效果没有隐含寻址更加厉害,所以当选项中有隐含寻址的时候,就选隐含寻址,没有隐含寻址的时候,就选寄存器寻址

例题2:假设某条指令的第一个操作数采用寄存器间接寻址的方式,指令中给出的寄存器编号为8,8号寄存器的内容为1200H,地址为1200H的单元中的内容为12FCH,地址为12FCH的单元中的内容为38D8H,则该操作数的有效地址为()

A.8

B.1200H

C.12FCH

D.38D8H

【答案】:B

【解析】:我们画一个表,感受一下:

编号/主存号8(寄存器)1200H12FCH
存放内容1200H12FCH38D8H

由于是寄存器间接寻址,则8号寄存器放的是有效操作数所在的主存地址,即有效地址。故1200H为有效地址,而12FCH为真实操作数。大家千万要注意,题目中问的是有效地址还是操作数!不审题就容易功亏一篑。

考点3:偏移寻址

5、偏移寻址

①相对寻址

        相对寻址是把PC的内容加上指令格式中的形式地址A而形成操作数的有效地址,即EA=(PC)+A,其中A是相对于当前PC值的位移量,可正可负,补码表示

        这种寻址的优点是操作数的地址不固定,岁PC值的变化而变化,而且于指令地址见总是差一个固定值,因此便于程序浮动。

        但是特别注意:当CPU从存储器中取出一字节是,会自动执行(PC)+1\rightarrowPC,也就是说PC先自增,用这个自增的地址进行偏移,我们看一道例题就能立马明白:

例题:(2009年统考真题)某机器字长为16位,主存按字节编址,转移指令采用相对寻址,由两字节组成,第一字节为操作码字段,第二字段为相对位移量字段,假定取指令时,每去一字节PC自动加1,若某次转移指令所在主存地址为2000H,相对位移量字段的内容为06H,则该转移指令成功转移后的目的地址为()

A.2006H

B.2007H

C.2008H

D.2009H

【答案】:C

【解析】:首先这是2009年的统考题,直接选D(笑死,不会真的有人这么想吧)。首先机器字长为16位,即两个字节,那么CPU取出这一指令时,PC会立马加2,存放2002H,然后经过偏移06H,得到目的地址为2008H。

②基址寻址

        基址寻址是将CPU中的基址寄存器BR的内容加上指令格式中的形式地址A二形成操作数的有效地址,即EA=(BA)+A。其中基址寄存器既能采用专用寄存器,又能采用通用寄存器。

        至于基址寻址的功能,我们一句话总结为“面向系统,主要用于多道程序或数据分配空间”,很好理解,因为基址寄存器的内容不变,而形式地址则作为偏移量。用户不必为自己的程序存于哪个空间区域而烦恼,系统会安排的,因此有利于多道程序。

③变址寻址

        变址寻址是指有效地址EA等于指令字中形式地址A与变址寄存器IX的内容之和,即EA=(IX)+A。

        我们依然用一句话总结“面向用户,主要用于处理好数组问题”,变址寄存器的内容由用户设定,但是指令字中的A是不可变的。而且在数组处理过程中,可设定A为数组首地址,不断改变变址寄存器IX的内容,便很容易形成数组中任意一个数据的地址,特别适合编制循环程序。

6、堆栈寻址

        堆栈是存储器中一块特定的、满足后进先出原则的存储区,该存储区中读写单元的地址由一个特定的寄存器给出,该寄存器称为SP,即堆栈指针。

三、几种寻址的比较

考点4:对比

寻址方式有效地址访存次数速度用途与特点
隐含寻址程序指定0\缩短指令字长
立即寻址A即为操作数01补码,快
直接寻址EA=A13
一次间接寻址EA=(A)28扩大寻址范围、有利于子程序返回
寄存器寻址EA=R02快,不访存,指令字长短
寄存器一次间接寻址EA=(R)13扩大寻址范围
相对寻址EA=(PC)+A15便于程序浮动
基址寻址EA=(BR)+A15面向系统
变址寻址EA=(IX)+A15面向用户,解决数组

例题()便于处理数组问题。

A.间接寻址

B.变址寻址

C.相对寻址

D.基址寻址

【答案】:B

【解析】:略,自己重新看上边的表格

        好的,本期的计算机考研总结性文章就到此为止啦,感兴趣的好兄弟们快来关注一波,让小编感受到大家的赞赏。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/401858.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

贝塞尔曲线介绍及其应用

贝塞尔样条是一个允许用户控制节点处斜率的样条,是一种特殊的三次样条。   皮埃尔贝塞尔在其为雷诺(Renault)汽车公司工作时有了这个创意。Paul de Casteljau在与雷诺竞争关系的汽车公司雪铁龙Citroen公司工作时也独立有了这个想法。这在两…

联合解决方案 | 亚信科技AntDB数据库携手浪潮K1 Power赋能关键行业数字化转型,助力新基建

自2022年印发《“十四五”数字经济发展规划》以来,我国数字化发展进入快车道。数据库作为数据存储与计算的基础软件,对筑牢数字经济底座至关重要。服务器是承载数据的重要载体,在数据库性能可以通过扩容而无上限提升的情况下,数据…

老爸:“你做的什么游戏测试简直是不务正业!”——我上去就是一顿猛如虎的解释。

经常有人问我:游戏测试到底是干什么呢?是游戏代练?每天玩游戏?装备随便造,怪物随便秒,线上GM指令随便用?可以每天玩玩游戏,不用忙工作,太爽了?有时朋友不理解…

1638_chdir函数的功能

全部学习汇总:GreyZhang/g_unix: some basic learning about unix operating system. (github.com) 今天看一个半生不熟的小函数,chdir。说半生不熟,是因为这个接口一看就知道是什么功能。然而,这个接口如何用可真就没啥想法了。 …

【微信小程序】-- 自定义组件 -- 数据、方法和属性(三十三)

💌 所属专栏:【微信小程序开发教程】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &…

设计模式之门面模式(外观模式)

目录 1.模式定义 2.应用场景 2.1 电源总开关例子 2.2 股民炒股场景 ​编辑 3. 实例如下 4. 门面模式的优缺点 传送门: 项目中用到的责任链模式 给对象讲工厂模式,必须易懂易会 策略模式,工作中你用上了吗? 1.模式定…

Linux order(文件、磁盘、网络、系统管理、备份压缩)

1. Linux 文件命令 -rwxrwxrwx chmod:change mode,用于(文件所有者或 root )变更用户(u:owner g:group o:other a:all)的权限 chmod [OPTION]… MODE[,MODE]… FILE… OPTION -R:递归修改more option:chmod…

【WPS文字-Word】WPS文字设置段落居中对齐后公式左边右边的文字仍然无法跟公式对齐,公式和文字对不齐

一、问题背景 原来的公式左边文字是底端,右边文字是居中,我想着让左右文字全跟公式居中对齐,就全部设置了段落居中对齐。 结果发现,公式左右边的文字依然无法居中对齐。左边的文字是居中,但是右边的文字变成了顶端对…

数据推介⎮情感语音合成音库

在语音交互领域,语音合成是重要的一环,其技术也在不断发展。近年来,人们对情感合成的兴趣和需求越来越高。情感语音合成会让机器如真人一样和我们交流,它可以用愤怒的声音、开心的声音、悲伤的声音等不同情绪来表达,甚…

Atlassian Server用户新选择 | 云版和本地部署的数据中心版,总有一个适合您

Atlassian对Server版本产品的支持将于2024年2月15日结束,现在,是时候创建您的迁移计划了。一起来看看您需要了解什么基础知识以及如何规划下一步行动吧。 虽然离终止支持还有几个月的时间,但对于使用Server版的企业来说,这是一则…

数字孪生与 UWB 人员定位:双剑合璧的智能物联新时代

人员定位是指利用各种定位技术对人员在特定场所的位置进行准确定位的技术。人员定位技术主要应用于需要实时监控、管理和保障人员安全的场所,如大型厂区、仓库、医院、学校、商场等。人员定位技术的应用范围非常广泛,例如:-在工厂生产线上&am…

MySQL数据库迁移

考试系统的数据库一直是在我自己的服务器上面的, 但是最近,自己的服务器马上要过期了,里面的MySQL数据需要迁移出来,放在另外一个服务器上面。百度了几篇教程,也没研究太多,选了一种比较简单的方式进行迁移…

蓝桥杯三月刷题 第7天

文章目录💥前言😉解题报告💥三角回文数🤔一、思路:😎二、代码:💥数数🤔一、思路:😎二、代码:💥数组切分🤔一、思路:😎二、…

归并排序的学习过程(代码实现)

归并排序的学习过程 在知乎上搜索相关内容: 先在必应和知乎上搜索归并排序的概念: 归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型…

工作记录:举步维艰的在线 word 之旅 - tinymce

项目中需要实现 “在线编辑 word 模板” 的功能,我打算使用富文本组件 tinymce ,因为业务需求比较特殊,研究一下 tinymce 是否能实现。 如何在 vue 项目中引用 tinymce,可以看另一篇文章 《在 vue 项目中使用 tinymce》 &#x…

HTML文档的基本结构

HTML文档以.html结尾&#xff0c;可以直接使用笔记本创建。 外部结构 <!DOCTYPE HTML><html></html>HTML文档外部结构由DOCTYPE和HTML构成。DOCTYPE告诉浏览器处理的是HTML文档&#xff0c;HTML规定使用HTML5标准。 然后是html元素&#xff0c;他告诉浏览…

基于Spring事件驱动模式实现业务解耦

事件驱动模式 举个例子&#x1f330; 大部分软件或者APP都有会有会员系统&#xff0c;当我们注册为会员时&#xff0c;商家一般会把我们拉入会员群、给我们发优惠券、推送欢迎语什么的。 值得注意的是&#xff1a; 注册成功后才会产生后面的这些动作&#xff1b;注册成功后的…

Flutter(五)容器类组件

布局类组件包含多个子组件&#xff0c;而容器类组件只包含一个子组件 目录填充&#xff08;Padding&#xff09;装饰容器&#xff08;DecoratedBox&#xff09;变换&#xff08;Transform&#xff09;Transform.translate 平移Transform.rotate 旋转Transform.scale 缩放Rotate…

C++中拷贝构造和赋值重载的注意事项以及编译器的优化处理

C中拷贝构造和赋值重载的注意事项以及编译器的优化处理前言1. 拷贝构造和赋值重载的易混淆点和注意事项1.1 易混淆点1.2 注意事项2.编译器对拷贝构造和赋值重载的优化处理前言 本文可以帮助你对下面&#xff1a; &#xff08;1&#xff09;何时调用拷贝构造何时调用赋值重载 &a…

多元统计分析、混合效应模型、结构方程模型、极值统计学、贝叶斯网络、copula

生态环境视角下的多元统计分析 1、多元数据分析:概念、定义、及应用困惑; 2、生态环境数据多元统计方法及应用情景; 3、生态环境多元数据分析预处理; 时长&#xff1a;2小时24分钟 结构方程模型&#xff08;SEM&#xff09;原理、构建流程及应用 1、结构方程模型基本原理 …