数据寻址-偏移寻址(硬核)

目录

  • 一. 基址寻址
  • 二. 变址寻址
  • 三. 相对寻址
  • 四. 硬件如何实现数的"比较"

\quad

在这里插入图片描述
\quad
\quad
在这里插入图片描述
\quad

\quad
在这里插入图片描述
\quad

在这里插入图片描述
\quad

一. 基址寻址

\quad

在这里插入图片描述

A就是偏移量
有的用通用寄存器来代替BR专用寄存器的功能
其中 R 0 R_0 R0的位数是由通用寄存器的总数来判断的, 比如通用寄存器有8行, 那么 R 0 R_0 R0就需要用3bit来指明

\quad

基址寻址的作用
在这里插入图片描述
那么如果地址不是从0开始的呢?

在这里插入图片描述
只需要更改基址就可以, 不用更改指令的地址码
永远让BR指向起始地址
\quad
\quad

在这里插入图片描述

我们写的应用程序到底被放到内存的什么位置, 这点是由操作系统来管理的, 我们决定不了,
基址寄存器是指向应用程序的起始地址, 因此基址寄存器的内容显然是由操作系统来管理, 所以不由程序员控制, 但是程序员可以用汇编语言操作通用寄存器里的内容

\quad

二. 变址寻址

\quad

在这里插入图片描述
\quad
变址寻址和基址寻址很类似, 最大的不同是变址寄存器的内容程序员是可以修改的
而且通常我们把IX作为偏移量, A作为基址, 这点和基址寻址是相反的

\quad
变址寻址的作用
在这里插入图片描述
局限性: 若要从0加到100, 就要一直增加操作数和地址码, 很不方便

\quad
用变址寻址可以实现循环
在这里插入图片描述
在数组处理过程中,可设定A为数组的首地址,不断改变变址寄存器lX的内容,便可很容易形成数组中任一数据的地址,特别适合编制循环程序。

\quad
在这里插入图片描述
注:实际应用中往往需要多种寻址方式复合使用(可理解为复合函数)

\quad

三. 相对寻址

\quad

在这里插入图片描述
A可正可负, 用补码表示
\quad

在这里插入图片描述
注意: 取出指令后PC自动加"1", 字长2个字节就加2 , 字长4个字节就加4

\quad
相对寻址的作用
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
\quad
\quad
在这里插入图片描述

\quad

四. 硬件如何实现数的"比较"

\quad
在这里插入图片描述
若要实现比较a和b的大小, 其实就让两个数相减看结果为什么, 结果为0则相等
结果为正则a大, 结果为负则a小

这里是通过标志位来判断
\quad

关于条件跳转指令

jmp 2, (无条件跳转到地址2)
je 2, (jump when equal 若a和b相等则跳转到地址2)
jg 2, (jump when great 若a>b则跳转到地址2)

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

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

相关文章

社交网络分析1:起源发展、不同领域的应用、核心概念

社交网络分析1:社交网络相关定义和概念 写在最前面关于课程 社交网络、社交网络分析社交网络发展阶段(自己感兴趣)1. 社交网络的起源2. 社交网络的演变3. 社交网络的成熟4. 发展阶段补充和展望 2023社交大变革(自己感兴趣的点&…

安装spaCy及语言包下载安装

文章目录 1. spaCy的安装1.1 安装spaCy包方式1 : 通过pip / conda命令安装方式2 : 通过离线导入 1.2 安装语言模型方式1 : 通过pip / conda命令安装方式2 : 通过离线导入 2. 常见问题a. 版本问题 3. 参考文档 关注公众号:『AI学习星球』 回复:遥感图像语…

【Spring】04 国际化

文章目录 1. 定义2. Spring 的支持1) MessageSource接口2) ResourceBundleMessageSource 3. 配置国际化1)配置MessageSource Bean2)创建资源文件3)在Bean中使用国际化消息 4. 使用占位符和参数结语 Spring 为我们提供了…

橘子学K8S01之容器中所谓的隔离

我们一直都在说容器就是一个沙盒,沙盒技术顾名思义就是像一个集装箱一样,把应用(服务,进程之类的)装起来的技术,这样每个进程在自己的沙盒中和其他的沙盒隔离开来,每个沙盒之间存在一个边界使得他们互不干扰&#xff0…

【动手学深度学习】(十三)深度学习硬件

文章目录 一、CPU和GPU二、更多的芯片1.DSP:数字信号处理2.可编程阵列(FPGA)3.AI ASIC 三、单机多卡并行 一、CPU和GPU 提升CPU利用率 在计算ab之前,需要准备数据 主内存->L3->L2->L1->寄存器(数据只有进入寄存器才可以参与运算) 提升空间和时间的内存…

Linux基本开发工具

