基址寻址和变址寻址区别(白话版)

2023-05-16

  在寻址方式里面,基址寻址和变址寻址是比较常用的两种寻址方式。但因为两种太像了,总是搞不清楚。上网查到的描述太过专业看起来特别吃力。写这篇,希望能用一种通俗易懂的方式对二者做个区分。
  为什么总容易搞混呢?其实基址寻址和变址寻址都是相对寻址中的一种。计算模板都可以概括为:A=B+C(A是逻辑地址)。而且寄存器里面对这两种寻址方式都设计了专门的寄存器。基址寻址叫基址寄存器,变址寻址叫变址寄存器。寄存器里面的内容就相当于公式里的B吧。
  一个比较容易混的地方就是,基址寻址中C是变量(可以动的),而变址寻址中B是变量。那为什么要这么设计呢?设计的目的还要从功能上说(它要完成什么样的任务,自然使用什么设计方法)
  基址寻址实现的是程序段之间的转移,比如设置基址为0,我在100那个有个程序,利用基址寻址到100(一顿执行,此处省略~)。我在200又有个程序,再利用基址寻址到200。是不是每次一条指令就可以完成?所以对于基址寻址功能的描述中有一句:实现程序的动态再定位。
  变址寻址适合循环,那是怎么实现的呢?常使用的for循环都知道,每次加1。是一个固定的值。从100开始,下次101,下次102。。。用基址寻址实现可不可以呢?当然可以!按照基址寻址中基址不变的原则,更改后面的偏移量就可以。那相当于100次偏移,要100个不同的指令(后面的偏移量不同)。好麻烦啊!那变址如何实现的呢?变址寻址把100存在式子里的C中,通过改变变址寄存器中的数值,一次加1。指令中放的可都是寄存器的编号,虽然寄存器数值变了,编号还是固定的。这样看下来,整体执行的不就是同一条指令了吗?真方便啊!

  虽然二者很容易混淆,但如果意识到这些,我相信应该可以正确的区分了吧!嘿嘿

