li指令 汇编_51单片机(九)汇编指令
1 往期链接
2 STC89C52汇编指令
1.setb p1.0 ;p1.0=1
clr c ;c=0
cpl c ;c=~c 位反转
2.AJMP main ;直接跳转到main标号处
------控制转移指令----------
3.djnz 51h,$ ;将地址中的数据减去1,若结果不为0,则跳转
jz rel ;若a=0,则跳转
jnz rel ;若a!=0,则跳转
cjne a,direct,rel ;比较转移指令:若a!=direct,则跳转
djnz direct,rel ;direct-1:若结果不为0,则跳转
--------------下列三者的区别----------------
lcall loop1(长调用子程序)
--子程序调用,子程序执行完通过RET返回到lcall指令的下一条指令继续执行;
ljmp loop2(无条件长转移)
---程序地址范围超过2K时要用的长跳转指令;
ajmp loop3(无条件绝对转移)
------------下列转移的区别-------------------
JB bit,rel ;若直接寻址位为1,则转移
JNB bit,rel;若直接寻址位为0,则转移
JBC bit,rel ;若直接寻址位为1,则转移并且清除该位;
-----------------------------------------------
4.ret ;子程序返回指令
***ret返回调用该子程序的指令,并从其下一条指令开始执行
reti ;中断返回指令
5.51压栈和出栈 (操作数是8位长度)
push direct
pop direct
6.Inc a ;加1指令 a+1
dec a ;减1指令 a-1
7.mul A B ; B:A=A*B
DIV A B ; A=商, B=余数
8.$ 代表当前指令的地址
在字符串是结束标志
9.循环移位指令
RL A ;累加器A循环左移一位
RLC A ;累加器A带进位标志循环左移一位
RR A:累加器A循环右移一位
RRC A:累加器A带进位标志循环右移一位
10.逻辑操作指令
ANL A,Rn ;将A和Rn中内容相与,结果送A
ORl A,Rn ;将A和Rn中内容相或,结果送A
XRL A,Rn ;A和Rn中内容相异或,结果送A
CLR A ;A中内容清0
CPL A ;A中内容取反
----------------------------------------
CON EQU 0d8f0h;(65536-55536) ;定时0.01s
EQU 如果操作数是十进制,则转换出来的定时时间,可能很长;
因为单片机要将十进制转换成十六进制,会花费很长时间!
-----------keil查看内存-----------
d:0 直接寻址的内部RAM
i:o 间接寻址的片内RAM
x:0 扩展的外部RAM
c:0 扩展到内部ROM
----------寻址方式---------------
1.寄存器寻址
mov a,r0;将寄存器r0中的内容送a
2.立即寻址
mov a,#00h;将立即数00h送累加器A
3.直接寻址
mov 31h,30h;将30h单元中的内容送31h单元
4.寄存器间接寻址(只能是R0和R1作为地址指针来寻址内部RAM:00h-0ffh)
mov a,@R0 ;将R0指向的内部RAM单元的内容送累加器A
5.相对寻址
JC rel ;目的地址=源地址+rel+跳转指令字节长度(2/3)
6.变址寻址(基址寄存器+变址寄存器间接寻址)
注释:51中使用DPTR或者PC作为基址寄存器,累加器A作为变址寄存器;
movc a,@a+DPTR ; 将a和DPTR中的内容相加,作为地址单元,并将该地址单元中的数据送a
7.位寻址
CLR bit(位地址)
注释:51单片机中有两部分可以作为位寻址:20h-2fh,和字节地址能被8整除的特殊功能寄存器
----------51单片机内部寄存器和RAM结构----------------
1.单片机16bit寄存器:
PC程序计数器、DPTR数据指针(DPH、DPL)
2.普通寄存器
A累加器、B寄存器(常作为乘法:结果高字节和除法:余数的寄存器)
PSW:程序状态字:反应程序的状态信息
3.寄存器区选择控制位
X区=(RS1:RS2)
每个寄存器区分为8个字节单元,每个区的每个字节单元对应一个寄存器(R0-R7)
四个区一共32组寄存器单元,RAM内存地址为:00H--1FH
(其中R1和R0也可作为寄存器间接寻址的寄存器)
4.堆栈指针SP
是一个8bit专用寄存器,它指出栈顶内部在内部RAM中的位置;
系统初始化SP=07H
5.端口P0-P3
分别是I/O端口的P0-P3锁存器
6.串行数据缓冲器
SBUF:实际上有两个,分为数据接收缓冲器和数据发送缓冲器
——2020.08.06——
li指令 汇编_51单片机(九)汇编指令相关推荐
- ljmp指令_51单片机主要汇编指令集
1)数据传送类指令(7种助记符) MOV(英文为Move):对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送: MOVC(Move Code)读取程序存储器数据表格的数据传送: MOVX ( ...
- 边界扫描的测试原理及九大指令
图一 图1 中"TAP Controller"其实质上是一个状态机,它根据不同的操作指令能产生16 个不同的状态,具体状态逻辑参考图2.从一个状态切换成另一个状态总是发生在TCK ...
- 边界扫描的测试原理及九大指令(zz)
[转]边界扫描的测试原理及九大指令 zz: http://blog.sina.com.cn/s/blog_609c0f3e0101dk3t.html 标签: jtag 1149.1 分类: JTAG ...
- 传统 51 与STC-Y5内核 51 单片机对比汇编指令
传统 51 与STC-Y5内核 51 单片机对比&汇编指令 算术类指令 24 汇编助记符 功能说明 字节数 传统8051单片机所需时钟 STC 8051单片机所需时钟 ADD A,Rn 寄存器 ...
- 【单片机】汇编指令英文全称
51单片机常用汇编语言助记符英文全称 (1)数据传送类指令(7种助记符) MOV(英文为Move):对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送: MOVC(Move Code)读取程 ...
- 汇编中的la_MIPS汇编与指令
一.MIPS寄存器 MIPS的系统结构及设计理念比较先进,其指令系统经过通用处理器指令体系MIPS I.MIPS II.MIPS III.MIPS IV.MIPS V,以及嵌入式指令体系MIPS16. ...
- c语言将两个16位变为一个32位,16位汇编第六讲汇编指令详解第第三讲(示例代码)...
16位汇编第六讲汇编指令详解第第三讲 1.十进制调整指令 1. 十进制数调整指令对二进制运算的结果进行十进制调整,以得到十进制的运算结果 2.分成压缩BCD码和非压缩BCD码调整 简而言之: 以前的时 ...
- 汇编 DA A 十进制调整指令
[转载]小伙伴们求同去<汇编 DA A十进制调整指令>, 一起来围观吧 https://blog.csdn.net/m0_58836581/article/details/12152571 ...
- 汇编指令的学习1——ARM汇编的特点
以下内容源于朱友鹏<物联网大讲堂>的课程学习,如有侵权,请告知删除. 1.指令和伪指令 指令是CPU机器指令的助记符,经过编译(汇编器加工)后会得到一串10组成的机器码,可以由CPU读取执 ...
- ARM汇编指令(ARM寻址方式、汇编指令、伪指令
1.寻址方式 所谓寻址方式就是:处理器根据指令中给出的地址信息来寻找物理地址的方法. 1)立即寻址 立即寻址也叫立即数寻址,这是一种特殊的寻址方式,操作数本身就是在指令中给出的. 只要取出指令也就是取 ...
最新文章
- python如何输出两行_python-如何串联在两行上指定的标识符?
- keil debug如何在watch直接修改变量值_printf系列教程03_SWO打印输出配置,基于Keil『Debug(printf)Viewer』...
- C# 中几个关键词的使用
- Github标星2w+,热榜第一,如何用Python实现所有算法
- [Swift]LeetCode1146. 快照数组 | Snapshot Array
- sql企业管理器_Valentina Studio for mac(开源数据库管理器)
- Service获取客户端IP地址(java)
- 这游戏为什么被称作是独立游戏的巅峰?
- 如何写数学建模竞赛论文
- 一文读懂什么是MRO采购
- Android 加速度感应器检测手机摇晃
- GitHub 有哪些 macOS 开源软件?
- string容器模拟实现及使用——C++
- 使用sql服务器发送贺卡_发送免费电子贺卡的最佳网站
- 阿里云服务器购买配置、环境部署、搭建网站教程(转载)
- 第十五天PAT-A1124 Raffle for Weibo Followers简单模拟测试点三错误说明
- combo接口(combo接口)
- stc单片机如何用C程序将IO口设为强推挽输出
- 关于跨境支付,你了解多少
- JavaSE06-集合