编译器和自动化构建工具 一、编译器——gcc、g1. 安装 gcc/g2. 使用3. 链接库4. 拓展命令:od/file/ldd/readelf 二、自动化构建项目——make、makefile1. 介绍2. 使用例子touch——change file timestampsstat——display file or file system status修改时间 .PHON…

Java入门学习笔记二

一、抽象类 当编写一个类时,我们往往会为该类定义一些方法,这些方法是用来描述该类的行为方式,那么这些方法都有具体的方法体。 分析事物时,发现了共性内容,就出现向上抽取。会有这样一种特殊情况,就是功…

国家开放大学 湖南开放大学形成性考核 平时作业 统一资料

试卷代号:1258 房屋建筑混凝土结构设计 参考试题 一、单项选择题(每小题2分,共计40分) 1.( )是将框架结构中的部分跨间布置剪力墙或把剪力墙结构的部分剪力墙抽掉改为框架承重。 A.梁板结构体系 B.框…

区块链的可拓展性研究【05】闪电网络

1.闪电网络:闪电网络是一种基于比特币区块链的 Layer2 扩容方案,它通过建立一个双向支付通道网络,实现了快速、低成本的小额支付。闪电网络的交易速度非常快,可以达到每秒数万笔交易,而且交易费用非常低,几…

Linux---复制、移动文件及目录命令

1. 复制、移动文件及目录命令的使用 命令说明cp拷贝文件、拷贝目录mv移动文件、移动目录、重命名 cp命令效果图: 说明: 拷贝目录需要加上-r选项,-r表示递归拷贝目录及其内容 mv命令移动文件效果图 mv命令移动目录效果图 mv命令重名名效果图 2. 小结 cp&#…

TwinCAT3 Modbus-TCP Client/Server使用

目录 一、环境配置和准备 1、PLC中安装TF6250-Modbus-TCP库 2、勾选TF6250的license 3、PLC工程中添加Tc2_ModbusSrv库文件 4、分别创建测试ModbusTCP测试的Server和Client程序 二、PLC作为Client端 1、设置测试电脑IP地址 2、运行MobusTCP测试工具 3、PLC端程序编写 …

Python 使用 openpyxl 写表格

当前环境:Win10 x64 MS office 2016 Python3.7 openpyxl3.0.9 1 写入表格 from openpyxl import Workbook# 创建一个 workbook workbook_w Workbook()# 获取被激活的 worksheet worksheet_w workbook_w.active# 1 批量插入数据# 设置一行数据 worksheet_w.ap…

鸿蒙ArkTS基础类库——线性容器

容器类库概述 容器类库,用于存储各种数据类型的元素,并具备一系列处理数据元素的方法,作为纯数据结构容器来使用具有一定的优势。容器类采用了类似静态语言的方式来实现,并通过对存储位置以及属性的限制,让每种类型的…

自己动手写数据库: select 查询语句对应查询树的构造和执行

首先我们需要给原来代码打个补丁,在SelectScan 结构体初始化时需要传入 UpdateScan 接口对象,但很多时候我们需要传入的是 Scan 对象,因此我们需要做一个转换,也就是当初始化 SelectScan 时,如果传入的是 Scan 对象&am…

vs2019 配置liblas

vs2019 配置liblas liblas是一个开源的C库,用于读写LAS格式的点云数据。libLAS易于使用,广泛应用于各种点云处理任务。它支持基本的点云数据操作,如读取、写入和编辑LAS文件中的点。 1.源码下载 https://github.com/libLAS/libLAS 2.编译 首…

Docker多平台安装与配置指南

Docker的流行使得它成为开发者和运维人员不可或缺的工具。在本文中,将深入探讨如何在不同平台上安装和配置Docker,旨在为大家提供详尽的指南,确保他们能够顺利地使用这一强大的容器化工具。 Docker基础概念回顾 Docker利用容器技术&#xf…

设计模式-访问者模式

访问者模式是设计模式中行为型模式的一种(其他的还有如创建型、结构型),听说是设计模式中比较难理解的一种,最近项目中用到了该模式,所以今天总结和实践一下。 一、访问者模式要解决的问题: 稳定的数据结…

【系统架构】集群、分布式概念及系统架构演进过程

集群、分布式概念: 对食物没有太高要求的人在肚子饿的时候一般都会选择去兰州拉面、沙县小吃等小饭馆,这类小饭馆有个很显著的特点:洗菜、切菜、炒菜都是同一个人完成,如果厨子不舒服可能饭馆还会歇业。而一些人流量较大的饭馆的分…

MATLAB 平面拟合并可视化(34)

MATLAB 平面拟合并可视化(34) 一、效果二、代码一、效果 二、代码 % 生成三维点数据 x = rand(100, 1); y = rand(100, 1

nest框架的token登录,以及token校验

1.搭建项目 项目初始化: npm i -g nestjs/cli nest new project-name 在终端下执行这四个命令,生成两个新模块: nest g module auth nest g service auth nest g module users nest g service users 然后把这三个文件删掉,是没有…