计算机组成原理-指令寻址

指令寻址

指令 寻址下一条欲执行指令的地址(始终由程序计数器PC给出)
顺序寻址 (PC)+“1”-> PC
这里的1理解为1个指令字长,实际加的值会因指令长度、编址方式而不同
**跳跃寻址 **由转移指令指出
image.png

数据寻址

确定 本条指令 的 地址码指明的真实地址
image.png
image.png
image.png

直接寻址

image.png
直接寻址:指令字中的形式地址A就是操作数的真实地址EA,即EA=A。
image.png
条指令的执行:
取指令访存1次
执行指令访存1次
暂不考虑存结果
共访存2次
优点:简单,指令执行阶段仅访问一次主存,不需专门计算操作数的地址。
缺点:A的位数决定了该指令操作数的寻址范围。操作数的地址不易修改。

间接寻址

image.png
间接寻址:指令的地址字段给出的形式地址不是操作数的真正地址,而是操作数有效地址
所在的存储单元的地址,也就是操作数地址的地址,即EA=(A)。
image.png
条指令的执行:
取指令访存1次
执行指令访存2次
暂不考虑存结果
共访存3次
image.png
优点:
可扩大寻址范围(有效地址EA的位数大于形式地址A的位数)。
便于编制程序(用间接寻址可以方便地完成子程序返回)。
缺点:
指令在执行阶段要多次访存(一次间址需两次访存,多次寻址需根据存储字的最高位确定几次访存)。

寄存器寻址

image.png
寄存器寻址:在指令字中直接给出操作数所在的寄存器编号,即EA=R,其操作数在由R,所指的寄存器内。
image.png
条指令的执行:
取指令访存1次
执行指令访存0次
暂不考虑存结果
共访存1次
优点:
指令在执行阶段不访问主存,只访问寄存器,指令字短且执行速度快,支持向量/矩阵运算。
缺点:
寄存器价格昂贵,计算机中寄存器个数有限。

寄存器间接寻址

image.png
寄存器间接寻址:寄存器R,中给出的不是一个操作数,而是操作数所在主存单元的地址,即EA=®
image.png
一条指令的执行:
取指令访存1次
执行指令访存1次
暂不考虑存结果
共访存2次
特点:
与一般间接寻址相比速度更快,但指令的执行阶段需要访问主存(因为操作数在主存中)。

隐含寻址

隐含寻址:不是明显地给出操作数的地址,而是在指令中隐含着操作数的地址。
image.png
优点:有利于缩短指令字长。
缺点:需增加存储操作数或隐含地址的硬件。

立即寻址

image.png
立即寻址:形式地址A就是操作数本身,又称为立即数,一般采用补码形式。
#表示立即寻址特征。

一条指令的执行:
取指令访存1次
执行指令访存0次
暂不考虑存结果
共访存1次
优点:指令执行阶段不访问主存,指令执行时间最短
缺点:
A的位数限制了立即数的范围。
如A的位数为n,且立即数采用补码时,可表示的数据范围为-2的n-1次方~2的n-1次方-1
image.png

偏移寻址

基址寻址

BR–base address register
EA–effective address
基址寻址:
将CPU中基址寄存器(BR)的内容加上指令格式中的形式地址A,
而形成操作数的有效地址,即EA=(BR)+A。
image.png
image.png
基址寻址的作用
基址寻址:将cPU中基址寄存器(BR)的内容加上指令格式中的形式地址A,
而形成操作数的有效地址,即EA=(BR)+A。
image.png
优点:便于程序“浮动”,方便实现多道程序并发运行
注:基址寄存器是面向操作系统的,其内容由操作系统或管理程序确定。在程序执行过程中,基址寄存器的内容不变(作为基地址),形式地址可变(作为偏移量)。
当采用通用寄存器作为基址寄存器时,可由用户决定哪个寄存器作为基址寄存器,但其内容仍由操作系统确定。
优点:可扩大寻址范围(基址寄存器的位数大于形式地址A的位数)﹔用户不必考虑自己的程序存于主存的哪一空间区域,故有利于多道程序设计,以及可用于编制浮动程序(整个程序在内存里边的浮动)。

