单片机
返回首页

嵌入式开发学习(4)

2024-11-19 来源:cnblogs

数据传送指令:

  MOV 两个寄存器之间传递。例 MOV r1,r0,将寄存器r0中的内容赋值给r1。

  MVN 同MOV用法一样,区别是MOV是原值传递,而MVN是按位取反后传递。

算数运算指令:

  ADD SUB RSB ADC SBC RSC

逻辑指令:

  AND ORR EOR BIC

  BIC的用法:BIC r0,r1,#0x1f,将r1中的数的bit0到bit4清零后赋值给r0;为什么是bit0到bit4呢,这个是由#0x1f来决定,#0x1f有五个bit位是1。如写成#0xf,就有四个bit位是0。

比较指令:

  CMP CMN TST TEQ

比较指令用来比较两个寄存器中的数。特点:比较指令不用后加S后缀就可以影响CPRS中的标志位。

乘法指令:

  MVL MLA UMULL UMLAL SMULL SMLAL

前导零计数指令:CLZ

操作CPRS指令:

  MRS :读CPRS。

  MSR:写CPRS。

跳转指令:

  B :直接跳转。(没打算返回)

  BL:跳转前把返回地址放入lr寄存器中,以便返回,以便函数的调用。(将来还要回来的)

  BX:跳转的同时切换到ARM模式。一般用于异常处理的跳转。  

访问内存指令:

  单字/半字/字节访问(通过增加后缀)LDR:读内存。 STR:写内存。

  多字批量访问 LDM STM

  SWP 例SWP r1,r2,[r0] 将r0寄存器所存地址的值写到r1寄存器中,再将r2寄存器的值协会到r0寄存器所存地址中。SWP r1,r1,[r0],将r1与r0地址的所存的值互换。

立即数:

  合法立即数 经过任意以为后,非零部分可以用8位来表示的位合法立即数。如0x000000ff,0xff000000,0xf000000f ,0x00000001都为合法立即数。

  非法立即数 0x1f00000f 为非法立即数,经过以为后,得0x000001ff,不能用8位来表示。

软中断指令:

  SWI (software interrupt)用来实现操作系统中系统调用。


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 单稳态控制电路设计与分析

  • 永不缺相启动运行的电动机控制电路

  • CCFL的工作原理及电子驱动电路解析

  • 基于M66T旋律发​​生器的电路图解析

  • 一个简单的红外耳机电路

  • 基于CA3193的热电偶放大器电路

    相关电子头条文章