单片机位寻址举例_单片机学习:51单片机寻址方式详解

114667597_1_20171028081616763

51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel 8031单片机,后来随着Flash rom 技术的发展,8031单片机取得了长足的发展,成为了应用最广泛的8位单片机之一。51单片机是基础入门的一个单片机,并且还是应用最广泛的一种。今天我们主要讲讲51单片机的寻址方式。

【指令】

指令是人们向计算机发的一种命令,一条指令对应着一种操作。

【指令系统】

CPU所能执行的全部指令的集合。CPU能够执行多少条指令是由CPU的内部结构所决定的。不同的CPU,其指令系统不同。

【指令的表示方法】

指令在机器中必须以机器码(二进制码)的形式出现。在书写指令时,通常有两种方法:

1. 在计算机发展的初期,人们用机器码书写指令,这一阶段成为机器语言阶段。

优点:用机器码书写的程序,计算机可以直接识别和运行。

缺点:书写时容易出错,不容易记忆。

2. 为了克服机器语言的缺点,人们用符号书写指令:指令由操作码和操作数组成。

优点:容易理解和记忆。

缺点:计算机不能直接识别和运行。

汇编语言程序必须转换成机器语言程序,转换方法有两种:

手工转换:查表 符号指令——机器码指令——MEM

汇编程序:符号指令——机器——机器码指令——MEM

114667597_2_20171028081616857

【寻址方式】

寻址方式由操作码和操作数组成。

操作码:决定CPU执行何种操作

操作数:就是操作对象,无论何种指令其操作的对象都是数据。

数据:数据在指令中有2种表示方法:1.数本身;2.数所在的地方

指出操作数所在的方式就是寻址方式。

114667597_3_20171028081616951

【51单片机寻址的方式】

每一种计算机都具有多种寻址方式,寻址方式的多少是反映指令系统优劣的主要指标之一。

51单片机有7种寻址方式:

1. 立即寻址

2. 直接寻址

3. 寄存器间址

4. 寄存器寻址

5. 变址寻址(基址寄存器+变址寄存器间接寻址)

6. 相对寻址

7. 位寻址

114667597_4_2017102808161713

【立即寻址】

指令的操作数存放在程序存储器中,操作数紧跟在操作码后面。

寻址空间:程序存储器

指令形式:操作码——OP 立即数——#data

注意:#表明其后跟的是立即数,立即数就是数字量本身

【直接寻址】

在指令中直接给出操作数的真实地址,操作码后面紧跟一个实际操作数地址

寻址空间:内RAM的低128字节,特殊功能寄存器SFR区

指令的三种形式:

114667597_5_2017102808161760

【寄存器寻址】

当前选定的寄存器内容就是实际操作数

寻址空间:R0~R7,由RS0、RS1确定寄存器区

指令的三种形式:

114667597_6_20171028081617122

【寄存器直接寻址】

寄存器中的内容是一个地址,由该地址单元寻址到所需的操作数

寻址空间:内部RAM

指令的三种形式:

114667597_7_20171028081617169

注意:“间接”表示某寄存器中的“内容”只是一个“单元地址”,这个地址单元中存放的数据才是要找的“操作数”。

符号“@”表示“在....”,其含义与读音皆同“at”。

规定工作寄存器只有R0和R1采用与间接寻址。

规定用MOV指令访问片内RAM,用MOVX访问外部RAM。

【基址寄存器加变址寄存器间接寻址】

以DPTR或PC作基址寄存器,A作变址寄存器两者相加形成操作数地址。

寻址空间:程序存储器

指令形式:操作码

【相对寻址】

以当前PC值为基准地址,加上指令的偏移量“rel”,结果为目标地址。

Rel为有符号补码数,范围:-128~+127

寻址空间:程序存储器

指令的三种形式:一般为双字节或三字节指令

114667597_8_20171028081617232

注意:“当前PC值”值程序中下一条指令所在的首地址,是一个16位数;符号“rel”在实际编程中通常用标号代替。

【位寻址】

以访问触发器的方式,对内部RAM、SFR的位地址空间进行访问,称为位寻址,位寻址用于布尔指令。

寻址空间:片内RAM的20H~2FH字节地址

114667597_9_20171028081617294

注意:位地址里的数据只可能是一个0或1

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

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

相关文章

网络知识:LAN、WAN、WLAN相关知识介绍

今天给大家介绍一下LAN、WAN、WLAN相关知识,希望对大家能有所帮助! 一、什么是lan、wan和wlan口的区别? 很多朋友对lan口与wan及wlan的用途了解不清楚,尤其是在做路由器桥接时,wan口与lan的连接与设置容易弄混。 1、LA…

jps

jps位于jdk的bin目录下,其作用是显示当前系统的java进程情况,及其id号。 jps相当于Solaris进程工具ps。不象”pgrep java”或”ps -ef grep java”,jps并不使用应用程序名来查找JVM实例。因此,它查找所有的Java应用程序&#xff0…

SQL

修改表的列名: exec sp_rename testtable.id,ID,column 根据传入时间删除同一天的记录 1、 delete InventoryMovementsTemp where DateDiff(DD,TrnDate ,1/11/2013)0 2、 where convert(varchar(10),TrnDate,126)’’213-01-10 2、 where trndate>’2013-01-10’…

后端技术:mybatis中resultMap用法示例笔记