变址寻址

变址寻址:有效地址EA等于指令字中的形式地址A与变址寄存器IX的内容相加之和,即EA=(IX)+A,其中IX可为变址寄存器(专用),也可用通用寄存器作为变址寄存器。
image.png
注:变址寄存器是面向用户的,在程序执行过程中,变址寄存器的内容可由用户改变(IX作为偏移量),形式地址A不变(作为基地址)。
变址寻址的作用
image.png
image.png
优点:在数组处理过程中,可设定A为数组的首地址,不断改变变址寄存器IX的内容,便可很容易形成数组中任一数据的地址,特别适合编制循环程序。
基址&变址复合寻址
image.png

相对寻址

相对寻址:
把程序计数器PC的内容加上指令格式中的形式地址A而形成操作数的有效地址,
即EA=(PC)+A,其中A是相对于PC所指地址的位移量,可正可负,补码表示。
image.png
image.png
优点:操作数的地址不是固定的,它随着PC值的变化而变化,并且与指令地址之间总是相差一个固定值,因此便于程序浮动(一段代码在程序内部的浮动))。
相对寻址广泛应用于转移指令。
image.png
注意:取出当前指令后,PC会指向下一条指令,相对寻址是相对于下一条指令的偏移

堆栈寻址

SP–Stack Pointer
堆栈寻址:操作数存放在堆栈中,隐含使用堆栈指针(SP)作为操作数地址。
堆栈是存储器(或专用寄存器组)中一块特定的按“后进先出(LIFO)”原则管理的存储区,该存储区中被读/写单元的地址是用一个特定的寄存器给出的,该寄存器称为堆栈指针(SP) 。
image.png
image.png
image.png
堆栈可用于函数调用时保存当前函数的相关信息
image.png

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AttributeError: module ‘lib‘ has no attribute ‘X509_V_FLAG_CB_ISSUER_CHECK‘解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

【Android12】Android Framework系列--AMS启动Activity分析

AMS启动Activity分析 通过ActivityManagerService(AMS)提供的方法,可以启动指定的Activity。比如Launcher中点击应用图标后,调用AMS的startActivity函数启动应用。 AMS提供的服务通过IActivityManager.aidl文件定义。 // frameworks/base/core/java/an…

智能优化算法应用:基于郊狼算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于郊狼算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于郊狼算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.郊狼算法4.实验参数设定5.算法结果6.参考文献7.MA…

关于IDEA中maven的作用以及如何配置MAVEN

关于IDEA中maven的作用以及如何配置MAVEN 1、Maven是什么2、Idea中对于Maven的配置3、下载依赖时,Idea下方的显示3.1、Maven中央仓库的下载显示界面3.2、阿里云仓库的下载显示界面 4、Maven在Idea中的使用4.1、clean4.2、validate4.3、compile4.4、test(…

pyqt5使用Designer实现按钮上传图片

pyqt5使用Designer实现按钮上传图片 1、ui界面 2、ui转py代码 其中uploadimg.py代码如下: # -*- coding: utf-8 -*-# Form implementation generated from reading ui file uploadimg.ui # # Created by: PyQt5 UI code generator 5.15.4 # # WARNING: Any manua…

git 使用记录

远程仓库为空初始化 初始化本地仓库 git init 在本地仓库书写代码(这里可以编辑一个文本文件做测试,如hello.txt) 5)执行:git add 要让git管理的文件(git add hello.txt)>执行完此操作将我…

有趣的数学 用示例来阐述什么是初值问题一

一、初值问题简述 在多变量微积分中,初值问题是一个常微分方程以及一个初始条件,该初始条件指定域中给定点处未知函数的值。在物理学或其他科学中对系统进行建模通常相当于解决初始值问题。 通常给定的微分方程有无数个解,因此我们很自然地会…

Linux 基础IO

文章目录 前言基础IO定义系统IO接口文件描述符重定向原理缓冲区刷新 前言 要知道每个函数/接口的全部参数和返回值建议去官网或者直接在Linux的man手册中查,这不是复制粘贴函数用法的文章。 C语言文件读写介绍链接 基础IO定义 IO是Input/Output的缩写&#xff0c…