因为作者水平有限,如果错误之处,请在下方评论区指出,谢谢!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基址寻址和变址寻址区别(白话版) 的相关文章

  • C语言之strpbrk函数

    该函数的头文件为 include lt string h gt xff0c 其作用是比较字符串str1和str2中是否有相同的字符 xff0c 如果有 xff0c 则返回该字符在str1中的最先出现的位置的指针 其函数原型如下 xff1a
  • Vb.NET与VB6.0的区别

    Visual Basic NET是Microsoft Visual Studio NET套件中主要组成部分之一 NET版本的Visual Basic增加了更多特性 xff0c 而且演化为完全面向对象 xff08 就像C 43 43 xff0
  • STM32学习--GPIO(寄存器)

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 一 GPIO是什么 xff1f 二 引脚GPIO的输入输入框图输入模式作用 GPIO的输入输入框图输入模式作用 GPIO特性GP
  • c#找到网站中的照片

    c 下载图片 一 过程截图 开始 xff1a 正在下载 下载结束 下载成功了 xff01 xff01 xff01 二 代码实例 代码如下 xff08 示例 xff09 xff1a public delegate span class tok
  • linux同时连接有线无线上网问题

    起因 xff1a linux同时连接有线和无线网时 xff0c 希望用有线连内网组网 xff0c 如OAI EPC组网 xff0c 用无线访问外网 xff0c 但是默认会优先用有线 解决 xff1a 所以设置限制 xff0c 只允许目标地址
  • WK2114(一个异步串口UART 扩展为4个串口UART)

    WK2114是UART接口的4通道UART器件 WK2114将一个标准3线异步串口 xff08 UART xff09 扩展成为4个增强 功能串口 xff08 UART xff09 主接口UART在数据传输时主接口的UART可以通过引脚配置为
  • sql解析:获取Select字段

    https blog csdn net github 26672553 article details 100048506 前面已经了解这个解析sql的第三方库 继续深入学习 比如我们要获取到select查询语句中的字段id name ag
  • go协程池

    编写代码实现了一个计算随机数的每个位置数字之和的程序 要求使用goroutine和channel构建生产者和消费者模式 可以指定启动的goroutine数量 woker pool模式 在工作中我们通常使用workerpool模式 控制gor
  • select多路复用

    在某些场景下我们需要同时从多个通道接收数据 通道在接收数据时 如果没有数据可以接收发生阻塞 你也许会写出代码使用遍历的方式来实现 span class token keyword for span span class token punc
  • 并发安全和锁

    有时候在Go代码中可能会存在多个goroutine同时操作一个资源 xff0c 这种情况会发生数据竞态问题 举例 xff1a var x int64 var wg sync WaitGroup func add for i 61 0 i l
  • 解决import torch 报错:Failed to load image Python extension: warn(f“Failed to load image Python extens

    配置yolov5 下载地址 xff1a torch 和 torchvision的 下载完之后发现import torch没问题 但是import torchvision报错了 查阅资料原来是版本对不上 7条消息 PyTorch碎片 xff1
  • Mac电脑 - “USB 10/100 LAN”的电缆可能未插好,或另一端的设备没有响应。

    Mac突然就无法上网了 有可能装个驱动就好了 xff0c 前提是确保你的网卡芯片是realtek的 解决方法 xff1a 下这个驱动 xff0c 就好了
  • show engine innodb status解读

    注 xff1a 以下内容为根据 高性能mysql第三版 和 mysql技术内幕innodb存储引擎 的innodb status部分的个人理解 xff0c 如果有错误 xff0c 还望指正 xff01 xff01 innodb存储引擎在sh
  • Vuex速学篇:(1)基本套路

    我们前面做了一个这样的页面 xff0c 为了增加我们的学习难度 xff0c 我们特意拆分成了不同的组件 我们知道 xff0c 我们在子组件里并不能直接对兄弟组件里的属性进行操作 xff0c 我们通过this emit 调用父组件的方法 xf
  • ElementUI案例演示:导航、布局、加载动画

    知识点 1 vue router之嵌套路由 http router vuejs org zh cn essentials nested routes html 2 element ui 导航组件 布局组件 加载动画 http element
  • ElementUI之表单验证、数据绑定、路由跳转

    1 新建表单组件el form vue span class hljs tag lt span class hljs title template span gt span span class hljs tag lt span class
  • vue-router: 嵌套路由

    模板抽离 我们已经学习过了Vue模板的另外定义形式 xff0c 使用 lt template gt lt template gt span class hljs comment lt 模板抽离出来 gt span span class hl
  • react.js的两种路由方式:HashRouter

    react js路由 初步 前面我们已经了解了react js其中一种路由方式 这种方式是利用 html5的 span class hljs escape 96 w span indow history span class hljs es
  • 入手python绘图包:matplotlib,画直线、画抛物线

    入手python绘图包 xff1a matplotlib 官方地址 xff1a http matplotlib org github地址 xff1a http github com matplotlib matplotlib 学习一款图形化
  • 使用CMake构建OpenCV项目

    上一篇文章中 xff0c 我们介绍了如何在ubuntu上安装配置OpenCV xff0c 这篇文章我们来对我们的安装进行测试 xff0c 并介绍如何用CMake工具快捷地构建OpenCV项目 项目结构 为了使整个项目更加条理 xff0c 我

随机推荐

  • Ubuntu连接不了网络的解决方法亲测可行经验

    突然发现Ubuntu连不上网络 xff0c 网络打问号或者右上角也没有网络图标 xff1b 楼主一般通过前两步就解决了 xff0c 大家自行查阅网络服务名称 xff0c OK直接进入正题 通过命令行方式重启网络 如果你使用的 Ubuntu
  • 解决 ImportError: C extension: No module named ‘pandas._libs.tslib‘ not built.

    yolo配置 报错 nvidia 64 nx yolov5 master python3 detect py Traceback most recent call last File 34 usr lib python3 dist pack
  • python subprocess获取stdout和stderr

    本文转载自http www firefoxbug com index php archives 2419 xff0c 如有版权问题请联系博主删除 用subprocess的时候 xff0c 怎么获取stdout和stderr xff1f 下面
  • 关于Libcurl双向认证请求https

    之前通过libcurl开发只是做http请求 xff0c 这次公司项目需要请求https xff0c 所以就研究了一下 xff0c 其实用libcurl做http请求是非常简单的 xff0c 所有底层实现都被封装到了libcurl里面 xf
  • Kubernates简介

    Kubernates简介 应用程序的开发部署变化 从单体应用到微服务 单体应用的缺点 由多个彼此耦合的组件组成 开发 部署 管理必须以同一个实体进行 即使对某个组件的小修改也需要重新部署整个应用 组件之间没有严格的边界定义 相互依赖 随着功
  • pipenv 无法获取系统环境变量

    今天遇到了一个有意思的问题 项目是使用pipenv作为虚环境来进行包管理的 xff0c 今天在windows server 2012R2和windows server 2016上发现python脚本在运行的过程中 xff0c 不能读取到系统
  • 创客基地oDrive第二课 X2212电机配置

    淘宝套装链接 B站视频链接 2021年3月31日前 入Q群 xff08 732557609 xff09 可抽奖oDrive主板 xff01 B站视频 创客基地oDrive第二课 X2212电机配置 第1部分 硬件介绍 1 1 硬件清单 oD
  • Makerbase X2212电流环(转矩)配置

    该配置基于X2212电机 xff0c 控制模式为电流环 xff08 转矩 xff09 模式 主板参数 电机参数 编码器参数配置和位置环控制一样 xff0c 已配置可直接跳转到控制器配置 xff0c 没有配置的按以下步骤配置 1 恢复默认参数
  • Postman -中文版-安装教程

    一 下载 安装 Postman 下面是历史版本的下载链接地址 请把链接中的 34 版本号 34 替换为指定的版本号 xff08 根据自己的需求变更 xff09 Windows64位 xff1a https dl pstmn io downl
  • HTTP Digest authentication

    Digest authentication xff09 是一个简单的认证机制 xff0c 最初是为 HTTP 协议开发的 xff0c 因而也常叫做 HTTP 摘要 xff0c 在 RFC2671 中描述 其身份验证机制很简单 xff0c 它
  • ubuntu离线安装Gcc、G++、Make

    前期准备 xff1a 由于GCC G 43 43 Make等工具依赖项众多 xff0c 我们需要提前先把基础依赖库下载并安装 xff0c 才能安装以上工具 工具安装包或基础依赖库下载参加以下Ubuntu官网链接 xff1a xff08 注意
  • 教你轻松在Ubuntu 部署yolov5,胎儿级教程

    环境 xff1a Jetson xavier nx Ubuntu 18 04 python3 8 一 yolov5安装 git clone https codechina csdn net mirrors ultralytics yolov
  • LWIP之lwip_select函数

    代码如下 xff1a Processing exceptset is not yet implemented int lwip select int maxfdp1 fd set readset fd set writeset fd set
  • ubuntu下的c++编译

    刚开始使用ubuntu下的g 43 43 编译c 43 43 程序 xff0c 这里只是简单说以下自己的一些小小感受吧 1 环境准备 在ubuntu中要想编译c程序可以安装gcc编译器 xff0c 编译c 43 43 的话就不能使用gcc了
  • c++ vector的用法

    vector是STL的动态数组 xff0c 可以在运行中根据需要改变数组的大小 因为它以数组的形式储存 xff0c 所以它的内存空间是连续的 vector的头文件为 include lt vector gt 常用方法 xff1a 1 vec
  • 使用python将数据导出excel表格

    python可用于数据分析 xff0c 有时候获得了数据需要导出以作其他作用 本文就介绍python导出excel表格的方法 导出excel表格 xff0c python提供了两个库 xff1a xlwt xlrd 本文只讨论下大致框架 s
  • matlab制作散点图及颜色调配

    散点图也是比较常用的数据分析图 xff0c 今天来聊聊用matlab如何画一个散点图出来 xff01 在matlab中 xff0c 对应散点图的函数是scatter 参数形式为scatter 横坐标 xff0c 纵坐标 xff0c 颜色 x
  • matlab——修改图中字体

    在画图的时候 xff0c 我们可以使用xlabel命名x轴的名字 xff0c 使用ylabel命名y轴的名字 xff0c 使用legend命名变量的名字 xff0c 使用title命名图片的标题 但标题的字体 xff0c 大小都是默认的 其
  • python绘制热力图

    在python中绘制热力图大致有两种方法通过matplotlib库的imshow函数以及seaborn库的heatmap函数 xff0c 通过笔者尝试 xff0c seaborn库更加灵活 xff0c 本篇以seaborn为准 源代码如下
  • 基址寻址和变址寻址区别(白话版)

    在寻址方式里面 xff0c 基址寻址和变址寻址是比较常用的两种寻址方式 但因为两种太像了 xff0c 总是搞不清楚 上网查到的描述太过专业看起来特别吃力 写这篇 xff0c 希望能用一种通俗易懂的方式对二者做个区分 为什么总容易搞混呢 xf