80C51单片机的七种寻址方式

news2024/11/19 5:51:11

首先理解这样的等式

地址是20H的寄存器中,存放的内容是01H

(20H)=#01H

符号指令的书写格式

单个操作数的指令:

操作助记符 [目的操作数]

两个操作数的指令:

操作助记符[目的操作数],[源操作数]

描述符号

Rn(n=0~7)当前工作寄存器组中的寄存器R0~R7之一
Ri(i=0,1)当前工作寄存器组中的寄存器R0或R1
@间接寻址或编制寻址前缀
#data8位立即数
#data1616位立即数
direct片内RAM单元地址及SFR地址
addr1111位目的地址
addr1616位目的地址
rel8位地址偏移量,范围:-128~+127
bit片内RAM位地址,SFR的位地址
(X)X表示地质单元或寄存器的内容
/位操作数的取反操作前缀

单片机的七种寻址方式

1.直接寻址

单片机的直接寻址是指指令中给出操作数的地址,操作数就在该地址中。例如,在一条指令中,操作码指明了要执行的操作,而地址字段指明了操作数所在的内存地址。这种方式下,CPU会直接从指定的内存地址中获取操作数进行运算或操作。

优点

直接寻址是一种简单直接地寻址方式,指令中包含了数据地内存地址,因此执行不需要额外地计算过程,节省了指令的存储空间。

缺点

指令寻址要求程序员必须清除的知道数据的内存地址,这在实际编程中会增加编程的复杂性,也降低了程序的灵活性和可移植性。

寻址空间

片内RAM低128字节,SFR(符号形式)

例:若(50H)=#3AH,执行MOV A,50H后,(A)=

分析:地址为50H的存储单元,存的立即数是3AH,MOV A,50H的意思是将片内RAM中地址为50H存储单元中存储的存储数据进行移动,源操作数会覆盖目的操作数

所以(A)=#3AH

这里解释一下单片机是如何存储MOV A,50H的,因为这条指令既有字母也有数字,单片机的ROM通过E5H和50H存储这条指令,E5H表示MOV,A后面跟的是寄存器,50H表示寄存器的地址。

2.寄存器寻址

寄存器寻址中,操作数直接从寄存器中读取或写入,在使用寄存器寻址时,指令中的操作数字段通常指示了要访问的寄存器的标识符,而实际的数据就存储在该寄存器中。例如,在一条指令中,操作码指明了执行的操作,而操作数字段指示了要从哪个寄存器中获取数据或向哪个寄存器中写入数据。

优点

寄存器是CPU中的高速寄存器,因此寄存器寻址速度非常快,提高了指令执行的效率,直接从寄存器中获取数据可以节省对内存的访问时间,避免了频繁读写内存的开销。

缺点

CPU内部的寄存器数量有限,对于复杂的计算或大规模数据处理,可能会导致寄存器资源不足的问题。

寻址空间

R0~R7、A、B和DPTR

例:若(R0)=#30H,执行MOV A,R0后,(A)=

分析:寄存器R0中的数据为30H,将寄存器R0中的数据,覆盖A,所以(A)=#30H

这条指令只有字母,所以ROM通过只通过E8H存储这条指令即可

3.寄存器间接寻址

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

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

相关文章

Pandas分组聚合_Python数据分析与可视化

Pandas分组聚合 分组单列和多列分组Series 系列分组通过数据类型或者字典分组获取单个分组对分组进行迭代 聚合应用单个聚合函数应用多个聚合函数自定义函数传入 agg() 中对不同的列使用不同的聚合函数 分组聚合的流程主要有三步: 分割步骤将 DataFrame 按照指定的…

【如何将任何直流电机变成伺服电机】

【如何将任何直流电机变成伺服电机】 1 前沿2 伺服电机工作原理3 如何制作定制伺服电机4 AS5600 编码器 – 磁性旋转位置传感器5 定制伺服电机电路图6 PCB设计7 自定义伺服3D模型8 定制伺服齿轮箱的 3D 打印零件9 对控制器进行编程9.1 引导加载程序刻录9.2 代码上传9.3 源代码9…

echarts 中如何添加左右滚动条 数据如何进行堆叠如何配置那些数据使用那个数据轴

左右滚动条的效果 此项的具体配置可参考 https://echarts.apache.org/zh/option.html#dataZoom-inside.moveOnMouseWheel dataZoom: [{id: dataZoomX,type: inside,// start: 0,// end: this.xAxis.length > 5 ? 10 : 100,startValue: this.xAxis.length > 5 ? 5 : 0,/…

linux如何重置root密码

目录 当我们想要重置root管理员密码时,我们可以有两种方法进行: 方法一、init方法 1、重启系统,在下图所示界面按e键 2、随后进入以下界面,、将ro修改为rw,在行末尾添加init/bin/sh。​编辑 3、随后按Ctrlx启动到s…

Java集合大总结——Iterator(迭代器)接口

Iterator接口 在程序开发中,经常需要遍历集合中的所有元素。针对这种需求,JDK专门提供了一个接口java.util.Iterator。 Iterator接口也是Java集合中的一员,但它与Collection、Map接口有所不同。 Collection接口与Map接口主要用于存储元素Ite…

C语言--有 n 个人围成一圈,顺序排号。 从第 1 个人开始报数,从 1 到 3 报数,凡是报到 3 的人退出圈子,问最后留下的是原来的第几号?