【大数据】Hudi 核心知识点详解(一)

😊 如果您觉得这篇文章有用 ✔️ 的话,请给博主一个一键三连 🚀🚀🚀 吧 (点赞 🧡、关注 💛、收藏 💚)!!!您的支持 &#x…

【操作宝典】VSCode解锁指南:释放潜能的详细教程!

目录 📖前言 🚀 1 配置node.js 🚀2. 使用脚本测试vue项目 🚀3. VSCode运行vue 🚀4. VSCode引入elementUI 🌟4.1 显示OPENSSL错误 📖前言 Visual Studio Code(简称VSCode&#x…

MySQL数据库,创建和管理表

创建数据库: 方式一:创建数据库 CREATE DATABASE 数据库名;(使用的是默认的字符集) 方式二:创建数据库并指定字符集 CREATE DATABASE 数据库名 CHARACTER SET 字符集; 方式三:判断数…

基于若依的ruoyi-nbcio的flowable流程管理系统增加服务任务和我的抄送功能

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 1、增加一个状态字段 wf_copy增加下面两个字段 就用未读已读来区分 2、前端 api接口增加如下&#xff…

城市基础设施智慧路灯改造的特点

智慧城市建设稳步有序推进。作为智慧城市的基础设施,智能照明是智慧城市的重要组成部分,而叁仟智慧路灯是智慧城市理念下的新产品。随着物联网和智能控制技术的飞速发展,路灯被赋予了新的任务和角色。除了使道路照明智能化和节能化外&#xf…

Oracle(2-12)User-Managed Complete Recovery

文章目录 一、基础知识1、Media Recovery 介质恢复2、Recovery Steps 恢复步骤3、恢复4、Recovery in ARCHIVELOG 在ARCHIVELOG中恢复5、Complete Recovery完全恢复6、CR in ARCHIVELOG Mode 归档日志模式下的完全恢复7、Determine Files Need Recovery确定需要恢复的文件8、Ab…

HTTP与HTTPS的区别:安全性、协议地址和默认端口等比较

目录 ​编辑 作者其他博客链接: 一、概述 二、HTTP与HTTPS的区别 安全性 协议地址 默认端口 性能影响 三、比较与评估 浏览器支持 部署和维护成本 隐私保护 四、最佳实践建议 作者其他博客链接: 深入理解HashMap:Java中的键值对…

侯捷C++ (二--STL标准库)2

适配器 adapter 也可以叫做改造器,改造已经存在的东西 有:仿函数适配器、迭代器适配器、容器适配器 实现适配,可以使用继承、复合的两种方式实现。 共性:STL使用复合来实现适配 容器适配器 包括stack、queue,内含一…

win11 powershell conda 激活环境后不显示环境名称

win11 powershell conda 激活环境后不显示环境名称 问题现象解决方法 问题现象 安装 Anaconda 后在 powershell 中激活环境后,命令行前面不显示环境名称 解决方法 在 powershell 中执行 conda init 重新打开 poweshell 出现以下问题,请参考 win11 p…

fl studio 21破解版注册机下载 水果音乐编曲软件 FL Studio v21.

FL studio21中文别名水果编曲软件,是一款全能的音乐制作软件,包括编曲、录音、剪辑和混音等诸多功能,让你的电脑编程一个全能的录音室,它为您提供了一个集成的开发环境,使用起来非常简单有效,您的工作会变得…

zabbix、netdata和glances,做最简单的系统资源监控

软件需要显示服务器的资源信息(CPU、内存、网络、硬盘等),但是软件是在Docker容器中运行。 目前方案 通过ssh在主机上远程运行ps、free等指令,获取相应的信息。这种方案需要代码配置主机的IP,以及用户名和密码&#…

指针(笔记1)

一、内存和地址 内存及其管理方法: 1.计算机主存储器由一个一个存储单元组成,微型计算机以字节作为存储单元 2.内存区的每一个字节有一个唯一的编号,这就是“地址”,它相当于教学楼中的教室号 3.内存地址,是一个无符号整数(un…