51单片机的指令系统(一)
文章目录
- 一、指令格式
- 二、 MCS-51指令寻址方式
- 三、立即寻址
- 四、直接寻址
- 五、寄存器寻址
- 六、寄存器间接寻址
- 七、变址寻址
- 八、相对寻址
- 九、位寻址方式
- 总结
一、指令格式
其中操作码有
二、 MCS-51指令寻址方式
操作数类型
位 (b)─ 位寻址区和可位寻址寄存器中的一位二进制数据
字节(B)─ 8位二进制数据
字 (W)─ 16位双字节数据
三、立即寻址
注意:数值前加#符号表示该数是立即数
四、直接寻址
2、直接寻址
操作数的地址直接出现在指令中。
寻址对象:
①内部数据存贮器
②特殊功能寄存器:既可使用它的地址,也可以直接使用寄存器名。
例:
执行指令 MOV 40H, #100 后 (40H )= 64H
注意:直接寻址指令中的 40H是操作数存放在存储器中的地址而不是操作数的值
五、寄存器寻址
操作数存放在通用 寄存器中。
寻址对象:A、B、DPTR、R0~R7 。
A=40H,R0=40H
MUL AB ;A*B→BA,A、B为寄存器寻址
MOV B,R0 ;R0→B,R0为寄存器寻址,B为直接寻址
PUSH ACC ;ACC直接寻址
六、寄存器间接寻址
● 指令的操作数为寄存器名,寄存器中存放的是操作数的地址
MOV @R0,A ;A→(R0) 地址的内部RAM
MOVX A,@R1 ;外部RAM,地址为R1的内容→A
MOVX @DPTR,A ;A→以DPTR内容为地址的
外部RAM
寄存器间接寻址的范围:
(1)内部RAM低128字节,通用形式:MOV
指令及 @Ri(i=1或0);
(2)外部RAM的64K空间,使用间址寄存器:DPTR; 通用形式:MOVX指令,例:MOVX A, @DPTR;
(也就是说访问外部的数据存储器是必须要用DPTR,后面实验会讲到)
(3)外部RAM的低256字节,除用上面的DPTR,还可用间址寄存器R0和R1去寻找片外RAM的低256字节;通用形式:MOVX指令及@Ri(i=1或0);
(4)堆栈操作指令(PUSH和POP),以堆栈指针(SP)作间址寄存器的间接寻址方式。
七、变址寻址
● 变址寻址方式是单片机中用于访问程序存储器的寻址方式。
注意:是程序存储器
● 数据在程序存储器中,指令给出的寄存器中的数据为基地址和偏移地址。(数据地址 = 基地址 + 偏移地址)
● 可充当变址寄存器的寄存器有 A ,
可充当基址寄存器的寄存器有 PC、DPTR。
A=12H,DPTR=2000H
八、相对寻址
单片机中的相对寻址方式是用于改变当前PC的值,
新PC = 当前PC + 相对偏移量
● 主要用于实现程序的相对跳转。
例:1000H: SJMP 02H;( 该指令为双字节指令 )
设指令执行前 PC=1000H,执行指令后:
PC = 1004H
注意:02H 为相对偏移量,该数据为8位补码,数值范围为-128~+127
九、位寻址方式
位寻址方式是使用位地址访问位寻址区;
大家还记得这张图不?
位地址和字节地址是通过指令来区分的:
MOV A,20H ; 字节寻址(因为A是寄存器名,是一个字节底子)
MOV C,20H ; 位寻址(因为C是特殊功能寄存器的某一个位)
可供位寻址的区域
片内RAM的 20H~2FH为位寻址空间
某些SFR:其字节地址都能被8整除,共11个。
总结
(1)51系列单片机指令系统的特点是不同的存储空间寻址方式不同,适用的指令不同,必须进行区分,因此 七种寻址方式要熟记于心,并可以正确应用。
下一章我们更进一步巩固七种寻址方式
51单片机的指令系统(一)相关推荐
- 51单片机系列--闪烁灯,呼吸灯与流水灯
51单片机是对兼容英特尔8051指令系统的单片机的统称.51单片机广泛应用于家用电器.汽车.工业测控.通信设备中.因为51单片机的指令系统.内部结构相对简单,所以国内许多高校用其进行单片机入门教学. ...
- c51语言定义布尔变量,51单片机指令系统:布尔变量操作指令(9)
51单片机指令系统:布尔变量操作指令(9) 第二十七课:布尔变量操作指令分析 布尔处理功能是MCS-51系列单片机的一个重要特征,这是出于实际应用需要而设置的.布尔变量也即开关变量,它是以位(bit) ...
- 【MCS-51】51单片机指令系统大全
指令是指挥微型计算机工作的的计算机命令,对于51单片机来说,其主要使用的指令有两种形式:机器语言指令和汇编语言指令. 机器语言指令是指使用二进制代码表示的指令: 汇编语言指令是指使用容易我们记忆的缩写 ...
- 《51单片机应用开发范例大全(第3版)》——第1章 单片机C语言开发基础
本节书摘来异步社区<51单片机应用开发范例大全(第3版)>一书中的第1章,作者:张杰 , 宋戈 , 黄鹤松 , 员玉良,更多章节内容可以访问云栖社区"异步社区"公众号查 ...
- 单片机位寻址举例_单片机学习:51单片机寻址方式详解
51单片机是对所有兼容Intel 8031指令系统的单片机的统称.该系列单片机的始祖是Intel 8031单片机,后来随着Flash rom 技术的发展,8031单片机取得了长足的发展,成为了应用最广 ...
- 【51单片机快速入门指南】1:基础知识和工程创建
目录 简介 命名规则 51单片机的数据类型 总表 扩展数据类型 stdint.h 存储器类型关键字 烧录工具 工程的创建 创建项目 添加C文件 配置工程 存储模式配置 输出配置 代码优化配置 编译 烧 ...
- 51单片机------闪烁灯(实验报告)
实验一:LED闪烁灯 一.实验目的 掌握51单片机开发板的使用步骤: 掌握51单片机开发板所需软件的安装过程: 以LED灯闪烁为例子,掌握软件KEIL4的使用方法. 二.实验设备 实验仪器设备: 计算 ...
- 51单片机教程(从原理开始基于汇编)
[发现了关于单片机的一系列不错的文章] 很多电子爱好者,都想学习单片机这门技术.下面的这一系列教程是 www.51hei.com 专门为初学者入门而准备的,从底层硬件入手基于汇编和c两种语言,详细的介 ...
- 41、基于51单片机手机无线充电器系统锂电池存电系统设计
方案选择 单片机的选择 方案一:AT89C52是美国ATMEL公司生产的低电压,高性能CMOS型8位单片机,器件采用ATMEL公司的高密度.非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通 ...
最新文章
- 2851 菜菜买气球
- c语言图形时钟编程,C语言图形时钟课程设计实验报告.doc
- extern“C”有什么作用
- 真给力!蚂蚁金服工程师总结的400道前端面试题提供下载
- Java并发编程之synchronized关键字解析
- 【福利】3980元的web前端视频教程限量领取!!!
- wrieshark 指令
- 阿里确认研发车载小程序 这些功能太方便了!
- 中国服务业发展的轨迹、逻辑与战略转变——改革开放40年来的经验分析
- 大学四年只学java_大学四年废了怎么办,不如来学java
- 服务器端可控情形的Javascript跨域访问解决方法
- Android Stutio 3.0 - Gradle sync failed
- Servlet面试题
- windows ping 端口
- python xlwt安装_python:安装xlwt模块
- 通过型号快速识别思科路由器,交换机,服务器等设备
- 神奇的λ-calculus
- Python-.item()的理解与使用
- 在线展示pdf和word并且不能显示下载和打印按钮
- ios怎么打开c语言文件操作函数,C++ ofstream和ifstream详细用法以及C语言的file用法...