今天小编给大家分享以下约瑟夫环问题的处理。 一.题目描述 有 n 个人围成一圈,顺序排号。 从第 1 个人开始报数,从 1 到 3 报数,凡是报到 3 的人退出圈子,问最后留下的是原来的第几号? 这是一个典型的约瑟夫环的问题。 二.思路分析 难点一:我们如何表示人退出圈…

QEMU显示虚拟化的几种选项

QEMU可以通过通过命令行"-vga type"选择为客户机模拟的VGA卡的类别,可选择的类型有多个: -vga typeSelect type of VGA card to emulate. Valid values for type arecirrusCirrus Logic GD5446 Video card. All Windows versions starting from Windows 95 should …

【设计模式】设计模式基础

设计模式基础 文章目录 设计模式基础一、七大设计原则1.1 概述1.2 单一职责原则1.3 接口隔离原则1.4 依赖倒转原则1.5 里氏替换原则1.6 开闭原则1.7 迪米特法则1.8 合成复用原则 二、UML类图2.1 概述2.2 依赖关系(Dependence)2.3 泛化关系(generalizatio…

YOLOv8/YOLOv7/YOLOv5/YOLOv4/Faster-rcnn系列算法改进【NO.79】改进损失函数为VariFocal Loss

前言 作为当前先进的深度学习目标检测算法YOLOv8,已经集合了大量的trick,但是还是有提高和改进的空间,针对具体应用场景下的检测难点,可以不同的改进方法。此后的系列文章,将重点对YOLOv8的如何改进进行详细的介绍&…

Linux MMC子系统 - 5.eMMC 5.1工作模式-引导模式

By: Ailson Jack Date: 2023.11.19 个人博客:http://www.only2fire.com/ 本文在我博客的地址是:http://www.only2fire.com/archives/164.html,排版更好,便于学习,也可以去我博客逛逛,兴许有你想要的内容呢。…

Windows 下 Sublime Text 3.2.2 下载及配置

1 下载地址: https://www.sublimetext.com/3 Sublime Text 3.2.2 (此版本选择了 portable version),直接解压就可以使用。 https://download.sublimetext.com/Sublime Text Build 3211.zip 2 相关配置 2.1 取消自动更新(需重启): Preferen…

新手必看!!超详细!STM32-基本定时器

一、基本定时器的作用 定时触发输出直接驱动DAC。 二、基本定时器的框图 以STM32F103系列为例,具体开发板请查看开发手册。 类别定时器总线位数计数方向预分频系数是否可以产生DMA捕获/比较通道互补输出基本定时器TIM6 / TIM7APB116位向上1~65536可以0无通用定时…

关于MySQL安装时一直卡在starting sever......手把手教你搞定

🎈🎈🎈很多人刚开始安装MySQL的时候会出现卡在starting sever..的情况,今天手把手教大家轻松搞定! 首先出现这个问题的原因有两个: 1. 你的电脑用户名是中文的。 2. 你前一次安装的MySQL没有完全删除干净。…

Halcon (3):窗体常用语法使用

文章目录 文章专栏视频资源前言halcon图像使用加载图片示例绘制常用图像批量批注绘制 文章专栏 Halcon开发 视频资源 机器视觉之C#联合Halcon 前言 在使用halcon的算子之前,我们要先学会如何在图片上面进行标注。因为我们不仅要导出处理的结果,还要导出…

Vue3问题:如何实现el-tree树的单选?

前端功能问题系列文章,点击上方合集↑ 序言 大家好,我是大澈! 本文约1400字,整篇阅读大约需要3分钟。 本文主要内容分三部分,第一部分是需求分析,第二部分是实现步骤,第三部分是问题详解。 …

springboot+activiti5.22.0集成Activiti在线流程设计器

SpringBoot集成Activiti5.22在线流程设计器 文章目录 SpringBoot集成Activiti5.22在线流程设计器📝1.增加配置pom依赖 增加数据库及redis配置文件📜 2.启动类ActivitiDesignApplication排除安全校验注解启动项目后将会自动在数据库中生成表 &#x1f4d8…

MySQL 的执行原理(二)

5.3. MySQL 的查询成本 5.3. MySQL 的查询成本 MySQL 执行一个查询可以有不同的执行方案,它会选择其中成本最低,或者 说代价最低的那种方案去真正的执行查询。不过我们之前对成本的描述是非常模 糊的,其实在 MySQL 中一条查询语句的执行成本…

游戏数据分析必知必会

游戏的分类 按端分类:端游(steam),页游(4399),手游(手机,pad)按盈利模式分类:付费游戏(一次买断,后续购买其它剧情或者包…

使用内网穿透解决支付宝回调地址在公网问题

使用natapp解决内网穿透问题 前言NATAPP使用购买隧道 支付宝回调地址测试之后的学习计划 前言 最近一个项目用到了支付宝,但是本地调试的时候发现支付宝的回调地址需要在公网上能够访问到。为了更加方便地调试,就使用了natapp内网穿透,将回调…

FPGA语法相关知识合集

一.相关概念 1.四种结构说明语句 2.initial 与 always 的异同点 3.task 与 function 的3个不同点 4.task的语法结构(定义及调用) 5.function的语法结构(定义及调用) 6.function 的一个必须有和一个必须没有,使用规则 7.自动(递归)函数…