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单片机(九)汇编指令相关推荐

  1. ljmp指令_51单片机主要汇编指令集

    1)数据传送类指令(7种助记符) MOV(英文为Move):对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送: MOVC(Move Code)读取程序存储器数据表格的数据传送: MOVX ( ...

  2. 边界扫描的测试原理及九大指令

    图一 图1 中"TAP Controller"其实质上是一个状态机,它根据不同的操作指令能产生16 个不同的状态,具体状态逻辑参考图2.从一个状态切换成另一个状态总是发生在TCK ...

  3. 边界扫描的测试原理及九大指令(zz)

    [转]边界扫描的测试原理及九大指令 zz: http://blog.sina.com.cn/s/blog_609c0f3e0101dk3t.html 标签: jtag 1149.1 分类: JTAG ...

  4. 传统 51 与STC-Y5内核 51 单片机对比汇编指令

    传统 51 与STC-Y5内核 51 单片机对比&汇编指令 算术类指令 24 汇编助记符 功能说明 字节数 传统8051单片机所需时钟 STC 8051单片机所需时钟 ADD A,Rn 寄存器 ...

  5. 【单片机】汇编指令英文全称

    51单片机常用汇编语言助记符英文全称  (1)数据传送类指令(7种助记符) MOV(英文为Move):对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送: MOVC(Move Code)读取程 ...

  6. 汇编中的la_MIPS汇编与指令

    一.MIPS寄存器 MIPS的系统结构及设计理念比较先进,其指令系统经过通用处理器指令体系MIPS I.MIPS II.MIPS III.MIPS IV.MIPS V,以及嵌入式指令体系MIPS16. ...

  7. c语言将两个16位变为一个32位,16位汇编第六讲汇编指令详解第第三讲(示例代码)...

    16位汇编第六讲汇编指令详解第第三讲 1.十进制调整指令 1. 十进制数调整指令对二进制运算的结果进行十进制调整,以得到十进制的运算结果 2.分成压缩BCD码和非压缩BCD码调整 简而言之: 以前的时 ...

  8. 汇编 DA A 十进制调整指令

    [转载]小伙伴们求同去<汇编 DA A十进制调整指令>, 一起来围观吧 https://blog.csdn.net/m0_58836581/article/details/12152571 ...

  9. 汇编指令的学习1——ARM汇编的特点

    以下内容源于朱友鹏<物联网大讲堂>的课程学习,如有侵权,请告知删除. 1.指令和伪指令 指令是CPU机器指令的助记符,经过编译(汇编器加工)后会得到一串10组成的机器码,可以由CPU读取执 ...

  10. ARM汇编指令(ARM寻址方式、汇编指令、伪指令

    1.寻址方式 所谓寻址方式就是:处理器根据指令中给出的地址信息来寻找物理地址的方法. 1)立即寻址 立即寻址也叫立即数寻址,这是一种特殊的寻址方式,操作数本身就是在指令中给出的. 只要取出指令也就是取 ...

最新文章

  1. python如何输出两行_python-如何串联在两行上指定的标识符?
  2. keil debug如何在watch直接修改变量值_printf系列教程03_SWO打印输出配置,基于Keil『Debug(printf)Viewer』...
  3. C# 中几个关键词的使用
  4. Github标星2w+,热榜第一,如何用Python实现所有算法
  5. [Swift]LeetCode1146. 快照数组 | Snapshot Array
  6. sql企业管理器_Valentina Studio for mac(开源数据库管理器)
  7. Service获取客户端IP地址(java)
  8. 这游戏为什么被称作是独立游戏的巅峰?
  9. 如何写数学建模竞赛论文
  10. 一文读懂什么是MRO采购
  11. Android 加速度感应器检测手机摇晃
  12. GitHub 有哪些 macOS 开源软件?
  13. string容器模拟实现及使用——C++
  14. 使用sql服务器发送贺卡_发送免费电子贺卡的最佳网站
  15. 阿里云服务器购买配置、环境部署、搭建网站教程(转载)
  16. 第十五天PAT-A1124 Raffle for Weibo Followers简单模拟测试点三错误说明
  17. combo接口(combo接口)
  18. stc单片机如何用C程序将IO口设为强推挽输出
  19. 关于跨境支付,你了解多少
  20. JavaSE06-集合

热门文章

  1. R语言入门-数据分析DataFrame
  2. 电子科技大学格拉斯哥学院英文教材使用效果
  3. JDK8 toMap之key重复报Duplicate key xxxx异常解决
  4. matlab取平均值不含nan,在Matlab计算中忽略包含NaN条目的向量
  5. 【CSS】纯CSS实现三级导航(模板)
  6. 矩阵谱分解的求解流程
  7. 发送导频信号用到的 matlab function
  8. c#代码转python代码工具_C# 代码转换到Python
  9. 字节跳动Java大数据工程师面试题、笔试题(含答案)
  10. H5加壳APP发布Android、IOS应用(证书响应文件制作)