1、概念resultMap属于mybatis返回操作结果的一个标签,可以用来映射select查询出来结果的集合,主要作用是将实体类中的字段与数据库表中的字段进行关联映射。并且支持复杂的返回结果类型。2、使用场景2.1 属性映射当数据库字段和项目中的实体属性不一致时…

将mysql服务移除_怎么将mysql服务移除?

将mysql服务移除的方法:1、进入“控制面板->程序->卸载或更改程序”,删除mysql程序;2、删除MySQL文件夹下的【my.ini】文件,如果备份好,可以直接将文件夹全部删除 ;3、进入注册表,将相关M…

程序人生:程序员的9个层次,你属于哪个层次

目录 第一级:糟糕的程序员 第二级:菜鸟级程序员 第三级:码农 第四级:普通程序员 第五级:中级程序员 第六级:骨干程序员 第八级:著名程序员 第九级:祖师爷级别 . 第一级:糟…

lsof -i:port 的作用

lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。如TC和UDP等,系统在后台都为该应用程序分…

SpringBoot定时任务实现的两种方式介绍

今天给大家介绍SpringBoot定时任务实现的几种方式,希望对大家能有所帮助!1、SpringTask 用法框架介绍:SpringTask是Spring自带的轻量级定时任务工具,相比于Quartz使用更加简单方便,并且不需要不需要引入其他依赖即可使…

mvc调用mysql存储过程_使用.NET MVC +EF调用oracle的存储过程

题记:需求如题,在网上搜索了一下,没有特别贴合我需求的资料,只好自己摸索,东拼西凑了解了一点东西慢慢尝试做了出来。难点:.NET是微软产品,主要支持Sql Server数据库,对于Oracle的数…

Oracle12c:安装后新建用户及其默认表空间,并创建表测试

环境:操作系统:Windows Server2008 R2 X64 Oracle版本:12c 如何安装? -- oracle 12c在oracle linux 6.6 x64上的安装 -- Windows x64位下完美安装winx64_oracle_12c_database 如何使用DataBase Cofiguration Assistant 创建数据库…

数据库:Redis相关知识梳理

1、数据类型string(字符串):最基本的k-v存储 ,适合验证码、配置信息等list(列表):适合有序/固定的列表。比如行政区、字典表、消息队列等。set(集合):支持交集…

python线性回归分析看相关性_机器学习入门-相关分析之简单线性回归

一.什么是机器学习?简单来说,机器学习是一类算法的总称,这些算法企图从大量历史数据中挖掘出其中隐含的规律,并用于预测或者分类,更具体的说,机器学习可以看作是寻找一个函数,输入是样本数据&am…

Android Listview 性能优化

首先我一般使用的适配器是BaseAdapter,其中有两个方法最主要,分别是: getCount,getView,在对Listview 进行优化的时候,首先使用 convertview 和viewHolder 配合进行优化,使用convertview的母的是控件复用,从而加到减少内存的使用,使用viewHolder 的是减少findbyid 的次数.但是在…

前端:JS实现数组去重常用的六种方法介绍

今天给大家分享JS实现数组去重常用的六种方法&#xff0c;希望对大家能有所帮助&#xff01;定义变量let arr [20,6,13,20,100,8,13,11]; let newArr [];1、两层循环去重 for(let i 0;i < arr.length;i){for(let j i 1;j < arr.length;j){if(arr[i] arr[j]){arr.sp…

python自定义colorbar_python可视化 matplotlib画图使用colorbar工具自定义颜色

python matplotlib画图使用colorbar工具自定义颜色 colorbar(draw colorbar without any mapple/plot)自定义colorbar可以画出任何自己想要的colorbar&#xff0c;自由自在、不受约束&#xff0c;不依赖于任何已有的图(plot/mappable)。这里使用的是mpl.colorbar.ColorbarBase类…

不能读取文件“itunes.library.itl”因为它是由更高级别的itunes所创建的

转自&#xff1a;https://zhidao.baidu.com/question/80796363.html 是因为你安装过高版本的后又装你版本的itunes. 你在电脑上搜索所有硬盘上的itunes library.itl这个文件.搜到就删了&#xff0c;而且搜索里选择“高级选项”除了区分大小写其它几个都钩上。这样注消下&#x…

路由器:什么是软路由,看完本篇文章你就懂了

今天小编给大家介绍一下软路由具体是什么&#xff0c;有什么实际用途&#xff0c;看完本篇你就懂了&#xff01; 一、软路由与硬路由概念介绍 硬路由&#xff1a;目前我们家里普遍使用的路由器&#xff0c;有厂家提供整体的解决方案&#xff0c;包括处理器、电源供应、嵌入式软…

c#form+mysql储存读取图片_C#从SQL server数据库中读取l图片和存入图片

本实例主要介绍如何将图片存入数据库。将图片存入数据库,首先要在数据库中建立一张表,将存储图片的字段类型设为Image类型,用FileStream类、BinaryReader把图片读成字节的形式,赋给一个字节数组,然后用ADO.SqlCommand对象的ExecuteNonQuery()方法来把数据保存到数据库中。主要代…

if...else..的错误用法

1.最近在写js代码完成一个前段DOM操作的函数时&#xff0c;自己错误的使用了if..else..控制体。为什么是错误的呢&#xff1f;看看我的 代码你就明白了&#xff1a; 1 document.getElementsByClassName(eButton)[0].οnclickfunction(){2 var checkeddocument.getElementsB…